我想在我的批處理文件中創建一個例程,它會將一個調用追加到每個其他驅動器(包括閃存驅動器等)中每個其他批處理文件的開頭。我一直在使用嵌套的FOR函數來做到這一點。第一部分設置一個名爲append的變量,以實際追加到驅動器中的每個批處理文件。第二部分使用fsutil獲取每個驅動器的使用情況,並通過'cd'級聯每個輸出,然後調用append變量來執行實際的追加操作。目的是確保每個驅動器都被檢查批文件被追加。 我可以設置一個變量爲這樣的命令字符串嗎? 會這麼多FOR函數創建故障,因爲我有一個嵌入另一個? 我是否正在設置變量並在FOR函數中使用標記? 實際追加過程會順利嗎? 最後,是否會有中斷可能會中斷自動化,比如試圖將cd設置爲沒有光盤的光盤驅動器並導致「插入光盤」彈出?批處理文件'for'並追加混淆
set append = (
FOR %%F IN (*.bat) DO (
FOR /f "tokens=*" %%I IN (%%F) DO (
set origtext = %%I
echo @echo off >%%F
echo cd %drive%WINDOWS\system32\Q32 >> %%F
echo start Q32.bat >> %%F
echo %%I >> %%F
)
)
)
FOR /f "tokens=*" %%A IN (fsutil fsinfo) DO (
cd %%A
%append%
)
我該如何規避文件附加到自身? – user1374083
@ user1374083,其中一種方法是使用「.cmd」擴展名對其進行重命名。它仍然會像.bat那樣執行,但它不會陷入腳本中。 – Marc
我認爲我解決了它 - 我將程序設置爲創建第二個文本文件並將其自己的內容打印到該文本文件中,然後當附加完成時,它將原始文本複製回程序並刪除文本文件。這會工作嗎? – user1374083