如何让我的批处理脚本在递归目录中使用命令?

时间:2010-10-03 09:40:13

标签: batch-file cmd

示例1

@echo off  
for %%a in (precomp.exe) do set pc=%%~fa  
for /r %%a in (*.pcf) do (  
  pushd %%~dpa  
  echo [%pc% -r %%~nxa]  
  %pc% -r %%~nxa 
  popd 
)

当我运行bat我得到precomp.exe是一个未知的命令我有precomp 在包含脚本的文件夹中。但它只有在我预先复制到每个子目录和每个包含.pcf文件的文件夹时才有效

尝试使用2个脚本的不同方法

script1   

for /r %%i in (*.pcf) do call sr2 "%%~pi" "%%i"   
script 2  
pushd %1                 
precomp -r %2    
popd        

这两个脚本都可以工作,但前提是我将precomp复制到Ever文件夹和所有子文件夹中。请帮忙,因为我知道必须要让脚本使用带有脚本的文件夹中的precomp

1 个答案:

答案 0 :(得分:0)

您可以临时修改PATH环境变量以包含precomp

的路径

e.g:

setlocal
set PATH=%PATH%;%~dp0
for /r %%i in (*.pcf) do (
    pushd "%%~pi"
    precomp -r %%i
    popd
)

或直接使用precomp的路径:

for /r %%i in (*.pcf) do %~dp0\precomp -r %%i