无法在Bat文件中获取正确的路径空间

时间:2016-03-07 15:03:27

标签: windows batch-file cmd

我被困了,可以对这个批处理脚本使用一些帮助 %output%即使有空格也能给出正确的路径 %input%给了我Error: The file 'C:\Input' could not be opened for reading: open file error.
代码是如此类似,我不明白为什么它读一个而不是另一个 我尝试使用"input=C:\Input folder\"input="C:\Input folder\",但仍然没有。

我通过HTA文件中的jscript获取文件夹路径。

如果我将输入更改为没有C:\Input\

之类的任何空格的文件夹,则代码效果很好

提前致谢。

@echo off & setlocal
set input=C:\Input folder\
set output=C:\Output folder\
set PATH=%PATH%;C:/Program Files/MKVToolNix/

for %%a in (%input%*.mkv) do ( mkvmerge -q -o "%output%%%~na%%~xa" -s eng --title %%a "%%a"
if errorlevel 1 (
echo Warnings generated!
) else (
for %%b in (%output%*.mkv) do ( mkvpropedit -q "%output%%%~na%%~xa" --edit track:s1 --set flag-default=1
if errorlevel 1 (
echo %%~na%%~xa - Error!
) else (
echo %%~na%%~xa - Complete.
)
)
)
)
endlocal
pause

1 个答案:

答案 0 :(得分:1)

尝试使用(因为你可以用双引号分隔元素。仍然可以使用通配符符号):

@echo off & setlocal
set "input=C:\Input folder\"
set "output=C:\Output folder\"
set PATH=%PATH%;C:/Program Files/MKVToolNix/

for %%a in ("%input%*.mkv") do (
    mkvmerge -q -o "%output%%%~na%%~xa" -s eng --title %%a "%%a" || (
        echo Warnings generated!
    ) && (
        for %%b in ("%output%*.mkv") do ( 
            mkvpropedit -q "%output%%%~na%%~xa" --edit track:s1 --set flag-default=1 || (
                echo %%~na%%~xa - Error!
            ) && (
                echo %%~na%%~xa - Complete.
            )
        )
    )
)
endlocal
pause