Board logo

标题: 如何批量执行一个文件夹下的所有快捷方式? [打印本页]

作者: wtp791211     时间: 2009-5-26 07:00    标题: 如何批量执行一个文件夹下的所有快捷方式?

如何批量执行一个文件夹下的所有快捷方式?
我现在的问题是这个文件下所有的快捷方式不能同时执行,得要等第一个执行完了以后再执行第二个,以此类推。
for %%1 in (d:\*.lnk)do start  %%1
我试过用for这个,但是是一次性全运行了,呵呵,我不能要这样的,请各位朋友帮帮忙,小弟感激不尽。。。

[ Last edited by wtp791211 on 2009-5-26 at 07:14 ]
作者: tireless     时间: 2009-5-26 07:06

for %%1 in (d:\*.lnk) do "%%1"
[ Last edited by tireless on 2009-5-26 at 08:24 ]
作者: wtp791211     时间: 2009-5-26 07:13
这样好像也不行,会一起运行。
作者: tireless     时间: 2009-5-26 08:18
如果快捷方式中的目标没有参数:
@for /f "delims=" %%a in ('find ":\" d:\*.lnk^|findstr /v "^/ ^-"') do @"%%a"

作者: wtp791211     时间: 2009-5-27 05:22
谢谢4楼的朋友,这种办法不错,但是批处里中的^|findstr /v "^/ ^-"'   这个不是太明白,呵呵.  还有一个,就是有些快捷方式可以运行,有些用这个方法运行不起来,还有个别的快捷方式,用批处理运行出来的结果,跟我直接双击批处理运行出来的结果不一样,呵呵..
作者: tireless     时间: 2009-5-27 07:24    标题: re 5 楼

那应该是“参数”和“工作目录”的问题。

findstr /v "^/ ^-"' 是过滤掉开头是 / 或 - 的行,^ 是匹配开头。参见 findstr /?

------------
再试试这个:(需下载 shortcut)
@echo off
for %%? in (D:\*.lnk) do (
  for /f "skip=3 eol=I delims=" %%a in ('shortcut /f:"%%?" /a:q') do set %%a 2>nul
  setlocal enabledelayedexpansion
  start "" /d"!WorkingDirectoryExpanded!" /wait "!TargetPathExpanded!" !Arguments!
  endlocal
)

作者: pursuit     时间: 2009-6-21 01:14
xiexie
作者: wtp791211     时间: 2009-6-26 03:38
太谢谢6楼的朋友了,解决到了,再次感谢!