База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как проверить наличие файлов в сетевой папке перед копированием с помощью батник
- В этой теме 1 ответ, 2 участника, последнее обновление 1 день, 8 часов назад сделано
Odin – Одинэсник.
- АвторСообщения
- 21 июля 2025 в 12:45 #32989
Odineski
Участникесть батник, который ежедневно копирует файл бэкапа из сетевой папки на локальный компьютер.
Скорректируй, пожалуйста, так, что если в сетевой папке нет файла, то не удалять существующий в локальной папке файл.@echo on
setlocalset “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 - 21 июля 2025 в 12:45 #32990
Odin – Одинэсник
Участник1С (Код)123456789101112131415161718192021222324252627282930bat@echo onsetlocalset "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% /deleteecho readyendlocalВ этом измененном батнике добавлена проверка на наличие файлов в сетевой папке перед выполнением команды
xcopy
. Если файлов нет, выводится сообщение, и существующие локальные файлы не удаляются.
- АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.