Как мне заставить мой пакетный скрипт использовать команду в рекурсивном каталоге? - PullRequest
1 голос
/ 03 октября 2010

пример 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 
)

Когда я запускаю летучую мышь, я получаю precomp.exe - неизвестная команда, которую у меня есть precomp в папке со сценарием.Но это будет работать только в том случае, если я скопирую precompt во все подкаталоги и в каждую папку, содержащую файл .pcf

Пробовал другой подход с использованием 2 сценариев

script1   

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

Оба сценария работают, но только еслиЯ копирую precomp в папку Ever и все вложенные папки.Пожалуйста, помогите, поскольку я знаю, что должно быть далеко, чтобы скрипт использовал прекомпьютер в папке со скриптом

1 Ответ

0 голосов
/ 03 октября 2010

Вы можете временно изменить переменную среды PATH, указав путь precomp:

, например:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...