标题: [系统相关] 【已解决】请问批处理如何在PE下判断C盘系统并运行一段同文件下的代码 [打印本页]
作者: gd123 时间: 2017-10-24 09:30 标题: 【已解决】请问批处理如何在PE下判断C盘系统并运行一段同文件下的代码
本帖最后由 gd123 于 2017-11-6 12:24 编辑
批处理如何在PE里面判断C盘是XP、win7、win8.1、win10系统(不是判断PE用的是什么系统)
判断到对应的系统后分别运行同文件里面的一段代码
谢谢!~
作者: 见与不见 时间: 2017-10-24 09:32
本帖最后由 见与不见 于 2017-10-24 09:39 编辑
参考,系统引导修复的工具,批处理做的,
自动修复系统引导_NTBootAutofix 2.57 戳这里
作者: gd123 时间: 2017-10-24 09:33
回复 2# 见与不见
能不能具体写一下?
作者: 见与不见 时间: 2017-10-24 09:40
回复 3# gd123
QQ联系我吧 我研究下
作者: gd123 时间: 2017-10-24 09:47
回复 4# 见与不见
麻烦通过一下?
作者: 窄口牛 时间: 2017-10-25 10:49
通过cmd.exe的按本来判断- @echo off
- for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
- if exist %%i:\windows\system32\cmd.exe wmic datafile where "name='%%i:\\windows\\system32\\cmd.exe'" get version>>a.tmp&&if exist %%i:\windows\SysWOW64\ (
- echo %%i盘是64位>>pan.tmp
- ) else (
- echo %%i盘是32位>>pan.tmp
- )
- )
- setlocal enabledelayedexpansion
- (for /f "delims=" %%a in ('type a.tmp') do (
- set "line=%%a"
- set "line=!line: =!"
- echo !line!
- ))>b.tmp
- findstr /v "Version" "b.tmp">>c.tmp
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (c.tmp) do (
- set num=%%a
- set var=!num:~0,3!
- echo.!var! >>ver.tmp
- )
- for /f %%m in (ver.tmp) do (
- if %%m==5.1 echo xp>>sys.tmp
- if %%m==6.1 echo win7sp1>>sys.tmp
- if %%m==5.2 echo win2003>>sys.tmp
- if %%m==6.0 echo win2008>>sys.tmp
- if %%m==6.2 echo win8>>sys.tmp
- if %%m==6.3 echo win8.1>>sys.tmp
- if %%m==10. echo win10>>sys.tmp
- )
- set n=0
- for /f "tokens=*" %%a in (pan.tmp) do (set /a n+=1
- set a!n!=%%a
- set x=!n!)
- set n=0
- for /f "tokens=*" %%b in (sys.tmp) do (set /a n+=1
- set b!n!=%%b)
- for /l %%c in (1,1,%x%) do (if defined b%%c echo !a%%c!!b%%c!>>系统.txt)
- del *.tmp
复制代码
通过挂载注册表来读取- @echo off
- set "v1=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
- set "v2=HKLM\My_Hive\Microsoft\Windows NT\CurrentVersion"
- set "Hive=windows\system32\config\software"
- for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- if /i "%%i:"=="%SystemDrive%" (
- for /f "tokens=1,2*" %%a in ('reg query "%v1%"') do (
- if /i "%%a"=="ProductName" (
- if exist "%%i:\windows\SysWOW64" (
- echo,分区:%%i
- echo,系统:%%c x64&echo,
- ) else (
- echo,分区:%%i
- echo,系统:%%c x86&echo,
- )
- )
- )
- ) else if exist "%%i:\%Hive%" (
- reg load "HKLM\My_Hive" "%%i:\%Hive%" >nul
- for /f "tokens=1,2*" %%a in ('reg query "%v2%"') do (
- if /i "%%a"=="ProductName" (
- if exist "%%i:\windows\SysWOW64" (
- echo,分区:%%i
- echo,系统:%%c x64&echo,
- ) else (
- echo,分区:%%i
- echo,系统:%%c x86&echo,
- )
- )
- )
- reg unload "HKLM\My_Hive" >nul
- )
- )
- pause
复制代码
作者: lifei259 时间: 2017-10-29 20:51
- @echo off
- for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
- if exist %%i:\windows\system32\cmd.exe wmic datafile where "name='%%i:\\windows\\system32\\cmd.exe'" get version>>a.tmp&&if exist %%i:\windows\SysWOW64\ (
- echo %%i盘是64位
- ) else (
- echo %%i盘是32位
- )
- )>>系统.txt
-
- for /f "skip=1 delims= " %%a in ('type,a.tmp') do set num=%%a
- set var=%num:~0,3%
- (if %var%==5.1 echo xp
- if %var%==6.1 echo win7sp1
- if %var%==5.2 echo win2003
- if %var%==6.0 echo win2008
- if %var%==6.2 echo win8
- if %var%==6.3 echo win8.1
- if %var%==10. echo win10)>>系统.txt
- del *.tmp
- start "" 系统.txt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |