2011-05-10 101 views
7

我嘗試推出網絡共享一個BAT文件,但我得到這個錯誤:窗口bat文件錯誤

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

有沒有辦法解決這個?

謝謝!

+0

令人難以置信的是,這仍然是2012年的一個問題 – 2012-08-22 01:32:22

回答

7

你有機會先掛載網絡共享?

net use \\dev\applets z: 
z:\mybatchfile.bat 
+0

...或者如果你想使用鼠標進行映射,請遵循@ RB的建議;-) – 2011-05-10 12:21:19

+1

感謝一個很好的解決方案!如果驅動器Z已在使用中怎麼辦?我如何捕獲錯誤並改用另一個字母?這個批處理文件應該可以被許多用戶使用,這些用戶可能已經有了這個驅動器號。 – clamp 2011-05-10 12:34:25

3

您可以創建一個映射網絡驅動器。假設你是在Windows XP中,其過程是:

在Windows資源管理器窗口,

  • 點擊Tools
  • 點擊Map Network Drive
  • 選擇一個驅動器號和文件夾(如X:\\dev\applets
  • 點擊Finish

您現在只需鍵入

x: 
cd applets 

在您的命令提示符下運行您的批處理文件。

或者

您還可以使用NET USE命令映射網絡驅動器。例如

NET USE X: \\dev\applets 
x: 

您可以測試ERRORLEVEL以查看命令是否成功完成。由於代碼this輝煌位,我可以建議此解決方案:

@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 
+0

假設他正在裝載的共享名是'\\ dev \ applets',x:將直接映射到'shares',所以你不需要'cd'進去。 – 2011-05-10 12:20:43

+0

好的結果 - 我剛從我的其他代碼塊複製並粘貼。 – 2011-05-10 12:21:35

+0

我不能在這裏嘗試它,但我很確定「X:」需要跟在'net use'之後的\\ dev \ applets ... – 2011-05-10 12:25:17

6

如果您不想使用驅動器映射功能,則可以使用Microsoft KB中的registry hack

+0

非常適合我在OS X上的Parallels中的\\ psf \驅動器中運行批處理腳本。 – TechSavvySam 2012-09-25 11:31:39

+0

鏈接已死亡,因此如果您可以在此答案上再次提供詳細信息,那將非常棒。 – JamesD 2018-03-08 17:09:20

5

你可以在命令行處理器自動將您的UNC路徑映射到一個驅動批處理腳本啓動時:

pushd %~dp0 
echo %CD% 
popd 

當popd命令執行,或當腳本結束時,驅動器將自動取消映射。

唯一的缺點是,腳本運行時仍然會收到錯誤消息。

5

我有同樣的問題..而腳本運行得很好,CMD.EXE頭很煩人。

爲了抑制該文本,我簡單地將CLS作爲腳本的第一行。

這將刪除那個令人討厭的CMD.EXE頭,並顯示任何你想要的事情。

希望這會有所幫助。