我正在尝试拼凑一个脚本,该脚本将从文件中读取服务器列表,将驱动器映射到每个服务器,创建文件夹,将文件复制到该文件夹,运行命令并将结果输出到文件夹,读取新文件的内容,对新列表中的每个项目执行命令,然后取消映射驱动器。
我有前两部分工作,但是当我尝试从创建的.txt文件中读取项目时,我无法在命令中填充名称。这很难看,但这里是脚本和结果(我在本地c:\ temp文件夹中工作到本地映射为z:\ temp的远程临时文件夹):
- - - - - - - - 代码
for /F "tokens=*" %%S in (servers.txt) do (
net use Z: \\%%S\c$ /USER:domain\user PASSWORD
z:
md temp
c:
cd\
cd temp
copy sdelete.exe z:\temp
wmic /NODE:"%%S" logicaldisk get name > z:\temp\disks.txt
)
for /F "tokens=*" %%D in (z:\temp\disks.txt) do (
psexec.exe \\%%S c:\temp\sdelete -z %%D
)
c:
cd temp
net use z: /delete /y
-----结束代码-----
文件被创建,但最后一部分的结果被回显为: C:\ Temp> for / F“tokens = *”%D in(z:\ temp \ disks.txt)do(psexec.exe \%S c:\ temp \ sdelete -z%D)
作为新手,任何帮助将不胜感激! 谢谢!
答案 0 :(得分:0)
试试这个:
for /F "tokens=*" %%S in (servers.txt) do (
net use Z: \\%%S\c$ /USER:domain\user PASSWORD
z:
md temp
c:
cd\
cd temp
copy sdelete.exe z:\temp
wmic /NODE:"%%S" logicaldisk get name > z:\temp\disks.txt
for /F "tokens=*" %%D in (z:\temp\disks.txt) do (
psexec.exe \\%%S c:\temp\sdelete -z %%D
)
)
c:
cd temp
net use z: /delete /y
答案 1 :(得分:-1)
而不是
for /F "tokens=*" %%D in (z:\temp\disks.txt) do (
试
for /F "tokens=*" %%D in ('type z:\temp\disks.txt') do (