【问题标题】:Having issue with .bat file.bat 文件有问题
【发布时间】:2011-12-18 23:07:27
【问题描述】:

我有一个迷你递归函数,可以找到并隐藏所有 .mta 文件。好像是这样的

For /r %1 in (*.mta) do attrib +h "%1"

当我尝试手动从命令提示符执行它时,它可以正常工作

我已经创建了 .bat 文件。代码是这样的

D:
For /r %1 in (*.mta) do attrib +h "%1"
pause 

试图执行这个文件。进入这个屏幕

代码有什么问题?

【问题讨论】:

标签: windows command-line batch-file command cmd


【解决方案1】:

尝试:

For /r %%i in (*.mta) do attrib +h "%%i"

(并将您的文件命名为.cmd,它看起来更现代。)

不要使用%1,它指的是你脚本的参数,所以它是will not work。在命令行使用%,在批处理脚本中使用%%

【讨论】:

    【解决方案2】:

    %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"
    

    这也是不正确的。

    【讨论】:

    • 用了f,它给出的命令消息语法不正确prntscr.com/3s0t3
    • 正如 Mat 提到的 %1 可能会混淆,但它也是一个合法的 for 循环变量,唯一的问题是缺少第二个百分比
    猜你喜欢
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    相关资源
    最近更新 更多