2010-01-12 61 views
0
@echo off 
set /A Counter=0 
setlocal enabledelayedexpansion 
for %%D in ("e:\test test\") do (
    for /f %%F in ('dir /a-d /b %%D*.*') do (
      ECHO. 
     ECHO Current file is: %%F 
     set src=%%F 
      set dest="e:\test test\space locate\%%F" 
     if not exist !dest! move !src! !dest! 

     if exist !dest! (
      ECHO. 
      ECHO ERROR: "%%F" already exists 
      set /A Counter+=1 
     ) 

     ECHO source file is !src! 
     ECHO destination is !dest! 

    ) 
) 
echo. 
echo %Counter% files not moved. 
+1

如果不努力正確解釋您的問題,您將得不到多少幫助。代碼的轉儲和「它不起作用」不是它的意思。 – pstanton 2010-01-12 04:02:42

+0

@pstanton:標題確實給出了問題陳述:在它們中有空格的文件不會被移動。 – 2010-01-12 04:06:55

+0

@pstanton對不起,我從來沒有使用過這個網站,所以我沒有完全弄清楚如何正確格式化代碼。 – Matt 2010-01-12 04:12:58

回答

1

你可能只是需要把周圍所有的文件名引號(")。

我談論這樣的事情:

if not exist "!dest!" move "!src!" "!dest!" 

這只是一個建議,我沒有時間真正地嘗試一下,現在對其進行調試。

編輯迴應評論:

for默認使用空格作爲分隔符。你應該說for /f "delims=",而不是僅僅for /f,以告訴它不要這樣做。

+0

'dest'已經引用了......你只需要把它們放在'src'這裏。仍然是+1,因爲它應該是解決方案。 – Joey 2010-01-12 06:45:04

+0

當我試圖說,它仍然沒有在其中有一個空間的文件:( http://pastebin.com/m1e766aa2 – Matt 2010-01-12 07:24:51

相關問題