我有一个简单的批处理文件,可以分割我的Unversity讲座的音频和视频。这些文件是使用另一张海报的代码获得的:
@echo off
setlocal enableDelayedExpansion
set DRIVE=%cd:~0,3%
set MYDIR=%DRIVE%ToDo\ToConvert\
for /F %%x in ('dir /B/D %MYDIR%') do (
echo %%x
)
pause
文件标有:
PHY2021 (1).mp4
PHY2021 (2).mp4
PHY2021 (3).mp4
etc
脚本的输出是:
PHY2021
PHY2021
PHY2021
问题显而易见,但无法找到如何投入“空间”以及批处理中的内容。我已经看到了在我的搜索中用“下划线”替换“空间”的方法,但有人可以告诉我是否有是一种解决方法吗?
答案 0 :(得分:4)
试试这个(使用双引号而不使用分隔符):
@echo off
setlocal
set "DRIVE=%cd:~0,3%"
set "MYDIR=%DRIVE%ToDo\ToConvert\"
for /F "delims=" %%x in ('dir /B/D "%MYDIR%"') do (
echo %%x
)
pause
答案 1 :(得分:0)
编辑:我编辑了我的答案以匹配Endoro,因为我在那里犯了一个错误,并且为了不让未来的读者感到困惑。
FOR /F
中有一个默认的空格和制表符分隔符集。你需要覆盖它,如下所示:
@echo off
setlocal enableDelayedExpansion
set DRIVE=%cd:~0,3%
set MYDIR=%DRIVE%ToDo\ToConvert\
for /F "delims=" %%x in ('dir /B/D %MYDIR%') do (
echo "%%x"
)
pause
请注意delims=
之后的FOR /F
。
来自官方FOR
文档:
delims=xxx - specifies a delimiter set. This replaces the default delimiter set of space and tab.