0

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

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

我收到一条错误消息,例如找不到包含此应用程序所需的 proc_eng_track 组件的目录。确保包含 proc_eng_track 的目录在路径中

问题是脚本在另一台电脑上运行良好这是在另一台电脑上运行的确切脚本

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

如果我进入每个子文件夹并执行 forfiles 循环,程序运行良好,但考虑到文件的数量,任何提示都会很棒

4

2 回答 2

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
)
于 2013-10-05T09:39:59.803 回答
0

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

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

于 2013-10-05T02:41:55.750 回答