Ошибка файла Windows Bat - PullRequest
       0

Ошибка файла Windows Bat

7 голосов
/ 10 мая 2011

Я пытаюсь запустить BAT-файл на сетевом ресурсе, но получаю эту ошибку:

'\\dev\applets'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported.  Defaulting to Windows directory.

Есть ли обходной путь для этого?

спасибо!

Ответы [ 5 ]

7 голосов
/ 10 мая 2011

Есть ли у вас возможность сначала смонтировать сетевой ресурс?

net use \\dev\applets z:
z:\mybatchfile.bat
6 голосов
/ 30 сентября 2011

Вы можете получить процессор командной строки для автоматического сопоставления вашего UNC-пути с диском при запуске пакетного сценария:

pushd %~dp0
echo %CD%
popd

При выполнении команды popd или после завершения сценария диск автоматически отключается.

Единственным недостатком является то, что вы все равно получаете сообщение об ошибке при запуске сценария.

6 голосов
/ 10 мая 2011

Если вы хотите обойтись без отображения диска, вы можете использовать взлом реестра из Microsoft KB.

5 голосов
/ 06 февраля 2013

У меня была такая же проблема .., хотя скрипт работает нормально, заголовок CMD.EXE раздражал.

Чтобы подавить этот текст, я просто вызываю CLS в качестве первой строки моего сценария.

Это удалит этот неприятный заголовок CMD.EXE и отобразит все, что вы захотите потом.

Надеюсь, это поможет.

3 голосов
/ 10 мая 2011

Вы можете создать подключенный сетевой диск. Если вы работаете в Windows XP, процесс выглядит так:

В окне проводника Windows

  • Нажмите Tools
  • Нажмите Map Network Drive
  • Выберите букву диска и папку (например, X: и \\dev\applets)
  • Нажмите Finish

Теперь вы можете просто набрать

x:
cd applets

в командной строке и запустите командный файл.

АЛЬТЕРНАТИВА

Вы также можете использовать команду NET USE для подключения сетевого диска. например,

NET USE X: \\dev\applets
x:

Вы можете проверить ERRORLEVEL, чтобы проверить, успешно ли выполнена команда. Благодаря этому блестящему фрагменту кода я могу предложить следующее решение:

@echo off
set alpha=zyxwvutsrqponmlkjihg
SET completed=false

FOR /L %%i in (1,1,23) DO CALL :MAPDRIVE

:MAPDRIVE
    set drive=%alpha:~0,1%
    set alpha=%alpha:~1,23%

    IF NOT %completed%==true (
        ECHO Attempting to mount drive as %drive%
        NET USE %drive%: \\dev\applets
    )

    IF %ERRORLEVEL% EQU 0 SET completed=true


GOTO END

:END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...