免责声明:我在CMD.EXE
中有点新手我正在尝试在一行(不在.BAT文件中)找到每个匹配的应用程序并启动它。我的代码:
for /R %systemdrive%\ %i in (*myProgram.exe) do (set a=%~fi & "%a%" & pause)
虽然 a =%〜fi 设置变量,但“%a%”不会运行任何内容,因为%a%为空。我必须等到“%a%”工作之前的另一个提示。
我怀疑问题是由于没有使用“setlocal enabledelayedexpansion”而是在我写的时候
setlocal enabledelayedexpansion & for /R %systemdrive%\ %i in (*myProgram.exe) do (set a=%~fi & "!a!" & pause)
我收到错误:“”!a!“'无法识别为内部或外部命令。”
我这样做是因为我需要远程支持我无法创建的各种Windows机器并留下.BAT,因此我使用AutoHotKey(AHK)动态创建“one-liners”和myProgram1。实际上,exe可能是myProgramA.exe或myProgramD.exe。
答案 0 :(得分:0)
我不是专家,但这对我来说对你所描述的是:
@echo off & setlocal & for /R %systemdrive%\ %%i in (*myProgram.exe) do (echo executing %%i & %%i & pause )
虽然我很感兴趣,为什么你想在一条线上这样做......
答案 1 :(得分:0)
为什么在已经具有所需值的FOR变量时设置环境变量?
for /R %systemdrive%\ %i in (*myProgram.exe) do ("%~fi" & pause)