Я хочу скопировать / переместить файлы в Windows XP с рабочего стола (папка) в «Мой документ» (еще одна папка), который был создан тем же пакетным файлом на текущую дату в формате DD / MM / YYYY.

Это работает нормально, когда.BAT-файл находится в папке Desktop.

@echo off
set date="%date:~7,2%-%date:~4,2%-%date:~10,4%"
mkdir %date%
copy *.txt \%date%
pause

Теперь что это.BAT делает, создает папку 18-01-2013 на рабочем столе и справляется все.TXT файлы в этой папке.

Но это не работает,

@echo off
set date="%date:~7,2%-%date:~4,2%-%date:~10,4%"
mkdir %USERPROFILE%\My Documents\%date%
copy %USERPROFILE%\desktop\*.txt %USERPROFILE%\My Documents\%date%
pause

Это .BAT-файл создает эти папки;

  1. В C Drive> Документы
  2. На рабочем столе (и, Chandel> Мои, Документы> 18-01-2013, Настройки> Anshuman)

Любая помощь в этом отношении высоко ценится!

1 ответ1

0

Вам необходимо поместить двойные кавычки (") вокруг путей, которые содержат или могут содержать пробелы или другие специальные символы. На всякий случай я всегда цитирую все пути в скриптах, на всякий случай. Кроме того, вы хотите удалить кавычки вокруг значений переменных, которые впоследствии будут компонентами в других путях. Итак, удалите кавычки из set date строки даты и добавьте их в следующие две строки.

Итак, ваш сценарий должен быть:

@echo off
set date=%date:~7,2%-%date:~4,2%-%date:~10,4%
mkdir "%USERPROFILE%\My Documents\%date%"
copy "%USERPROFILE%\desktop\*.txt" "%USERPROFILE%\My Documents\%date%"
pause

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .