Bagaimana saya bisa menghentikan ekspansi persentase dalam file batch?

4

(Ini pada Windows berbasis NT seperti 2000, XP, Vista, 7)

Pada baris perintah, persentase karakter diabaikan:

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

Jadi mengunduh file ini dengan benar (setiap% 20 menjadi spasi):

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

Tetapi di dalam batchfile, semua% 20 sedang ditafsirkan sebagai memperluas parameter 2 (yang kosong) sehingga file ini dapat diunduh (masing-masing% 20 menjadi 0):

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

Apakah ada cara untuk menghindari ekspansi parameter persentase?

--Jeroen

Jeroen Wiert Pluimer
sumber

Jawaban:

9

Gandakan tanda persen:

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

%digunakan untuk variabel di cmd.exe Windows (dan pendahulunya command.com).

Karakter melarikan diri di cmd.exe adalah ^:

> Bilah gema ^%
foo% bar
grawity
sumber
3
ini tidak bekerja dari dalam file batch; tapi solusi Snark berhasil. Ini adalah file batch yang saya uji: wget " justitie.nl/images/... " wget " justitie.nl/images/Handleiding ^% 20voor ^% 20verwerkers ^% 20persoonsgegevens_tcm34-3940.pdf"
Jeroen Wiert Pluimers
Saya memang tahu solusi @ Snark, tetapi saya tidak menduga bahwa ini juga tidak akan berhasil. Mengejutkan.
Lakukan