视窗蝙蝠文件错误



我尝试在网络共享上启动BAT文件,但出现此错误:

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

有解决方法吗?

谢谢!

是否有机会先挂载网络共享?

net use \devapplets z:
z:mybatchfile.bat

您可以让命令行处理器在批处理脚本启动时自动将 UNC 路径映射到驱动器:

pushd %~dp0
echo %CD%
popd

当 popd 命令执行或脚本结束时,驱动器将自动取消映射。

唯一的缺点是,当脚本运行时,您仍然会收到错误消息。

我遇到了同样的问题..虽然脚本运行良好,但CMD.EXE标头很烦人。

为了抑制该文本,我只需调用 CLS 作为脚本的第一行。

这将删除讨厌的CMD.EXE标题,然后显示您想要的任何内容。

希望这有帮助。

如果你想不使用驱动器映射,你可以使用Microsoft KB的注册表破解。

HKEY_CURRENT_USER
      Software
         Microsoft
            Command Processor

将值DisableUNCCheck REG_DWORD并将值设置为 0 x 1 (十六进制)。

警告:如果启用此功能并启动具有 UNC 名称当前目录的控制台,从该控制台启动应用程序,然后关闭控制台,则可能会导致从该控制台启动的应用程序出现问题。

您可以创建映射的网络驱动器。假设您使用的是 Windows XP,则过程为:

在 Windows 资源管理器窗口中,

  • 单击"Tools
  • "
  • 单击Map Network Drive
  • 选择驱动器号和文件夹(例如 X:\devapplets
  • 单击"Finish

您现在只需输入

x:
cd applets

在命令提示符下并运行批处理文件。

或者

您还可以使用 NET USE 命令映射网络驱动器。

NET USE X: \devapplets
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%: \devapplets
    )
    IF %ERRORLEVEL% EQU 0 SET completed=true

GOTO END
:END

相关内容

最新更新