unc 目录不受支持_CMD不支持将UNC路径作为当前目录

本文探讨了批处理脚本在使用UNC路径时出现的错误消息问题,尤其是在手动运行时。文中解释了批处理文件与Windows任务计划程序之间的区别,并提供了禁用错误消息的方法。此外还讨论了PowerShell作为替代方案的优势。

我们有一些批处理脚本,这些脚本似乎运行良好,但是我正在编辑其中的一个以包含一些新工作,并且当手动运行该脚本时(通过从Windows资源管理器中双击),每次在脚本中按下命令时,都会收到上述错误消息 遇到。 这些是自年点以来一直存在的推送命令,脚本运行良好。

手动运行的批处理脚本与计划程序启动的批处理脚本之间有区别吗?

手动运行时如何禁用错误消息(如果可能)?

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

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

如果批处理文件旨在从任何目录执行,则可以忽略该警告,这意味着它不需要批处理文件的目录为当前目录。良好的编码批处理文件,尤其是Windows任务计划程序正在执行的批处理文件,可以使用任何目录作为当前目录来执行。

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

另请参阅:如何禁用命令会话的通用命名约定(UNC)检查?

请注意,当启用对运行具有UNC路径作为当前目录的批处理文件的支持时,某些控制台应用程序可能由于未针对该环境进行设计而无法运行。

在您将批处理文件设计为按计划任务执行的情况下,因此考虑到我在回答批处理文件作为计划任务必须考虑的问题时列出的所有方面,您可以忽略此警告消息在使用UNC路径双击批处理文件上。

当然,您也可以为批处理文件创建一个快捷方式文件(* .lnk),以便通过此快捷方式启动批处理文件,并且默认情况下Windows任务计划程序会将快捷方式文件的属性中的"开始于"设置为%SystemRoot%\System32。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值