Batch file 处理文件名中的空间,用于循环、批处理
我试图找到给定目录中的所有MP3文件,然后将其导出为一个文件,然后再尝试使用该文件的内容作为输入 除了包含空格的文件位置外,文件副本的所有实例都工作正常。我应该如何在我当前的代码中解决这个问题。请参考下面的屏幕截图 my MP3_Location.txt文件的内容包括:Batch file 处理文件名中的空间,用于循环、批处理,batch-file,for-loop,input,whitespace,Batch File,For Loop,Input,Whitespace,我试图找到给定目录中的所有MP3文件,然后将其导出为一个文件,然后再尝试使用该文件的内容作为输入 除了包含空格的文件位置外,文件副本的所有实例都工作正常。我应该如何在我当前的代码中解决这个问题。请参考下面的屏幕截图 my MP3_Location.txt文件的内容包括: C:\Test\asdad.MP3 C:\Test\New folder\werwer.MP3 C:\Test\OneDrive - Backup\asdasdasdad.MP3 编辑1:按照建议,现在尝试使用Delims(
C:\Test\asdad.MP3
C:\Test\New folder\werwer.MP3
C:\Test\OneDrive - Backup\asdasdasdad.MP3
编辑1:按照建议,现在尝试使用Delims(可能没有正确使用它)
使用命令
FOR /F "delims=" %%G IN
您需要使用delims选项来告诉FOR命令不要使用任何分隔符。@squashman在循环中尝试了delims,但仍然不起作用。您知道不必先创建文件列表。您可以使用
FOR/R
命令来迭代文件FOR/R C:\TEST%%G IN(*.mp3)do
或使用FOR/F
命令,并在其中使用DIR
命令:FOR/F“delims=“%%G IN('DIR/b/s*.mp3'))执行…
。您第一次尝试使用DELIMS是不正确的,因为您需要在for变量之前使用选项。for/F
的语法在帮助文件中有明确的定义:for/F[“options”]%变量在(文件集)DO
非常感谢@Squashman,道歉有点紧张,错过了基本内容。谢谢。
REM Exporting the location of the MP3 file in a given directory
DIR /s/b "C:\Test\*.MP3" >> C:\Software\MP3_Location.txt
REM Trying to copy the files
FOR /F %%G "tokens=* delims=" IN (C:\Software\MP3_Location.txt) DO c:\windows\system32\xcopy "%%G" C:\Software\MP3\ /Y
FOR /F "delims=" %%G IN