如何将批处理文件的结果输出到与输入文件同名的文件夹中?

时间:2019-02-11 23:30:27

标签: windows batch-file

我当前正在使用一个批处理文件,该批处理文件使用一个名为CriPackTools的程序来提取CPK文件的内容。

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

正如您在此处看到的那样,它使用任何cpk拖放到批处理文件中并将其内容提取到同一目录。

现在如何更改它,以便它使用我的XXXX.cpk,创建一个名为XXXX(与文件相同)的文件夹,并将其内容提取到该文件夹​​中。

谢谢

2 个答案:

答案 0 :(得分:1)

假设CriPakTools.exe将文件提取到当前目录:

@echo off 
for /r %%i in (*.cpk) do (
    md "%%~dpni"
    pushd "%%~dpni"
    "CriPakTools.exe" "%%i" ALL
    popd
)

答案 1 :(得分:0)

由于您正在使用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

这可能会对您有所帮助。