通过.bat文件在网络映射目录中打开后无法保存文件

时间:2018-08-10 13:04:58

标签: batch-file

我正在使用以下代码在现有的网络映射目录中打开多个文件

\n

问题在于,因为我使用的是pushd \\networkdirectory\subfolder start file1.xlsx start file2.xls ,它映射了一个临时的UNC目录,然后当我尝试在更改后尝试在Excel中保存.xlsx文件时,它说

pushd

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

具有默认启用的命令扩展名的命令 PUSHD 会创建一个临时驱动器号,该临时驱动器号指向以UNC路径指定的网络资源,该驱动器号以驱动器号Z:开头(如果尚未使用)。通过在命令提示符窗口pushd /?中运行命令 PUSHD 输出,可以解释此行为。然后带有临时驱动器号的目录将成为当前目录。

在这种情况下,这种经常需要的行为会适得其反,因为Microsoft Excel在并行运行过程中两次使用当前目录路径加载了两个没有路径的Excel文件。因此,在使用当前目录中的两个文件两次启动Excel之后,Windows命令处理器立即继续进行批处理文件处理。尽管Excel仍在打开两个文件的情况下运行,但通过删除临时驱动器号Z:恢复了执行 PUSHD 之前的初始当前目录。这将导致在以后保存Excel文件时出现错误消息。

解决方案是省略命令 PUSHD ,因为Excel绝对没有问题可以打开在命令行中使用UNC路径指定的文件。

start "" "\\networkdirectory\subfolder\file1.xlsx"
start "" "\\networkdirectory\subfolder\file2.xls"

第一个双引号参数字符串由命令 START 解释为命令处理窗口的可选标题。因此,必须明确指定标题字符串。在这种情况下,由于Excel是Windows GUI应用程序,因此用""指定了空的标题字符串,因此根本没有打开带有附加控制台窗口的Windows命令进程。在命令提示符窗口start /?中运行,以获取有关命令 START 的帮助。