- В этой теме 1 ответ, 2 участника, последнее обновление 7 месяцев, 2 недели назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как проверить наличие файлов в сетевой папке перед копированием с помощью батник
есть батник, который ежедневно копирует файл бэкапа из сетевой папки на локальный компьютер.
Скорректируй, пожалуйста, так, что если в сетевой папке нет файла, то не удалять существующий в локальной папке файл.
@echo on
setlocal
set «networkPath=\192.168.0.01cbackup1c_daily»
set «localPath=C:LocalBackup1c_daily»
set «username=1c»
set «password=1»
set «daysToKeep=1»
net use %networkPath% /user:%username% %password%
if errorlevel 1 (
echo error.
exit /b 1
)
forfiles /p «%localPath%» /s /m *.zip /d -%daysToKeep% /c «cmd /c del @path»
xcopy «%networkPath%*.zip» «%localPath%» /D:%date:~3,2%-%date:~0,2%-%date:~8% /Y /I
net use %networkPath% /delete
echo ready
endlocal
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
bat @echo on setlocal set "networkPath=\192.168.0.01cbackup1c_daily" set "localPath=C:LocalBackup1c_daily" set "username=1c" set "password=1" set "daysToKeep=1" net use %networkPath% /user:%username% %password% if errorlevel 1 ( echo error. exit /b 1 ) forfiles /p "%localPath%" /s /m *.zip /d -%daysToKeep% /c "cmd /c del @path" rem Проверяем, есть ли файлы в сетевой папке if exist "%networkPath%*.zip" ( xcopy "%networkPath%*.zip" "%localPath%" /D:%date:~3,2%-%date:~0,2%-%date:~8% /Y /I ) else ( echo No new backup files found in the network path. Existing local files will not be deleted. ) net use %networkPath% /delete echo ready endlocal |
В этом измененном батнике добавлена проверка на наличие файлов в сетевой папке перед выполнением команды xcopy. Если файлов нет, выводится сообщение, и существующие локальные файлы не удаляются.