在很多場合,我已經處理了使用空格,引號,百分號和斜槓以及它們的各種組合來傳遞批處理文件參數的問題。通常我設法弄清楚如何完成我想要的,但是這次我被卡住了。我已經嘗試了幾百種組合,現在我的腦袋開始受傷。傳遞批處理文件包含含有空格的引用的參數
我已經將問題簡化爲相當簡單的要求:從一個批處理文件傳遞到另一個批處理文件,該文件包含一些空格分隔的文本,其中一個文本是引用空間。也就是說,一個批處理文件應該將一些字符串X
傳遞給另一個文件,以便第二個文件回顯"A "B C" D"
。我只是無法弄清楚X
應該是什麼。
這是一個最小的批處理文件,演示了一些不起作用的嘗試。 (此BAT文件通過調用它自己代替兩者。)
::Goal is to print:
::"A "B C" D"
::ie., pass from one BAT file to another a quote containing spaces and a quote containing a space
@echo off
if not (%1)==() goto print
:passarg
call %0 "A "B C" D"
call %0 "A \"B C\" D"
%0 "A ""B C"" D"
:print
echo %1
pause
這些嘗試都不起作用。我試過使用"\" \""
,""" """
,"""" """"
,"\"" "\""
,""\" \"""
,"^" ^""
,^"" "^"
等等。要麼他們打印雙雙引號,在空間後面丟掉所有東西,或者其他東西(這是錯誤的)。
任何想法?謝謝。
嗯,我似乎已經減少了一點點。我會在一秒之內更新...完成。 – Synetech 2010-04-11 21:08:51
林不知道你的目標是什麼,在更新的代碼^「^」仍然有效。你試圖通過什麼樣的短語,以及實際發生了什麼? – 2010-04-11 21:18:25
我正在嘗試打印「A」B C「D」'。 ''「'周圍還有其他東西(包括空格)。使用'^「^」'(例如'「A ^」B C ^「D」')不起作用。 – Synetech 2010-04-11 21:20:07