Как вывести результаты пакетного файла в папку с тем же именем, что и входной файл? - PullRequest
0 голосов
/ 12 февраля 2019

В настоящее время я использую пакетный файл, который использует программу CriPackTools для извлечения содержимого файла CPK.

@echo off 
for /r %%i in (*.cpk) do "CriPakTools.exe" "%%i" ALL

, как вы можете видеть здесь, он использует любые cpk, которые я перетаскиваю в пакетный файл иизвлекает содержимое в тот же каталог.

Теперь, как я могу изменить его, чтобы он использовал мой XXXX.cpk, создал папку с именем XXXX (так же, как файл) и извлек ее содержимое внутри папки.

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Поскольку вы используете цикл for /R, вы просматриваете все подпапки.Если файл .cpk находится в папке, отличной от %cd% или в папке CriPakTools.exe, команда не будет выполнена.Я хотел бы предложить следующий код:

@echo off

pushd "C:\path\with\cpks"
for /R "C:\path\with\cpks" %%A IN (*.cpk) do (
    cd "%%~dpA"
    mkdir "%%~nA"
    cd %%~nA
    "CriPakTools.exe" "%%~fA" ALL
)

cd "C:\path\with\cpks"
echo The operation has finished.
pause>nul
exit /b 0

Это может помочь вам.

0 голосов
/ 12 февраля 2019

При условии, что CriPakTools.exe извлекает файлы в текущий каталог:

@echo off 
for /r %%i in (*.cpk) do (
    md "%%~dpni"
    pushd "%%~dpni"
    "CriPakTools.exe" "%%i" ALL
    popd
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...