Batch file 批处理文件变量替换
我在批处理文件中尝试这个非常基本的命令Batch file 批处理文件变量替换,batch-file,Batch File,我在批处理文件中尝试这个非常基本的命令 takeown.exe /F c:\WINDOWS\SYSTEM32\%1% ICACLS C:\WINDOWS\SYSTEM32\%1% /grant MY\PC:F 当我在admin CMD提示符下运行它时: c:\Data>takeownscript.bat drivers\netbio.sys 它抛出一个错误,说: c:\Data>takeown.exe/F c:\WINDOWS\SYSTEM32\drivers\netio.sys 成功
takeown.exe /F c:\WINDOWS\SYSTEM32\%1%
ICACLS C:\WINDOWS\SYSTEM32\%1% /grant MY\PC:F
当我在admin 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如何/为什么附加到驱动程序路径?我怀疑我没有使用正确的替换语法。只是为了让社区知道答案 命令行参数用作%nn表示批处理文件中的哪个参数
另一个预防措施是,任何时候都应使用%%1~1从%1中删除引号。请注意,这将不起作用:%~yourVariable%.批处理文件的参数应使用%1引用,而不是使用本文中解释的%1%.@Laf有效。请考虑解决这个问题!