【问题标题】:Reference a Volume/Drive by Label按标签引用卷/驱动器
【发布时间】:2012-01-30 14:22:30
【问题描述】:

我正在尝试编写一个批处理文件来将文件夹复制到可移动 USB 驱动器。但是,我面临的问题是驱动器号可能会更改,因此我希望能够通过引用卷标而不是驱动器号来做到这一点。

有什么想法吗?一个小时的谷歌搜索被证明是徒劳的。 :(

【问题讨论】:

  • 看起来是 this 的副本
  • 3 个答案我不明白。加上标记为答案的那个实际上是未解决的。
  • 怎么没解决?它下面的问题实际上在帖子中得到了回答。
  • 因为提问者问了一个相当基本的问题,但从未得到回答?
  • 这并没有使问题悬而未决。该问题已被接受并且有效。在答案的最后,他给出了在批处理脚本中使用的命令来调用他发布的 vbs 文件。 dbenham 在两个位置也发布了相同的答案。 dbenham 和另一篇文章中的答案都应该适合你。

标签: batch-file command label volume xcopy


【解决方案1】:

此命令应该发现带有正确标签的驱动器并将驱动器号(带有冒号)存储在变量“usb”中

for /f %%D in ('wmic volume get DriveLetter^, Label ^| find "yourLabel"') do set usb=%%D

如果您愿意,可以将 xcopy 命令直接嵌入 DO 子句中。 %%D 包含驱动器号。

【讨论】:

  • 当我运行该命令时,我不断收到“%%D 在这个时候是意外的”。或者,如果我在批处理文件中运行它(就像将要使用的那样),并尝试通过 cd %%D 引用 %%D,例如,它只是说“系统找不到指定的路径”:(跨度>
  • @BenHooper - 如果从命令行运行,请使用 %D(单个百分比)。确保在 XCOPY 语句中使用引号 - “%usb%”或“%%D”(或“%D”)。否则路径中有空格会失败。
  • 得到它的工作与'for /f %D in ('wmic volume get DriveLetter^, Label ^| find "yourLabel"')' 然后 'xcopy "%SystemDrive%\sourcePath" "% usb%\targetPath"'?谢谢! :)
  • 'wmic' is not recognized as an internal or external command, operable program or batch file.
  • @TomášZato - Windows XP 家庭版没有 WMIC。所有其他版本的 XP 以及此后的所有 Windows 版本都具有 WMIC。为在制造商不再支持的已停产操作系统上提供除了有效的答案而投反对票有点疯狂。
【解决方案2】:

出于我的需要,我在批处理文件中使用以下内容来查找标记为“系统”的驱动器(这是我的 Windows 7 操作系统的安装位置),并将与标签“系统”关联的驱动器号放入变量名为%SystemVolume_DriveLetter%

for /f "delims=" %%l in ('WMIC Path Win32_volume where "Label='System'" Get DriveLetter /format:list') do >nul 2>&1 set "SystemVolume_%%l"

【讨论】:

    【解决方案3】:

    这适用于 Windows XP:

    for /f %%D in ('wmic LogicalDisk get Caption^, VolumeName ^| find "DRIVE_LABEL"') do set DRIVE=%%D
    

    (如果直接从命令行运行,则使用%D 而不是%%D。)

    【讨论】:

      猜你喜欢
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 2011-04-18
      • 2013-10-11
      • 2011-02-20
      相关资源
      最近更新 更多