Jak zatrzymać procentową ekspansję w pliku wsadowym?


4

(Dotyczy to systemu Windows opartego na NT, takiego jak 2000, XP, Vista, 7)

W wierszu polecenia znaki procentu są ignorowane:

wget "http://www.justitie.nl/images/Handleiding%20voor%20verwerkers%20persoonsgegevens_tcm34-3940.pdf"

Więc poprawnie pobiera ten plik (każdy% 20 staje się spacją):

"http://www.justitie.nl/images/Handleiding voor verwerkers persoonsgegevens_tcm34-3940.pdf"

Ale w pliku wsadowym wszystkie% 20 są interpretowane jako rozwijany parametr 2 (który jest pusty), co powoduje pobranie tego pliku (każdy% 20 staje się 0):

"http://www.justitie.nl/images/Handleiding0voor0verwerkers0persoonsgegevens_tcm34-3940.pdf"

Czy istnieje sposób obejścia rozszerzenia parametru procentowego?

--jeroen


Odpowiedzi:


9

Podwój znak procentu:

wget "http://www.justitie.nl/images/Handleiding%%20voor%%20verwerkers%%20persoonsgegevens_tcm34-3940.pdf"

1

%jest używany dla zmiennych w cmd.exe systemu Windows (i jego poprzedniku command.com).

Znakiem ucieczki w cmd.exe jest ^:

> echo foo ^% pasek
foo% bar

3
to nie działa od wewnątrz pliku wsadowego; ale rozwiązanie Snarka działa. To jest plik wsadowy, który przetestowałem: wget " justitie.nl/images/… " wget " justitie.nl/images/Handleiding ^% 20voor ^% 20verwerkers ^% 20persoonsgegevens_tcm34-3940.pdf"
Jeroen Wiert Pluimers

Znałem rozwiązanie @ Snarka, ale nie przypuszczałem, że to też nie zadziała. Zaskakujący.
dgo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.