在Windows批处理中处理网上邻居中的文件

在Windows批处理中处理网上邻居中的文件

use UNC files in command line

在 Windows 批处理中,默认不能处理网上邻居中的文件。本文介绍解决办法。

问题

当使用 cd 命令进入一个网上邻居目录的时候,会出现下面的错误提示:

1C:\Users\zrong>cd \\192.168.18.18\project
2'\\192.168.18.18\project'
3CMD does not support UNC paths as current directories.

那么,如何处理?

使用 pushd / popd

使用 pushd 命令,可以自动将网上邻居中的共享目录映射为一个驱动器。

例如,下面的命令映射了一个 z: 驱动器,然后我们就可以像操作本地硬盘一样操作该驱动器。

1C:\Users\zrong>pushd \\192.168.18.18\project
2Z:\>

pushd 只能将共享的目录映射为驱动器的根目录,如果映射的是一个子目录,则会自动进入该驱动器的子目录。

例如:

1C:\Users\zrong>pushd \\192.168.18.18\project\lulala
2
3Z:\lulala>

使用完毕之后,使用 popd 命令取消映射。

1Z:\>popd
2
3C:\Users\zrong>

注意, pushd / popd 是可以递归使用的,在 pushd 映射成功的驱动器中,可以继续使用 pushd 映射新的驱动器。

使用 net use

使用强大的 net 命令集中的 use 命令,也可以映射网络驱动器。

1C:\Users\zrong>net use z: \\192.168.18.18\project
2The command completed successfully.
3
4C:\Users\zrong>z:
5Z:\>

pushd 不同的是,net use 可以直接将一个共享目录的子目录映射成为驱动器的根目录。例如:

1C:\Users\zrong>net use z: \\192.168.18.18\project\lulala
2The command completed successfully.

此时, z: 驱动器的根目录就是 \\192.168.18.18\project\lulala

删除映射:

1C:\Users\zrong>net use z: /del /yes
2z: was deleted successfully.

参考文章

Simplify UNC usage in command line batch files