在子文件夹而不是当前文件夹中批处理文件

时间:2017-12-22 02:13:37

标签: windows batch-file directory

我在批处理文件的文件路径中使用%cd%%~dp0似乎有问题,我认为这是因为文件路径中有空格。

文件位于C:\Users\maxmik\Desktop\WEM CONVERTER路径中。我使用ww2ogg和revorb将wem文件转换为ogg,但希望能够使用我命名为wemfiles的子文件夹来保存wem文件和转换后的ogg文件,而不是将它们全部放在与文件夹相同的文件夹中批处理文件和可执行文件。

这是批处理文件脚本:

@echo off

for %%f in (%~dp0/wemfiles/*.wem) do ww2ogg.exe %%f --pcb packed_codebooks_aoTuV_603.bin
for %%f in (%~dp0/wemfiles/*.ogg) do revorb.exe %%f

echo Job Complete!
pause
pause

这是它的输出:

Audiokinetic Wwise RIFF/RIFX Vorbis to Ogg Vorbis converter 0.24 by hcs

Input: C:\Users\mmaksim\Desktop\WEM
Error opening C:\Users\mmaksim\Desktop\WEM
Could not open input file.
Job Complete
Press any key to continue . . .

如果我使用以下批处理文件而不是与可执行文件位于同一文件夹中的wem文件,则它可以正常工作。

@echo off

for %%f in (*.wem) do ww2ogg.exe %%f --pcb packed_codebooks_aoTuV_603.bin
for %%f in (*.ogg) do revorb.exe %%f

echo Job Complete!
pause
pause

1 个答案:

答案 0 :(得分:0)

Doublequotes是你的朋友:

@Echo Off
For %%A In ("%~dp0wemfiles\*.wem") Do ww2ogg.exe --pcb packed_codebooks_aoTuV_603.bin "%%A"
For %%A In ("%~dp0wemfiles\*.ogg") Do revorb.exe "%%A" 
Echo Job Complete!
Pause