在回答之前,还是提醒一下,如果是用来写恶意程序的话,还是请注意下!
第一步,完善上面导出代码:
将上面的:
set RF="%~dpn0.txt"
改为:
set RF="%computername%.log"
保存文件名为“计算机名.log”
第二步,增加功能
修改:
::64位系统的32位子系统
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
set RKey=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
echo [32 bit SoftWares]>>%RF%
call :GetIt
echo.>>%RF%
)
为:
::64位系统的32位子系统
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
set RKey=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
echo [32 bit SoftWares]>>%RF%
call :GetIt
echo.>>%RF%
echo.试试>>%RF%
ipconfig /all >>%RF%
)
这样就会将ipconfig /all代码写到输出内容中部,以下是完整代码,我已经测试过,有问题请追问,没问题请采纳:
@echo off
setlocal ENABLEDELAYEDEXPANSION
pushd %~dp0
::-code-::
::By lifenjoiner
set RF="%computername%.log"
cd.>%RF%
::64位系统的32位子系统
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
set RKey=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
echo [32 bit SoftWares]>>%RF%
call :GetIt
echo.>>%RF%
echo.【IP相关信息:】>>%RF%
ipconfig /all >>%RF%
)
::主系统
set RKey=HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\uninstall
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
echo [64 bit SoftWares]>>%RF%
) else (
echo [32 bit SoftWares]>>%RF%
)
call :GetIt
set RKey=
set RF=
::-code-::
:Exit
popd
endlocal
exit /b
:GetIt
for /f "usebackq eol=! delims=" %%i in (`reg query %RKey%`) do (
set iKey=%%i
set iKey=!iKey:%RKey%\=!
echo !iKey!
for /f "usebackq eol=! delims=" %%I in (`"reg query %RKey%\!iKey! /v DisplayName 2>nul"`) do (
set iName=%%I
set iName=!iName:%RKey%\=!
set iName=!iName:DisplayName=%!
set iName=!iName:REG_SZ=%!
echo !iName!>>%RF%
set iName=
)
set iKey=
)
exit /b