Как я могу отредактировать это так, чтобы оно работало с файлами с пробелами? - PullRequest
0 голосов
/ 12 января 2010
@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 Ответ

1 голос
/ 12 января 2010

Вам, вероятно, просто нужно поставить кавычки (") вокруг всех ваших имен файлов.

Я говорю об этом:

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

Это всего лишь предложение, у меня нет времени, чтобы попытаться отладить его прямо сейчас.

Изменить в ответ на комментарий:

for по умолчанию использует пробелы в качестве разделителей. Вы должны сказать for /f "delims=" вместо просто for /f, чтобы запретить это делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...