CMD不支持将UNC路径作为当前目录

CMD不支持将UNC路径作为当前目录,cmd,path,unc,Cmd,Path,Unc,我们的批处理脚本似乎运行良好,但我正在编辑其中一个脚本以包含一些新的工作,当手动运行脚本(通过从windows资源管理器双击)时,每次遇到脚本中的pushd命令时,我都会收到上述错误消息。这些是自dot年以来一直存在的pushd命令,脚本运行良好。 手动运行的批处理脚本与由调度程序启动的批处理脚本之间是否存在差异? 手动运行时如何禁用错误消息(如果可能)?Windows文件资源管理器Explorer.exe启动cmd.exe,隐式使用选项/C在完成批处理文件执行后关闭命令进程,并在双击批处理文件

我们的批处理脚本似乎运行良好,但我正在编辑其中一个脚本以包含一些新的工作,当手动运行脚本(通过从windows资源管理器双击)时,每次遇到脚本中的pushd命令时,我都会收到上述错误消息。这些是自dot年以来一直存在的pushd命令,脚本运行良好。 手动运行的批处理脚本与由调度程序启动的批处理脚本之间是否存在差异?
手动运行时如何禁用错误消息(如果可能)?

Windows文件资源管理器
Explorer.exe
启动
cmd.exe
,隐式使用选项
/C
在完成批处理文件执行后关闭命令进程,并在双击批处理文件时将批处理文件目录设置为当前目录

如果双击的批处理文件位于网络共享上,并且使用UNC路径而不是将网络共享映射到驱动器号并使用网络驱动器,
cmd.exe
通知用户不支持将UNC路径设置为当前目录,并将
%SystemRoot%
(Windows目录)设置为当前目录

如果批处理文件设计用于从任何目录执行,则可以忽略该警告,这意味着它不要求批处理文件的目录为当前目录。好的编码批处理文件,特别是那些由Windows任务调度器执行的文件,可以在任何目录为当前目录的情况下执行

另见:

可以使用注册表值配置Windows命令处理器
cmd.exe
通过在命令提示符窗口中运行来接受当前目录的UNC路径:

%SystemRoot%\System32\reg.exe ADD "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v DisableUNCCheck /t REG_DWORD /d 1 /f
请注意,当您启用对以UNC路径作为当前目录运行批处理文件的支持时,某些控制台应用程序可能会因为不适合该环境而无法运行

在将批处理文件作为计划任务运行时执行命令之前,任务计划程序将
%SystemRoot%\System32
(Windows系统目录)设置为当前目录,但在计划任务的属性中将特定目录路径显式设置为start in目录

如果批处理文件设计为按计划任务执行,并因此将我在回答问题时列出的所有方面考虑在内,则可以在使用UNC路径双击批处理文件时忽略此警告消息


当然,您也可以通过批处理文件创建一个快捷文件(*.nk),通过这个快捷方式来启动批处理文件,在<0>强>中,快捷文件的属性在默认情况下被设置为<代码> %StutoRoS%%Stult32 < /Case>缺省的Windows任务调度器。

< P>我有一些建议-考虑在PuthS壳中重写您的脚本。PowerShell允许当前工作目录位于网络上。PowerShell作为一个整体比CMD更通用、更强大。它也是跨平台的。考虑切换。

使用POWER Stand登录的问题是,PS1总是用记事本打开,但有解决办法。