- В этой теме 1 ответ, 2 участника, последнее обновление 6 месяцев, 3 недели назад сделано .
Просмотр 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
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`. Если файлов нет, выводится сообщение, и существующие локальные файлы не удаляются.