2

ファイルからサーバーのリストを読み取り、ドライブをそれぞれにマップし、フォルダーを作成し、ファイルをそのフォルダーにコピーし、コマンドを実行して結果をフォルダーに出力し、読み取るスクリプトをまとめようとしています。新しいファイルの内容を確認し、新しいリストの各項目に対してコマンドを実行してから、ドライブのマップを解除します。

最初の 2 つの部分は機能していますが、作成された .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 )

初心者として、どんな助けでも大歓迎です!ありがとう!

4

2 に答える 2

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
于 2013-03-22T16:50:47.080 に答える
-1

それ以外の

for /F "tokens=*" %%D in (z:\temp\disks.txt) do (

試す

for /F "tokens=*" %%D in ('type z:\temp\disks.txt') do (
于 2013-03-22T16:50:16.953 に答える