2017-10-17 17 views
1

ファイルの内容を入力として使用する前に、特定のディレクトリ内のすべてのMP3ファイルを見つけようとしています。ファイル名のスペースFORループ、バッチ処理

スペースを含むファイルの場所を除いて、ファイルコピーのすべてのインスタンスが正常に動作しています。どのように私は現在のコードでこれを解決する必要があります。私MP3_Location.txtファイルの

内容の下のスクリーンショットを参照してください、次のとおりです。

C:\Test\asdad.MP3 
C:\Test\New folder\werwer.MP3 
C:\Test\OneDrive - Backup\asdasdasdad.MP3 

File location with spaces not working

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 based on the previous Output 
FOR /F %%G IN (C:\Software\MP3_Location.txt) DO c:\windows\system32\xcopy 
"%%G" C:\Software\MP3\ /Y 

編集1:提案されているようになりましたDelimsを使用しようとすると、(おそらくそれを使用していません正しく)

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 
+1

delimsオプションを使用して、区切り文字を使用しないようにFORコマンドに指示する必要があります。 – Squashman

+0

@squashmanループ内のデリムを試しましたが、まだ動作していません。 – user3839914

+1

ファイルリストを最初に作成する必要はありません。 'FOR/RC:\ TEST %% G IN(* .mp3)do'ファイルを反復したり、' FOR/F'コマンドを使って 'DIR'コマンドを使用する' FOR/R'コマンドを使うことができます: 'FOR/F" delims = "%% G IN( 'dir/b/s * .mp3')do ....' – Squashman

答えて

0

コマンドを使用

FOR /F "delims=" %%G IN