Целью командных файлов является циклическое перемещение по каталогу, перемещение всех файлов с измененной датой между x и y в каталог temp (находящийся в папке архива), создание a. zip из каталога temp, затем, наконец, удалите временную директорию.Пути UNC не поддерживаются в вызываемом пакетном файле
Я вызываю партию из партии. Первоначальная партия использует pushd для извлечения сетевого пути, но затем, когда вызывается следующая партия, и файлы forfiles используются для перемещения файлов в архив, вызывается ошибка пути UNC. «ОШИБКА: пути UNC (\ машина \ общий доступ) не поддерживаются».
Два файла .bat находятся в одном каталоге в общей сети.
Я прочитал другой ответ для этой аналогичной проблемы, но ни один из ответов не исправит мою проблему.
Первый пакетный файл:
@echo off
setlocal EnableExtensions
cls
@pushd %~dp0
:firststep
........
code....
........
echo Calling...
CALL ArchiveTool.bat %MM% %yyyy% \\riskview\EBSArchive
echo Press any key to process next directory...
pause >nul
Чтобы здесь все работает правильно.
В противном случае партия:
@echo off
setlocal EnableExtensions
.......
Code...
.......
md %3\Archive\%1-%2
forfiles /P %3 /D +%1/1/%2 /C "cmd /c if /I @FDATE LSS %mm%/1/%2 move @file
%3\Archive\%1-%2 >NUL & echo|set /p=."
каталог успешно создан, но Forfiles не удается.
1) Я бы настоятельно рекомендуем вам использовать скрипт Powershell вместо файла .bat для чего любой сложности. 2) Если вы должны использовать .bat-файл - и если имена UNC не работают ... то простым обходным решением может быть сопоставление общего ресурса с буквой диска. – paulsm4
Вы можете установить полный UNC-путь для .bat с кавычками после 'call'. И% ~ dp0 следует заменить как% ~ p0 для сетевого общего пути. 'Pushd' также не может использоваться для пути UNC. – enjoying