【发布时间】:2018-02-14 00:59:30
【问题描述】:
我正在尝试编写一个 Windows 批处理脚本,该脚本在系统启动时在多个 Windows 10 客户端 PC 上本地运行。该脚本需要根据标签 (PHILLIPS) 选择特定的驱动器,然后将一些文件复制到其中。我尝试遍历所有可能的驱动器号 C、D、E 等,并将卷名与字符串“PHILLIPS”进行比较,但由于某种原因它不起作用。我还尝试了不同的函数,例如 :GetLabel 来获取卷的名称。
这是我的尝试:
@echo off & setlocal enableextensions
for %d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
set target_=%d:
::
call :vol %target_% label_
if /i "%label_%" == "%PHILIPS%" (
echo %%d%
xcopy \\SATVIE017\Softlib\philips\dpm8000-dpm8200-dpm8500_fwf_2.02.dpm target_\
endlocal & goto :EOF
)
)
这是我第一次编写批处理脚本,所以我不知道要寻找什么来解决这个问题。任何建议都会非常受欢迎,因为我不想在 100 多个客户端上手动部署文件。
【问题讨论】:
-
您的意思是驱动器的实际卷标?
-
我猜这里用 DIR 报告的卷标...我的没有 ;) C:\Users\klindberg\Source>dir 驱动器 C 中的卷没有标签。卷序列号为 0E6E-EE7B
-
for %d在批处理文件中您必须使用%%d -
我的意思是驱动器的名称,像这样:s13.postimg.org/3sypjn2o7/Unbenannt.png 字母是 E,名称是 PHILLIPS。我的字母因客户端而异,可能已分配给另一台设备,但名称始终为 PHILIPS。
-
您得到了几个有效的答案。 It's time to accept 最有帮助的将问题标记为“已解决”。
标签: windows batch-file