批处理脚本变量中 Space 的问题

Problem with Space in Variable on Batch-Script

我的批处理脚本有问题。 我想删除一个文件 我先复制一个变量。 如果我输出变量,所有 space 都在那里。 但如果我尝试删除它,文件名会停在第一个 space.

For /F "delims=" %%i in ('dir /B *.mkv') do set orginaldatei=%%~ni.mkv
ECHO %orginaldatei%
del %orginaldatei%

我也试过没有“delims=”。

解决方法是引用文件名。

del "%orginaldatei%"

那是因为 del 接受要删除的文件列表,由 space 分隔。
如果 space 是定界符或文件名的一部分,引号有助于弄清楚。

del my file     --- Tries to delete "my" and "file"
del "my file"   --- Tries to delete "my file"