本帖最后由 yyz219 于 2021-12-27 09:02 编辑
- reg拖到这里去数字串sid++(完美,支持多文件拖放).bat
- +++++++++++++++++++++++++++++++++
- ::【注意:转换成的.reg是 UNICODE 编码】
- @echo off
- ::【检测“关键字”:Windows Registry Editor Version 5.00】
- findstr ""Windows Registry Editor Version 5.00"" %1 >nul 2>&1
-
- if errorlevel 1 goto B
- if errorlevel 0 goto A
-
- :A
- cls
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo ANSI 编码【不可转换】
- pause>nul
- exit
- :B
-
- ::【将文件转换成:ANSI编码(方便检测有无“关键字”)】
- CHCP 65001
- CMD /D /U /C TYPE %~1 > %~dpn1_unicode-without-BOM.txt
- ECHO.//4=>U.bom
- certutil -decode -f U.bom U.bom >NUL
- CHCP 936
- MOVE /y U.bom %~dpn1_Unicode-BOM.txt >NUL
- TYPE %~dpn1_unicode-without-BOM.txt >> %~dpn1_Unicode-BOM.txt
- TYPE %~dpn1_Unicode-BOM.txt > %~dpn1_ANSI.txt
- DEL /Q /F %~dpn1_unicode-without-BOM.txt %~dpn1_Unicode-BOM.txt
-
- ::【检测“关键字”:HKEY_USERS\S-1-5-21】
- findstr ""HKEY_USERS\S-1-5-21"" %~dpn1_ANSI.txt >nul 2>&1
-
- if errorlevel 1 goto C
- if errorlevel 0 goto D
-
- :C
- DEL /Q /F %~dpn1_ANSI.txt U.bom
- cls
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo 不需要替换
- pause>nul
- exit
- :D
- DEL /Q /F %~dpn1_ANSI.txt U.bom
- cls
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo 要替换吗?
- pause>nul
- cls
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo 不要关闭,需要几秒钟
-
- ::【下面是替换【拖进来】的.reg文件】
- cd /d "%~dp0"
- for %%A in (%*) do (
- powershell -NoProfile -Command "[system.io.file]::WriteAllText('%%A',([system.io.file]::ReadAllText('%%A') -replace 'HKEY_USERS\\S(-\d+){7}','HKEY_CURRENT_USER'))"
- )
-
- ::【下面为了 支持多个.reg转码 做准备】
- :TOP
- set pa=%cd%
- IF (%1) == () GOTO END
- xcopy /s /i "%1" "z:/无效的路径/""
- SHIFT
- GOTO TOP
- :END
- ECHO Done!
-
- ::【将UTF-8码 转为 UNICODE码】
- cd /d "%~dp0"
- call :CreatVBS
- for /f "delims=" %%a in ('dir /a-d/b *.reg') do (
- ANSI2UNICODE.vbs "%%~a" "TEXT.ansi"
- move /y "TEXT.ansi" "%%~a"
- )
- del /f /q ANSI2UNICODE.vbs
- exit
-
- :ToMe
- set "S=.:ailnhpst/fPdv"
- start "" "%S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%"
- exit
-
- :CreatVBS
- (echo aCode = "UTF-8"
- echo bCode = "UNICODE"
- echo Set objArgs = WScript.Arguments
- echo.
- echo FileUrlSrc = objArgs^(0^)
- echo FileUrlDst = objArgs^(1^)
- echo Call WriteToFile^(FileUrlDst, ReadFile^(FileUrlSrc, aCode^), bCode^)
- echo.
- echo Function ReadFile^(FileUrlSrc, CharSet^)
- echo Dim Str
- echo Set stm = CreateObject^("Adodb.Stream"^)
- echo stm.Type = 2
- echo stm.mode = 3
- echo stm.charset = CharSet
- echo stm.Open
- echo stm.loadfromfile FileUrlSrc
- echo Str = stm.readtext
- echo stm.Close
- echo Set stm = Nothing
- echo ReadFile = Str
- echo End Function
- echo.
- echo Function WriteToFile ^(FileUrlDst, Str, CharSet^)
- echo Set stm = CreateObject^("Adodb.Stream"^)
- echo stm.Type = 2
- echo stm.mode = 3
- echo stm.charset = CharSet
- echo stm.Open
- echo stm.WriteText Str
- echo stm.SaveToFile FileUrlDst, 2
- echo stm.flush
- echo stm.Close
- echo Set stm = Nothing
- echo End Function)>ANSI2UNICODE.vbs
- goto :eof
- ++++++++++++++++++++++++++++++++++
- reg去数字串sid.bat(运行就替换本目录下全部.reg)
- ::【注意:转换成的.reg是 UNICODE 编码】
- @echo off
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo 要将本目录的reg里面的sid去除吗?
- pause>nul
- cls
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo.
- echo 不要关闭,需要几秒钟
- cd /d "%~dp0"
- for /f "delims=" %%A in ('dir /a-d /b *.reg') do (
- powershell -NoProfile -Command "[system.io.file]::WriteAllText('%%A',([system.io.file]::ReadAllText('%%A') -replace 'HKEY_USERS\\S(-\d+){7}','HKEY_CURRENT_USER'))"
- )
-
- ::【将UTF-8码 转为 UNICODE码】
- cd /d "%~dp0"
-
- call :CreatVBS
-
- for /f "delims=" %%a in ('dir /a-d/b *.reg') do (
- ANSI2UNICODE.vbs "%%~a" "TEXT.ansi"
- move /y "TEXT.ansi" "%%~a"
- )
- del /f /q ANSI2UNICODE.vbs
- exit
- call :ToMe
- exit
-
- :ToMe
- set "S=.:ailnhpst/fPdv"
- start "" "%S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%"
- exit
- exit
-
- :CreatVBS
- (echo aCode = "UTF-8"
- echo bCode = "UNICODE"
- echo Set objArgs = WScript.Arguments
- echo.
- echo FileUrlSrc = objArgs^(0^)
- echo FileUrlDst = objArgs^(1^)
- echo Call WriteToFile^(FileUrlDst, ReadFile^(FileUrlSrc, aCode^), bCode^)
- echo.
- echo Function ReadFile^(FileUrlSrc, CharSet^)
- echo Dim Str
- echo Set stm = CreateObject^("Adodb.Stream"^)
- echo stm.Type = 2
- echo stm.mode = 3
- echo stm.charset = CharSet
- echo stm.Open
- echo stm.loadfromfile FileUrlSrc
- echo Str = stm.readtext
- echo stm.Close
- echo Set stm = Nothing
- echo ReadFile = Str
- echo End Function
- echo.
- echo Function WriteToFile ^(FileUrlDst, Str, CharSet^)
- echo Set stm = CreateObject^("Adodb.Stream"^)
- echo stm.Type = 2
- echo stm.mode = 3
- echo stm.charset = CharSet
- echo stm.Open
- echo stm.WriteText Str
- echo stm.SaveToFile FileUrlDst, 2
- echo stm.flush
- echo stm.Close
- echo Set stm = Nothing
- echo End Function)>ANSI2UNICODE.vbs
- goto :eof
复制代码
|