我需要幫助才能通過批處理文件實現以下功能。這裏就是我想要做的,將可執行文件(x86或x64)複製到基於Windows系統類型(x86或x64)的遠程計算機上
運行PSEXEC執行「系統的系統」,找到字符串「系統類型」
確定「系統類型」(無論是「X86型PC」或「基於X64的PC」)從PsExec輸出。
在我的電腦上本地映射驅動器,並根據系統類型複製文件。
這是我的腳本!
@echo off
set logs="C:\logs.txt"
for /f %%i in (C:\pro_arch.txt) do (
echo %%i >> %logs%
PsExec.exe \\%%i -u domain\username -p "password" systeminfo | findstr /c:"System Type" >> "%Logs%"
if "%%i"=="System Type: X86-based PC" (
net use m: \\%%i\C$ /user:domain\username "password"
xcopy "C:\batch_file\x86.txt" \\%%i\C$\_support\setup\ /y
net use m: /delete
) else (
net use m: \\%%i\C$ /user:domain\username "password"
xcopy "C:\batch_file\x64.txt" \\%%i\C$\_support\setup\ /y
net use m: /delete
)
)
的腳本運行良好,直到這部分
@echo off
set logs="C:\logs.txt"
for /f %%i in (C:\pro_arch.txt) do (
echo %%i >> %logs%
PsExec.exe \\%%i -u domain\username -p "password" systeminfo | findstr /c:"System Type" >> "%Logs%"
和輸出下面的基礎上,系統類型:
系統類型:基於X86 PC 或 系統類型:X64- based PC
執行IF語句時出現問題。它只將x64.txt複製到遠程機器,而不考慮遠程機器的系統類型。使用PSEXEC輸出也不起作用
命令替換,
for /f "tokens=*" %%a in '(PsExec.exe \\IPaddress -u domain\username -p "password" systeminfo | findstr /c:"System Type")' do set myvar=%%a
它說
| was unexpected at this time
有人能幫忙嗎?
我運行上面的腳本,但它說,系統找不到文件\\ ip_address。我不明白\\ %% i有什麼問題 – joso
@ user1712002 - DO子句缺少前導單引號。現在全部修好了。 – dbenham
是的,我找到了。還有一個更正是%Logs%的小寫字母l。非常感謝你的幫助。有用! – joso