181 Stimmen

Wie entferne ich Ampersands in Batch-Dateien?

Wie entferne ich Ampersands in einer Stapeldatei (oder in der Windows-Befehlszeile), um die start Befehl an Webseiten mit Ampersands in der URL zu öffnen?

Doppelte Anführungszeichen funktionieren nicht mit start ; damit beginnt eine neue Kommandozeilenfenster.

Aktualisierung 1 : Die Lösung von Wael Dalloul funktioniert. Außerdem, wenn kodierte Zeichen in der URL enthalten sind (z. B. ein Leerzeichen wird als %20) in der URL und es befindet sich in einer Stapeldatei dann muss "%" sein als '%%' kodiert werden. Dies ist in diesem Beispiel nicht der Fall.

Beispiel, über die Befehlszeile ( CMD.EXE ):

start http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8

führt zu

http://www.google.com/search?client=opera 

die im Standardbrowser geöffnet werden, und diese Fehler im Befehlszeilenfenster:

'rls' is not recognized as an internal or external command,
operable program or batch file.
'q' is not recognized as an internal or external command,
operable program or batch file.
'sourceid' is not recognized as an internal or external command,
operable program or batch file.
'ie' is not recognized as an internal or external command,
operable program or batch file.
'oe' is not recognized as an internal or external command,
operable program or batch file.

Plattform: Windows XP 64 bit SP2.

1voto

Jaroslav Záruba Punkte 4436

Wenn Sie Folgendes benötigen echo eine Zeichenkette, die ein kaufmännisches Und-Zeichen enthält, helfen Anführungszeichen nicht, da sie auch in der Ausgabe zu sehen wären. In einem solchen Fall verwenden Sie for :

for %a in ("First & Last") do echo %~a

...in einem Batch-Skript:

for %%a in ("First & Last") do echo %%~a

o

for %%a in ("%~1") do echo %%~a

0voto

be-ns Punkte 75

Wenn Sie haben Leerzeichen im Namen der Datei und Sie haben eine Figur, der Sie entkommen müssen:

Sie können einfache UND doppelte Anführungszeichen verwenden, um falsche Bezeichnungen im Befehl zu vermeiden.

scp ./'files name with spaces/internal folder with spaces/"text & files stored.txt"' .

En ^ Zeichen die Anführungszeichen aufhebt.

0voto

Stan Punkte 370

Für Sonderzeichen wie '&' können Sie den gesamten Ausdruck mit Anführungszeichen umgeben

set "url=https://url?retry=true&w=majority"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X