这就是问题所在。
我在大约 260 台计算机上有一个快捷方式,位于如下所示的同一文件夹中;
“c:\documents and settings\all users\desktop\Remote agent1234.lnk”
快捷方式上唯一改变的是数字。有没有办法在批处理文件中使用通配符来启动快捷方式,而不必指定完整的文件名?
答案1
您可以使用为了或者福尔菲斯完成此任务。Forfiles 更灵活,但它可能无法在旧版本的 Windows 上正常工作。
为了
从命令提示符:
for %a in ("C:\Documents and Settings\All Users\Desktop\Remote agent *.lnk") do @start "" "%a"
在批处理文件中:
for %%a in ("C:\Documents and Settings\All Users\Desktop\Remote agent *.lnk") do @start "" "%%a"
福尔菲莱斯
forfiles /P "C:\Documents and Settings\All Users\Desktop" /M "Remote agent *.lnk" /C "cmd /C start \"\" @path"
Forfiles 遍历 中指定路径下与/P
上指定的掩码匹配的所有文件/M
,并执行 中指定的命令/C
。这@path
是文件的完整路径。
通常,我们会使用命令start "" "Remote Agent 1234.lnk"
来启动快捷方式。由于 start 是内部命令,因此我们必须在新 shell 中调用它 ( cmd /C
)。\"\"
只是转义的双引号,因为整个字符串已被引用。
答案2
根据帮助启动程序/命令不能有双引号。例如,只有*for %%a in ("C:\Documents and Settings\All Users\Desktop\Remote agent.lnk”)执行@start /D“%%~dpa”%%~nxa 工作正常!