我有迷你递归功能,可以找到并隐藏所有.mta文件。它看起来像那样
For /r %1 in (*.mta) do attrib +h "%1"
当我尝试从命令提示符手动执行它时,它可以正常工作
我创建了.bat文件。代码看起来像那样
D:
For /r %1 in (*.mta) do attrib +h "%1"
pause
试图执行此文件。开始'这个屏幕
代码出了什么问题?
答案 0 :(得分:4)
尝试:
For /r %%i in (*.mta) do attrib +h "%%i"
(并将文件命名为.cmd
,它看起来更现代。)
请勿使用引用脚本参数的%1
,因此will not work。在命令行使用%
,在批处理脚本中使用%%
。
答案 1 :(得分:0)
%1
是传递给批处理文件的命令行参数,在这种情况下恰好是空的。这意味着您的for
循环语法不正确。请改用其他变量名称,例如%f:
for /r %f in (*.mta) do attrib +h "%f"
如果你使用过你的版本,请不要这样做:
c:\> yourbatch.bat f
然后%f会扩展到'f'而你会得到:
for /r f in (*.mta) do attrib +h "f"
这也是不正确的。