2014-09-09 2 views
0

Я пытаюсь получить пакет для резервного копирования папки на рабочем сервере. (Пожалуйста, смотрите прилагаемую ссылку) Bat Error "invalid number of parameters"Новая папка для каждой резервной копии CMD

Короче говоря - мне нужен скрипт, чтобы назвать новую папку для каждой резервной копии, которая «мкр new_folder» была предложена, но я не могу показаться, чтобы получить контекст или как поместить его в код.

@echo This will now create a new backup of S:\Internal Auditor\9 - September 14 

@echo off 

:: variables 
set SRCFOLDER="S:\Internal Auditor\9 - September 14" 
set DESTFOLDER="S:\Internal Auditor\2014\9 - Sept Backup" 
set folder=%date:~5,2%-%date:~8,2%-%date:~0,4% 
set backupcmd=/W /E /H /V /C /Z /I /F /J /R /Y 

echo ######## PLEASE WAIT SYSTEM BACKINGUP SOME DATA######## 
"md new_folder" xcopy %SRCFOLDER% %DESTFOLDER% %backupcmd% 

echo !!!!!!!!BACKUP COMPLETED THANKS!!!!!!!!!!!!!! 
@pause 

Любая помощь будет принята с благодарностью!

---------- EDIT: Я попробовал строку кода, который медленно заставил меня ближе: ----------

@echo This will now create a new backup of S:\Internal Auditor\9 - September 14 

@echo off 

:: variables 
set SRCFOLDER="S:\Internal Auditor\9 - September 14" 
set DESTFOLDER="S:\Internal Auditor\2014\9 - Sept Backup" 
set folder=%date:~5,2%-%date:~8,2%-%date:~0,4% 
md "%DESTFOLDER%\%folder%" 
set backupcmd=/W /E /H /V /C /Z /I /F /J /R /Y 

echo ######## PLEASE WAIT SYSTEM BACKING UP SOME DATA######## 
xcopy %SRCFOLDER% "%DESTFOLDER%\%folder%" %backupcmd% 

echo !!!!!!!!BACKUP COMPLETED THANKS!!!!!!!!!!!!!! 
@pause 

НО - я получаю следующий результат:

This will now create a new backup of S:\Internal Auditor\9 - September 14 
Access is denied. 
Error occurred while processing: S:\Internal. 
A subdirectory or file Auditor\2014\9 already exists. 
Error occurred while processing: Auditor\2014\9. 
A subdirectory or file - already exists. 
Error occurred while processing: -. 
A subdirectory or file Sept already exists. 
Error occurred while processing: Sept. 
A subdirectory or file Backup\9/-9/-Tue already exists. 
Error occurred while processing: Backup\9/-9/-Tue . 
######## PLEASE WAIT SYSTEM BACKING UP SOME DATA######## 
Invalid number of parameters 
!!!!!!!!BACKUP COMPLETED THANKS!!!!!!!!!!!!!! 
Press any key to continue . . . 

---------- EDIT 2: Я попытался строку кода, который медленно заставил меня ближе: ----------

Я следовал предложения и некоторые вещи, которые я нашел в Интернете, и теперь я до того момента, когда я получаю несколько ошибок:

md "S:\Internal Auditor\~\09/12/2014" 
A subdirectory or file S:\Internal Auditor\~\09/12/2014 already exists. 

и:

xcopy "S:\Internal Auditor\9 - September 14 S:\Internal Auditor\2014\9 - Sept Backup\09/12/2014 
/W /E /H /V /C /Z /I /F /J /R /Y /D 
File not found - 09/12/2014 /W /E /H /V /C /Z /I /F /J /R /Y /D 

Это мой код:

@echo This will now create a new backup of S:\Internal Auditor\9 - September 14 
Rem Backup 9 - September 14 

@echo 

:: variables 
set "SRCFOLDER=S:\Internal Auditor\9 - September 14" 
set "DESTFOLDER=S:\Internal Auditor\2014\9 - Sept Backup" 
set folder=%date:~4% 
md "%DESTFOLDER%\%folder%" 
set backupcmd=/W /E /H /V /C /Z /I /F /J /R /Y /D 


