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


Jawaban:


9

Gandakan tanda persen:

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

1

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

Karakter melarikan diri di cmd.exe adalah ^:

> Bilah gema ^%
foo% bar

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.