2
我想列出一個目錄及其子目錄中的所有.csv文件。它的工作原理很好,當我在cmd終端運行這個命令:爲什麼在shell中的執行會給出批處理腳本執行的不同結果?
for /f %a in ('dir /b /s *.csv') do (echo %a)
當我把相同的代碼行到(否則爲空)文本文件(.CMD)和運行.cmd文件,它輸出一個空白行,但不列出任何文件。
爲什麼將命令放入腳本中或直接在終端中輸入(一次性輸入)會有什麼區別?
認爲這可能是一個延遲擴展問題,我也試過for /f %a in ('dir /b /s *.csv') do (echo !a!)
,但是這並沒有列出文件。
任何想法?
非常感謝!就是這樣! – Joan
for循環變量名從文件運行時得到雙重評估,因此'%%' - >'%'。 '爲/? | findstr「%%」'給出'要在批處理程序中使用FOR命令,請指定%%變量 – LinuxDisciple