我有迷你遞歸功能,它可以查找和隱藏所有.mta文件。它看起來像遇到問題.bat文件
For /r %1 in (*.mta) do attrib +h "%1"
當我試圖從命令提示符下執行它手動,它工作正常
我.bat文件創建。代碼看起來像
D:
For /r %1 in (*.mta) do attrib +h "%1"
pause
試圖執行此文件。剛開了這個畫面
有什麼不好的代碼?
我有迷你遞歸功能,它可以查找和隱藏所有.mta文件。它看起來像遇到問題.bat文件
For /r %1 in (*.mta) do attrib +h "%1"
當我試圖從命令提示符下執行它手動,它工作正常
我.bat文件創建。代碼看起來像
D:
For /r %1 in (*.mta) do attrib +h "%1"
pause
試圖執行此文件。剛開了這個畫面
有什麼不好的代碼?
與嘗試:
For /r %%i in (*.mta) do attrib +h "%%i"
(名稱爲您的文件.cmd
,它看起來更加現代。)
不要使用%1
,這是指你的腳本的參數,所以它will not work。在命令行中使用%
,在批處理腳本中使用%%
。
%1
是傳遞給批處理文件的命令行參數,在這種情況下恰好爲空。這意味着您的for
循環語法不正確。使用一些其他的變量名稱,而不是像%F:
for /r %f in (*.mta) do attrib +h "%f"
如果你想用你的版本,不要這樣:
c:\> yourbatch.bat f
然後%F就已經擴大到只是「f」和你'd得到:
for /r f in (*.mta) do attrib +h "f"
這也是不正確的。
使用f,它給出的命令的消息sytax是不正確的http:// prntscr。 com/3s0t3 –
正如Mat提到的,%1可能會混淆,但它也是合法的循環變量,唯一的問題是缺少第二個百分比 – jeb
一般來說,這個鏈接對於這些問題非常有用:http://ss64.com/nt/syntax-args.html – morechilli