|
|
楼主 |
发表于 2021-12-23 12:55:42
|
显示全部楼层
本帖最后由 yyz219 于 2021-12-26 10:11 编辑
完美解决了
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
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'))"
)
::【将UTF-8码 转为 UNICODE码】
cd /d "%~dp1"
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
@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 |
|