Сценарий не может быть выполнен из-за сетевого расположения - PullRequest
0 голосов
/ 09 ноября 2018

Я не могу выполнить этот скрипт:

@ECHO off
for /R %%G in (*INF*.txt) do (
    pushd "%%~dpG"
    FOR %%H IN (*RES*.txt) DO (
        copy "%%~G" + "%%~H" "%date% %time:~0,2%-%time:~3,2%-%time:~6,2%.csv"
        ren "%%~G" "%%~nxG.ok"
        ren "%%~H" "%%~nxH.ok"
    )
    popd
)

У меня есть следующее сообщение:

"\ W12DC-FILE \ MA-Daten \ CMMWS \ CAQ-Import-Rauheit-КОНТУР-Rondcom \ Konturograph" CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet. UNC-Pfade werden nicht unterstützt. Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt.

Это значит:

CMD.exe был запущен со следующим путем. UNC-Pahts не поддерживаются. Вместо этого был установлен каталог Windows как действительный каталог.

Если я выполняю скрипт локально, он работает нормально.

Как я могу позволить этому работать?

1 Ответ

0 голосов
/ 09 ноября 2018

Как сказал Squashman, вы можете запустить командный файл с UNC-пути, но cmd.exe не может их обработать, поэтому каталог Windows будет использоваться в качестве текущего пути.

Можно получить доступ к исходному начальному UNC-пути по %~dp0.

Вы можете использовать pushd для создания временных букв дисков для них, но %%~dpG не работает, потому что для вашего образца пути от "*INF*.txt" вы получаете
C:\W12DC-FILE\MA-Daten\CMMWS\CAQ-Import-Rauheit-Kontur-Rondcom\Konturograph

Но это даже проще, если вы замените COPY на XCOPY, поскольку он может обрабатывать также UNC-патчи

...
XCOPY "%%~dp0\%%~G"  ...
ren "%%~dp0\%%~G" "%%~dp0\%%~G.ok"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...