Dos Batch Script для копирования содержимого одной папки в другую с использованием подстановочных знаков

Я пытаюсь создать пакетный скрипт, который копирует содержимое одной папки в другую. Я пробовал это:

mkdir "c:\Jamie"
cd c:\jamie_DateTimeStamp*
xcopy * "c:\Jamie"
for /D %%f in (c\jamie_*) do rmdir %%f /s /Q

Я могу заставить работать удаление, но не могу заставить работать xcopy. что нужно знать Папка Jamie_datetimestap может быть любой датой и временем, поэтому у меня нет константы, и мне нужно использовать подстановочный знак. Цель скрипта скопировать содержимое папки с отметкой даты и времени в папку, у которой ее нет, затем удалить папку с отметкой даты и времени. Я не могу просто переименовать папку.


person user2487211    schedule 14.06.2013    source источник
comment
Дэйв, спасибо за исправление моего поста.   -  person user2487211    schedule 14.06.2013
comment
можете ли вы заставить его работать без использования «*» и указания конкретных целей?   -  person tmaxxcar    schedule 14.06.2013
comment
Вы должны попробовать это: set curr_date=%DATE:~10,4%-%DATE:~4,2%-%DATE:~7,2% mkdir c:\Jamie cd c:\jamie mkdir %curr_date%_backup   -  person tmaxxcar    schedule 14.06.2013


Ответы (1)


Если вы хотите копировать подпапки с помощью xcopy, вам нужна опция /s для подкаталогов. Однако вы не можете использовать подстановочный знак в команде cd, но вы можете сделать dir /b Jamie* и использовать его внутри цикла for, как вы это делаете для удаления, чтобы использовать его в качестве цели для cd.

person Peter Kofler    schedule 14.06.2013