Batch file 按guid定位的批复制文件夹

Batch file 按guid定位的批复制文件夹,batch-file,cmd,xcopy,robocopy,unc,Batch File,Cmd,Xcopy,Robocopy,Unc,在批处理文件中,我是否可以复制由\\?\Volume{GUID}等常量路径定位的文件夹 将目录及其内容从本地可移动驱动器(例如usb外部驱动器)复制(复制、xcopy或robocopy)到同一驱动器上的另一个位置时,我希望使用像\\?\Volume{GUID}这样的唯一和恒定绝对路径,以避免使用随时间变化的驱动器号。 要操作副本,批处理文件要放在可移动设备上,但如果文件被移动或放在其他地方,我宁愿确保它在良好的驱动器上运行 到目前为止,我已经尝试: 复制可以处理\\?\Volume{GUID}

在批处理文件中,我是否可以复制由\\?\Volume{GUID}等常量路径定位的文件夹

将目录及其内容从本地可移动驱动器(例如usb外部驱动器)复制(复制、xcopy或robocopy)到同一驱动器上的另一个位置时,我希望使用像\\?\Volume{GUID}这样的唯一和恒定绝对路径,以避免使用随时间变化的驱动器号。 要操作副本,批处理文件要放在可移动设备上,但如果文件被移动或放在其他地方,我宁愿确保它在良好的驱动器上运行

到目前为止,我已经尝试:

  • 复制可以处理\\?\Volume{GUID}路径来复制文件,但不能复制 文件夹
  • XCOPY返回“无效驱动器”错误
  • ROBOCOPY提供“未找到网络路径,请等待30秒…”
  • 对于上面的每个命令:带有\\?\UNC\Volume{guid}和尾随“\”的语法变体
是我做错了什么,还是这不是我要做的

有没有其他方法可以使用不变位置


理想情况下,它应该包含尽可能少的调整。通过调整,我的意思是:给驱动器贴标签或给它一个固定的字母,等等。

看看
pushd/?
popd/?

pushd \\?\UNC\Volume{guid}
将短时间将UNC路径映射为网络驱动器,并根据字母表末尾计算机的下一个可用驱动器将目录更改为该路径

例如,您已经获得了
Z:\
Y:\
,它将把路径映射到
X:\
,并将当前目录更改为
X:\

从那以后,您可以使用
copy filefromServer.foo C:\localfile.bar

其他命令,如
XCopy
也可以使用映射的驱动器


要取消映射驱动器,请使用
popd

任何复制功能都不能使用unc路径。 因此,唯一的解决方法是通过wmic命令检索驱动器盘符。 代码如下:

for/F“usebackq令牌=1,2 delims==”%%G in(`
wmic卷,其中“DeviceID='%\u卷ID:\=\\%'”获取驱动器号/值
`)不设置%%G=%%H


在win 7下,_volID是包含相关卷的unc路径的变量

,pushd\\?\unc\volume{guid}会给出一个“无效路径”错误。而pushd\\?\Volume{guid}给出了一个“路径找不到”错误(错误消息被翻译)。但是无论如何,copy命令都可以使用2个目录,pushd不会设置目标目录。只是为了记录。那些是网络存储吗?我不熟悉GUID的用法,上面的答案是处理以“\\”开头的路径的常用方法。你介意再解释一下你问题中的概念吗?