@echo ######## PLEASE WAIT SYSTEM BACKING UP SOME DATA######## 

xcopy "%SRCFOLDER% %DESTFOLDER%\%folder% %backupcmd%" 

@echo !!!!!!!!BACKUP COMPLETED THANKS!!!!!!!!!!!!!! 
@pause 

Кроме того, когда я запускаю код, он делает новый каталог ~ \ 09 \ 12 \ 2014 вместо желаемого ~ \ 09/12/2014. Уточнение: Он делает 3 новых подкаталога вместо одного нового подкаталога.

+0

не превратят 'эхо off', так что вы сможете увидеть как анализируется ваш пакетный файл. вы увидите, что у вас есть проблемы с вашими кавычками (например, вы определяете свой DESTDIR, включая кавычки, но затем вы окружаете его другой парой на линии 'md' и xcopy – ths

+0

Спасибо за предложение отключить 'echo' - Это очень помогло мне ... – Bcarr91

+0

вы вставляете все параметры xcopy в кавычки, а не только из двух путей, в отдельности, вы также не можете иметь/в pathnames, это незаконно. – ths

ответ

0

Хорошо, давайте посмотрим, что вы делаете. Ваша переменная folder устанавливается на основе ваших местных настроек на короткую дату, что для меня показывает, например. Tue 09/09/2014, так что ваш %date:~0,4% будет Tue. Используйте эхо-команду, чтобы убедиться, что вы получаете то, что вы хотите:

echo %date:~5,2%-%date:~8,2%-%date:~0,4% 

Но давайте предположим, теперь вы уже поняли, что, и %folder% содержит то, что вы хотите. Это две команды на линии, которая не будет работать в лучшем случае в худшем собирается создать кучу папок, вы не ожидали:

"md new_folder" xcopy %SRCFOLDER% %DESTFOLDER% %backupcmd% 

Вы хотите разделить, что на 2 линии, и вы я уверен, что хочу использовать новое имя папки на основе даты как часть адресата.Так что это будет делать:

md "%DESTFOLDER%\%folder%" 

, а затем скопировать вам нужно включить \%folder% в пункт назначения:

xcopy %SRCFOLDER% %DESTFOLDER%\%folder% %backupcmd% 

Но я думаю, и я знаю, что я не должен просить разъяснений, но возможно, если я ошибаюсь, вы должны уточнить, что вам нужно немного больше в вашем вопросе, вы действительно хотите, чтобы S:\Internal Auditor\2014\9 - Sept Backup был S:\Internal Auditor\, а также значение в %folder% и не имело даты так, как оно есть на этом пути.

Предложение: Введите %folder% переменную, которая должна быть yyyy-mm-dd формат, такой как 2014-09-09, поэтому его можно отсортировать и использовать в пункте назначения.

+0

Спасибо за прояснение эха даты% - я сделал найти папку, которую я не ожидал, - на моем рабочем столе. XD И уточнить: «S: \ ~ \ 9 - September 14» - это оригинальная папка Мне нужна резервная копия, чтобы скопировать содержимое выше: «S: \ ~ \ 9 - сентябрьская резервная копия», но когда он это делает, мне нужно создать новую папку в папке резервного копирования с датой и временем в качестве имени папки. Также: Могу ли я сделать: set folder =% date: yyyy-mm-dd – Bcarr91

+0

Нет, вам нужно разобрать часть даты, как вы, но с учетом того, что разделы. На этом сайте нет сомнений десятки примеров. Для моего 'Wed 09/10/2014' форта сегодня (стандартный формат США) это будет' set folder =% date: ~ 10,4% -% date: ~ 4,2% -% date: ~ 7,2 % ', чтобы получить' 2014-10-09'. – Torqane

0

ОК. Есть некоторые ошибки:

set SRCFOLDER="S:\Internal Auditor\9 - September 14" 
set DESTFOLDER="S:\Internal Auditor\2014\9 - Sept Backup" 

Должно быть (безопасный метод, добавив первую цитату в начале SRCFOLDER и DESTFOLDER):

set "SRCFOLDER=S:\Internal Auditor\9 - September 14" 
set "DESTFOLDER=S:\Internal Auditor\2014\9 - Sept Backup" 
Смежные вопросы