У меня есть пакетный скрипт, который читает из общего каталога Unix ( X ) каждые 3 секунды и копирует все файлы в локальный каталог на ПК с Windows 7.
Как только файлы успешноСкопированный сценарий удаляет содержимое общего каталога Unix, поэтому те же файлы не копируются снова.
Проблема в том, что сценарий иногда не может скопировать файл.Это выглядит довольно случайно.
Сценарий должен выдавать любые обнаруженные ошибки, но я не вижу ошибок в выходном журнале при возникновении этих событий.
Итак, мои вопросы: 1. Естьтам проблема с моим сценарием относительно перехвата ошибок.Выходные данные журнала только когда-либо основаны на errorLevel, равном 0 (см. Скрипт), даже если в каталоге Unix нет файлов, где вывод errorLevel 1 в журнал должен выполняться в соответствии с кодом.
Существует ли причина, по которой файлы не будут скопированы из общего каталога Unix в локальный каталог, что выглядит случайным образом?
Любые входные данные приветствуются.
echo off
:START
rem /Y removes prompt fro do you want to overwrite?
xcopy /Y X:\ C:\Users\histology\Desktop\PrintMateCopy
rem for debugging missed cassettes, copy to a new directory and don't delete
xcopy /Y X:\ C:\Users\histology\Desktop\PrintmateCopy2
echo %errorLevel%
if %errorLevel% equ 5 (
echo Disk write error occurred.: Error %errorLevel% >> PrintMateLog.log
)
if %errorLevel% equ 4 (
echo %date% : %time% : Error: %errorLevel% : Initialization error occurred. There is not
enough memory or disk space, or you entered
an invalid drive name or invalid syntax on
the command line. >> C:\Users\histology\Desktop\PrintmateCopy2\PrintMateLog.log
)
if %errorLevel% equ 2 (
echo Error: %errorLevel% user terminated the copy with Crtl C >> C:\Users\histology\Desktop\PrintmateCopy2\PrintMateLog.log
)
if %errorLevel% equ 1 (
echo Error: %errorLevel% No files found >> C:\Users\histology\Desktop\PrintmateCopy2\PrintMateLog.log
)
if %errorLevel% equ 0 (
echo %date% : %time% : Files were copied without error. Deleting Unix share files from dir..Errorlevel : %errorLevel% >> C:\Users\histology\Desktop\PrintmateCopy2\PrintMateLog.log
rem /F Force del read only files. /Q force del without prompt
del /F /Q X:\
if %errorLevel% equ 1 (
echo No Unix share dir files found. error %errorLevel% C:\Users\histology\Desktop\PrintmateCopy2\PrintMateLog.log
)
if %errorLevel% equ 0 (
echo Files deleted.>> C:\Users\histology\Desktop\PrintmateCopy2\PrintMateLog.log
)
)
ДОПОЛНЕНИЕ: Скрипт для подсчета количества файлов в каталоге до того, как была сделана копия.
Проблема в том, что скрипт останавливается, когда каталог пуст, есть ли способ проверить, пуст ли каталог докод выполнен?
SET /A "N=0"
FOR /F %%f IN ('DIR /S /B /A:-D "*"') DO (
SET /A "N=!N!+1"
)
ECHO N is %N%