我有一个脚本,可以根据文本文件中保存的列表将数据文件复制到许多用户PC。我的所有PC名称都是数字,如果我可以在文本文件中的每一行添加注释来表示它的PC,那么效率会更高。
我已经尝试过rem和::但没有成功。有什么建议吗?
批处理脚本代码
for / F“tokens = *”%% 1 in(C:\ targetPCs.txt)do(
echo将文件复制到%% 1
复制“\\ server4 \ data \ Files \ Cube \ cube.mdc”“\\ %% 1 \ Cube”
)
targetPCs.txt示例
NY-PC-421
NY-PC-718
NY-PC-111
NY-PC-601
答案 0 :(得分:0)
这在几篇帖子中得到了解答,所以你可以通过简单的搜索找到答案,无论如何你可以使用eol参数来忽略以#开头的行
批处理脚本代码
for /F "eol=# tokens=*" %%1 in (C:\targetPCs.txt) do (
echo Copying files to %%1
copy "\\server4\data\Files\Cube\cube.mdc" "\\%%1\Cube"
)
targetPCs.txt示例
#John's pc
NY-PC-421
#server 12
NY-PC-718
#etc etc
NY-PC-111
NY-PC-601
答案 1 :(得分:0)
据推测,PC名称不能包含空格。因此,您只需将所有者的名称附加到每一行,并至少有一个插入空间。然后修改你的FOR / F以保留第一个令牌。
<强> targetPCs.txt 强>
NY-PC-421 Bruce
NY-PC-718 Joanie
NY-PC-111 Stuart
NY-PC-601 Mary
批处理脚本
for /F "tokens=1" %%1 in (C:\targetPCs.txt) do (
echo Copying files to %%1
copy "\\server4\data\Files\Cube\cube.mdc" "\\%%1\Cube"
)
或者您可以解析要在消息中使用的PC名称和所有者名称:
for /F "tokens=1*" %%1 in (C:\targetPCs.txt) do (
echo Copying files to %%1 [%%2]
copy "\\server4\data\Files\Cube\cube.mdc" "\\%%1\Cube"
)