Скрипт не может быть выполнен из-за сетевого расположения

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

@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-Kontur-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 was started with following Path. UNC-Pahts are not supported. Instead of that was the Windows Directory as actual Directory set.

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

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

Как вы выполняете сценарий? Похоже, вы пытаетесь вызвать cmd.exe из пути UNC ... возможно, из результата содержимого INF.txt. Покажите образцы содержимого INF.txt и RES.txt, пожалуйста.

Gerhard 09.11.2018 09:35

Я предлагаю вам изменить оба экземпляра %%~G на %%~nxG, поскольку вы уже находитесь в каталоге, поэтому не нужно использовать полный путь!

Compo 09.11.2018 12:02

Что вас смущает в сообщении об ошибке?

Squashman 09.11.2018 14:31
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
98
1

Ответы 1

Как сказал 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"

Другие вопросы по теме