Windows Can';无法在Bat文件中正确获取路径中的空格

Windows Can';无法在Bat文件中正确获取路径中的空格,windows,batch-file,cmd,Windows,Batch File,Cmd,我陷入困境,需要一些帮助来处理此批处理脚本。 %output%给出了正确的路径,即使有空格。 %input%给了我错误:无法打开文件“C:\input”进行读取:打开文件错误。 代码非常相似,我不明白为什么它只读取一个而不读取另一个。 我试过使用“input=C:\input folder\”和input=“C:\input folder\”,但仍然一无所获 我正在通过HTA文件中的jscript获取文件夹路径 如果我将输入更改为没有任何空间的文件夹,例如C:\input\ 提前谢谢 @echo

我陷入困境,需要一些帮助来处理此批处理脚本。
%output%
给出了正确的路径,即使有空格。
%input%
给了我
错误:无法打开文件“C:\input”进行读取:打开文件错误。

代码非常相似,我不明白为什么它只读取一个而不读取另一个。
我试过使用
“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
尝试(在for中,您可以使用双引号分隔元素。通配符仍然可以使用):


谢谢你的回复。然而,这并没有解决问题。它甚至不再执行命令。我认为这是一种罕见的情况,您希望第一个
位于
=
的右侧。很高兴在@SomethingDark再次见到您。它似乎将
和“
放在错误文本的随机位置<代码>错误:文件“folder”Input-s eng--title“C:\Input”无法打开阅读:open file Error。@Jon-尝试删除
%Input%*.mkv“
%output%*.mkv”中的引号。最坏的情况下,你将只是你开始的地方。@SomethingDark-谢谢。还是不行。当我将执行从%input%到%output%的Echo添加到
时,它会显示正确的路径。我想我放弃了,我只能使用没有空间的路径(
@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