Пакетная команда для перемещения файлов в новый каталог - PullRequest
13 голосов
/ 08 апреля 2011

Я хочу написать пакетное задание, которое при выполнении захватит все файлы в папке C:\Test\Log и переместит их в новый каталог в C:\Test. Этот новый каталог будет называться «Backup-» и «CURRENT DATE».

Таким образом, после завершения, папка журнала должна быть пустой со всеми файлами, которые теперь находятся в новой папке.

Я знаю, что должен был бы использовать команду MOVE, но не знаю, как динамически создать новую папку и использовать дату, чтобы назвать ее.

Ответы [ 2 ]

30 голосов
/ 08 апреля 2011

Как-то так может помочь:

SET Today=%Date:~10,4%%Date:~4,2%%Date:~7,2%
mkdir C:\Test\Backup-%Today%
move C:\Test\Log\*.* C:\Test\Backup-%Today%\
SET Today=

Важной частью является первая строка. Он принимает выходные данные внутреннего значения DATE и анализирует его в переменную окружения с именем Today в формате CCYYMMDD, как в '20110407`.

%Date:~10,4% говорит, что нужно извлечь * подстроку Date переменной среды 'Чт 04/07/2011' (встроенный - введите echo %Date% в командной строке), начиная с позиции 10 для 4 символов (2011). Затем он объединяет другую подстроку Date:, начиная с позиции 4, для 2 символов (04), а затем объединяет два дополнительных символа, начиная с позиции 7 (07).

* Начальные точки значения подстроки начинаются с 0.

Возможно, вам придется настроить эти значения в зависимости от формата даты в вашей локали, но это должно дать вам отправную точку.

0 голосов
/ 08 апреля 2011

это также будет работать, если вам нравится

 xcopy  C:\Test\Log "c:\Test\Backup-%date:~4,2%-%date:~7,2%-%date:~10,4%_%time:~0,2%%time:~3,2%" /s /i
 del C:\Test\Log
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...