批量为/ r启动程序正在运行

时间:2013-10-05 01:51:39

标签: batch-file

我正在尝试创建一个非常简单的脚本来定位多个子文件夹中的wav文件,并使用wave文件的名称作为我复制到每个子文件夹中的小程序的参数 我尝试了调用程序并将参数传递给它的不同变体,这是我的最新版本

 FOR /R F:\database\Testing %%G IN (*.wav) DO start /wait /separate %%~dpGproc_eng_track.exe %%~dpnG

我收到错误的说法 找不到包含此应用程序所需的proc_eng_track组件的目录。 确保包含proc_eng_track的目录位于路径

问题是脚本在另一台PC上正常运行这里是在其他PC上运行的确切脚本

FOR /R C:\database\CAP\Session1\sentences\wav %%G IN (*.wav) DO start "" /wait /separate %%~pG/proc_eng_track.exe %%~pnG

如果我进入每个子文件夹并执行forfiles循环,程序运行正常,但考虑到文件数量,这是令人筋疲力尽的 任何提示都会很棒

2 个答案:

答案 0 :(得分:1)

这将进入每个文件夹并使用该文件运行本地exe。 看看EXE文件是否以这种方式运行:

@echo off
FOR /R "F:\database\Testing" %%G IN (*.wav) DO (
pushd "%%~dpG"
start "" /wait /separate "proc_eng_track.exe" "%%~dpnG"
popd
)

通过权限,这应该与EXE文件的单个副本一起使用,假设exe文件知道它可能具有的任何支持文件的位置:

@echo off
FOR /R "F:\database\Testing" %%G IN (*.wav) DO (
 pushd "%%~dpG"
   start "" /wait /separate "c:\program folder\proc_eng_track.exe" "%%~dpnG"
 popd
)

答案 1 :(得分:0)

为什么不将系统PATH变量设置到程序主目录中而不是将程序复制到每个文件夹中?这可以通过多种方式在各种版本的Windows上完成,有很多文献可以通过简单的Google搜索“在Windows上设置PATH(无论版本)”。

这样,您只需调用.exe,因为它是“全局”已知的,并且错误“无法找到包含proc_eng_track组件的目录”将会消失,因为您显然需要的不仅仅是单个exe来运行您的任何程序运行