2016-04-09 3 views
0

Целью командных файлов является циклическое перемещение по каталогу, перемещение всех файлов с измененной датой между 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 не удается.

+0

1) Я бы настоятельно рекомендуем вам использовать скрипт Powershell вместо файла .bat для чего любой сложности. 2) Если вы должны использовать .bat-файл - и если имена UNC не работают ... то простым обходным решением может быть сопоставление общего ресурса с буквой диска. – paulsm4

+0

Вы можете установить полный UNC-путь для .bat с кавычками после 'call'. И% ~ dp0 следует заменить как% ~ p0 для сетевого общего пути. 'Pushd' также не может использоваться для пути UNC. – enjoying

ответ

0

UNC default paths are turned off by default as they used to crash older programs.[10]

The Dword registry value DisableUNCCheck at HKEY_CURRENT_USER\Software\Microsoft\Command Processor [10] allows the default directory to be UNC. CD command will refuse to change but placing a UNC path in Default Directory in a shortcut to Cmd or by using the Start command. start "" /d \127.0.0.1\C$ "cmd /k" (C$ share is for administrators).

Из моего вступления в https://en.wikipedia.org/wiki/Batch_file#Setting_a_UNC_working_directory_from_a_shortcut

Смежные вопросы