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.