让我为我的问题铺垫一下。我有一个文件夹 (FOLDER_ABC
)。在该文件夹中,有一个用于我的应用程序的文件夹,包括一个唯一且不断变化的版本号 (application-v1.3.4
)。在该文件夹中,有应用程序 (application-v1.3.4.exe
) - 它也会定期更改。
C:\FOLDER_ABC\application-v1.3.4\application-v1.3.4.exe
在下面的这一部分中,我为所有以 application* 开头的文件夹创建了 FOLDER_ABC
的目录列表,并将该文件夹名称存储到名为 directory.txt
的文件中。然后我创建一个参数并将该目录存储到其中。我正在这样做,而不是将直接完整路径应用到目录或文件,因为版本会改变,我不想对批处理脚本进行硬编码。
cd C:\FOLDER_ABC\
dir application* /b /ad>"C:\FOLDER_ABC\directory.txt"
set /p verdir= <C:\FOLDER_ABC\directory.txt
这是我的问题。在下面的部分中,我试图让我的批处理脚本运行 application*.exe
文件,并继续处理我的批处理文件。它目前正在运行我的应用程序,但它挂起并且不会继续我的批处理脚本的其余部分。我对所有这些编码都很陌生,因此非常感谢您的帮助。我认为这可能与我没有正确关闭 FOR 循环有关?我怎样才能让它继续到 :FINISH?
cd "C:\FOLDER_ABC\%verdir%\"
FOR /f "tokens=*" %%G IN ('dir /b *.exe') DO %%G;
:FINISH
ECHO THE END
exit
想通了,但没有足够的 StackOverflow 学分来回答我自己的问题。下面列出了我的解决方案。感谢大家。您为我指明了正确的方向。
cd "C:\FOLDER_ABC\%verdir%\"
FOR %%G in (*.exe) DO START %%G
最佳答案
你可以试试:
FOR /f "delims=" %%G IN ('dir /b /a-d *.exe') DO start "" "%%~G"
关于windows - 批处理文件 - FOR 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17430348/