windows 批处理文件执行文件夹中的所有.exe

scyqe7ek  于 2023-11-21  发布在  Windows
关注(0)|答案(3)|浏览(308)

我需要创建一个批处理脚本,它将运行文件夹中的所有.exe文件。
我运行的是windows7,批处理文件存储在根文件夹中
我尝试了几种变化,但都没有成功。

  1. REM dir *.exe /S /B > tmpFile
  2. REM set /p listVar= < tmpFile
  3. REM del tmpFile
  4. FOR %%F IN (%listVar%) DO %%F

字符串

  1. FOR /F "usebackq" %%F IN ('dir *.exe /S /B') DO %%F


我已经看过了上面方法的几个变体,但没有一个有效。顶部版本(我想避免)只从文件中读取一行。底部版本在提示窗口中输出未修改的“dir”命令。
最终,我想帮助确定如何解决这个问题,而不需要一个临时文件。

ha5z0ras

ha5z0ras1#

  1. for /r "." %%a in (*.exe) do start "" "%%~fa"

字符串
这将启动当前文件夹下的所有可执行文件,并重新启动。根据您的需要更改对当前文件夹(".")的引用。

dwthyt8l

dwthyt8l2#

  1. for %1 in (%USERPROFILE%\*.exe) do "%1"

字符串
这将启动用户文件夹中的所有可执行文件。当然,这包括安装程序和类似的东西,你可能不想重新安装所有应用程序,所以用你想要的目录替换%USERPROFILE%

wgmfuz8q

wgmfuz8q3#

MC ND解决方案有一个重要的警告。首先,如果您以管理员身份运行该脚本,则主目录默认为C:\Windows\System32,即使该脚本位于其他位置。尝试从该位置运行每个脚本将对系统产生有害影响,并可能导致您需要重新安装Windows(问我是如何知道的.

  1. cd /D "%~dp0"

字符串
这会将工作目录更改为文件所在的位置。
所以脚本应该是:

  1. cd /D "%~dp0"
  2. for /r "." %%a in (*.exe) do start "" "%%~fa"


我甚至建议将目录作为一个参数。

相关问题