【问题标题】:Batch file variable substitution批处理文件变量替换
【发布时间】:2018-01-14 22:34:40
【问题描述】:

我在批处理文件中尝试这个(非常基本的)命令

takeown.exe /F c:\WINDOWS\SYSTEM32\%1%
ICACLS C:\WINDOWS\SYSTEM32\%1% /grant MY\PC:F

当我从管理员 CMD 提示符运行它时:

c:\Data>takeownscript.bat drivers\netbio.sys

它抛出一个错误说:

c:\Data>takeown.exe /F c:\WINDOWS\SYSTEM32\drivers\netio.sys

成功:文件(或文件夹):“c:\WINDOWS\SYSTEM32\drivers\netio.sys” 现在归用户“MY\PC”所有。

c:\Data>ICACLS C:\WINDOWS\SYSTEM32\drivers\netio.sysF C:\WINDOWS\SYSTEM32\drivers\netio.sysF:系统找不到 指定的文件。成功处理0个文件;处理失败 1 文件

如何/为什么将 F 附加到驱动程序路径?我怀疑我没有使用正确的替换语法。

【问题讨论】:

  • 应使用%1 引用批处理文件的参数,而不是%1%,如question 中所述。
  • @Laf 有效。请考虑解决此问题!

标签: batch-file


【解决方案1】:

只是为了让社区知道有答案。


命令行参数在批处理文件中用作%nn 表示哪个参数)。

另一件要注意的是,应该始终使用%~1%~1 去掉 %1 的引号。请注意,这不起作用:%~yourVariable%

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2019-02-25
    相关资源
    最近更新 更多