批处理脚本不提供命令

时间:2013-03-22 16:35:57

标签: for-loop batch-file

我正在尝试拼凑一个脚本,该脚本将从文件中读取服务器列表,将驱动器映射到每个服务器,创建文件夹,将文件复制到该文件夹​​,运行命令并将结果输出到文件夹,读取新文件的内容,对新列表中的每个项目执行命令,然后取消映射驱动器。

我有前两部分工作,但是当我尝试从创建的.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)

作为新手,任何帮助将不胜感激! 谢谢!

2 个答案:

答案 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 (