[转]使用批处理文件启动快捷方式
使用批处理文件启动快捷方式
这是问题所在。
我在大约260个位于以下同一文件夹中的计算机上都有一个快捷方式;
“ c:\ documents and settings \ all users \ desktop \ Remote agent 1234 .lnk”
快捷方式上唯一发生变化的是数字。有没有一种方法可以在批处理文件中使用通配符来启动快捷方式,而不必指定完整的文件名?
在命令提示符下:
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:\Users\castle.wu\Desktop" /M "123.lnk" /C "cmd /C start \"\" @path" //测试可行
Forfiles将遍历指定路径中/P
与上指定的掩码匹配的所有文件,/M
并执行中指定的命令/C
。这@path
是文件的完整路径。
通常,我们将使用命令start "" "Remote Agent 1234.lnk"
来启动快捷方式。由于start是一个内部命令,因此我们必须在新的shell(cmd /C
)中调用它。\"\"
只是转义了双引号,因为整个字符串已经被引用了。
帮助
start
包含这个花絮:START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B] [command/program] [parameters] "title" Title to display in window title bar.
换句话说,第一个引用的字符串将用于标题.要使用引号启动某些内容,您需要在它之前提供带引号的字符串,如下所示:
start "" "C:\Program Files (x86)\Steam\user1.lnk"
由于它不是具有控制台窗口的程序,因此内容无关紧要,因此不会使用它们.