@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.
答案 0 :(得分:1)
您可能只需要在所有文件名周围添加引号("
)。
我在谈论这类事情:
if not exist "!dest!" move "!src!" "!dest!"
这只是一个建议,我现在没时间尝试调试它。
编辑以回应评论:
默认情况下, for
使用空格作为分隔符。您应该说for /f "delims="
而不是for /f
,以告诉它不要这样做。