我需要帮助来通过批处理文件实现以下目标。这就是我想要做的,
运行 psexec 执行“systeminfo”,找到字符串“System Type”
从 PsExec 输出中确定“系统类型”(是“基于 X86 的 PC”还是“基于 X64 的 PC”)。
在我的 PC 上本地映射驱动器并根据系统类型复制文件。
这是我的脚本!
@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 的 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
有人可以帮忙吗?