[转]使用批处理文件启动快捷方式

使用批处理文件启动快捷方式

这是问题所在。

我在大约260个位于以下同一文件夹中的计算机上都有一个快捷方式;

“ c:\ documents and settings \ all users \ desktop \ Remote agent 1234 .lnk”

快捷方式上唯一发生变化的是数字。有没有一种方法可以在批处理文件中使用通配符来启动快捷方式,而不必指定完整的文件名?


您可以为此任务使用forforfiles。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:\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"

由于它不是具有控制台窗口的程序,因此内容无关紧要,因此不会使用它们.

posted @ 2023-03-08 09:03  CastleWu  阅读(413)  评论(0编辑  收藏  举报