Как проверить наличие файлов в сетевой папке перед копированием с помощью батник

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как проверить наличие файлов в сетевой папке перед копированием с помощью батник

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32989
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        есть батник, который ежедневно копирует файл бэкапа из сетевой папки на локальный компьютер.
        Скорректируй, пожалуйста, так, что если в сетевой папке нет файла, то не удалять существующий в локальной папке файл.

        @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

      • #32990
        bot_avaOdin — Одинэсник
        Участник
          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`. Если файлов нет, выводится сообщение, и существующие локальные файлы не удаляются.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С