循環運行多個我寫了一個連接到70個以上的Windows服務器(名單sis.txt),識別哪個是正確的證書,並將其複製到服務器的代碼。該證書模板的文件名是「hostname.pfx」,這是相同的爲「主機名」 + .PFX 的輸出指令的問題是,我可以在這個代碼中使用%%我只一次。目前,它根本不會運行第三行,或者至少不會將其輸出保存到名爲%filename%的變量中,因爲%% i已被分配給其他內容。我也試過%% g但沒有快樂。我不想把第三行的輸出保存到一個變量中,然後我可以在第6行使用它(xcopy命令)。由於hostname命令的輸出將是實際的主機名(server1-global),因此它會選擇正確的證書文件(server1-global.pfx)進行復制。 我知道這可能是一個屁股向後方法,但它是我能想出給該批次的語法和邏輯讓我頭疼和嘔吐幾乎是最好的。在批量
FOR /F %%i IN (sis.txt) DO(
ECHO %%i
FOR /F %%i in ('PsExec.exe \\%%i -u myuser -p mypassword cmd /c hostname') do set filename=%%i
ECHO %filename%
START /Wait NET USE S: \\%%i\c$\transfer /USER:myuser mypassword
xcopy U:\files\%filename%.pfx /e /k /Y S:\
NET USE S: /Delete /Y
)
我已經試圖改變內部%% i到%%摹 - 這是發生了什麼: 'U:\ TransferFilesToProbes >( ECHO server1-global FOR/F%q in('PsExec.exe \\ server1-global -u myuser mypass cmd/c hostname')do set filename =%q ECHO%q 開始/等待NET USE S:\\ server1-global \ c $ \ transfer/USER:myuser mypassword xcopy U:\ files \%q.pfx/e/k/YS:\ NET USE S:/ Delete/Y' 它會更改%% q到%q,而不用實際填充需要的變量 – 2014-08-29 13:06:02
你是對的。太糟糕了,來自這個列表的大多數機器似乎都不接受使用PsExec的登錄,說這個句柄是不正確的,但是您的解決方案在技術上是正確的。謝謝。 – 2014-08-29 14:37:31