标题: [文本处理] 【已解决】求bat:删除文本中指定内容(内容是固定的)——reg转bat (拖) [打印本页]
作者: yyz219 时间: 2022-1-4 10:18 标题: 【已解决】求bat:删除文本中指定内容(内容是固定的)——reg转bat (拖)
本帖最后由 yyz219 于 2022-1-14 08:07 编辑
- 完美解决了
-
- reg转bat(拖).bat
-
- ::【生成的bat文件在桌面,保存时 “右键——粘贴”】
- @echo off
- clip.exe < "%~pd1\%~n1%~x1" %【复制reg内容 到剪切板】%
- start "" """C:\Users\Administrator\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\显示桌面.lnk""" %【转到桌面】%
- start "" "%~dp0\RegConvert.exe" %【启动bat目录里的 RegConvert.exe】%
- :A
- timeout /t 1 >nul 2>nul %【延时1秒不显示内容】%
- tasklist|findstr /i "RegConvert.exe"&&goto :B %【注:检测"RegConvert.exe"进程,有就跳到:B,没有就跳到:A】%
- goto :A
- :B
- "%~dp0\快捷键.vbs"
- echo %~n1 | clip %【复制文件名】%
- "%~dp0\粘贴复制文件名.vbs"
- :C
- timeout /t 1 >nul 2>nul %【延时1秒不显示内容】%
- tasklist|findstr /i "RegConvert.exe"&&goto :C %【注:检测"RegConvert.exe"进程,有就跳到:C,没有就往下运行】%
- :: 【解压bat目录里的 “需要删除内容.rar” 到桌面】
- set path=%path%;c:\program files\winrar
- rar x -y "%~dp0\需要删除内容.rar" "D:\桌面\Desktop\"
- cd /d "D:\桌面\Desktop\" %【进入桌面】%
- ::【下面两次删除内容: c.txt为过渡性文件,"%~n1.bat" = 原名.bat】
- findstr /v /g:需要删除内容1.txt "%~n1.bat" >"c.txt"
- findstr /v /g:需要删除内容2.txt "c.txt" >"%~n1.bat"
- del c.txt 需要删除内容1.txt 需要删除内容2.txt .bat h.bat %【删除无用~文件】%
- RD /S /Q "_" %【删除废~文件夹】%
- ::%【删除:"桌面"里,0字节bat文件】%
- Set f="D:\桌面\Desktop\"
- For /f "tokens=*" %%i in ('dir /os /b /s "%f%\*.bat"') do (If "%%~zi"=="0" (Del /q /f "%%i"))
- exit
- ::*************************************************************************
- ::【设全文为a.txt,需要删除的内容在b.txt,删除之后为c.txt】
- ::findstr /v /g:b.txt a.txt >c.txt
- ::【特别注意】
- ::findstr /v /g:需要删除内容1.txt "%~n1.bat" >"c.txt"————————右边不能有注释
- ::findstr /v /g:需要删除内容2.txt c.txt >"%~n1.bat"——————————右边不能有注释
复制代码
作者: for_flr 时间: 2022-1-4 10:56
设全文为a.txt,需要删除的为b.txt,删除之后为c.txt- findstr /v /g:b.txt a.txt >c.txt
复制代码
作者: yyz219 时间: 2022-1-4 10:57
回复 2# for_flr
我去试一试先。谢谢!
作者: yyz219 时间: 2022-1-4 11:10
回复 2# for_flr
没有成功,变成:
@Echo Off
cd %systemroot%\system32
Reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MpsSvc\Parameters\PortKeywords\DHCP" /v "Collection" /t REG_BINARY /d "" /f
Reg.exe add "HKEY_USERS\S-1-5-21-3291519012-2868546545-2290023086-500\Console" /v "WindowPosition" /t REG_DWORD /d "9830700" /f
Exit
Reg.exe query "HKU\S-1-5-19\Environment"
作者: for_flr 时间: 2022-1-4 11:41
奇怪,确实有一行没过滤掉- #@&cls&powershell -c "type '%~0'|out-string|iex"&pause&exit
- $delete=gc b.txt
- $txt=gc a.txt
- foreach ($line in $txt){
- if ($delete -notcontains $line){add-content c.txt $line}
- }
复制代码
也可以这样解决。
作者: yyz219 时间: 2022-1-4 11:45
回复 5# for_flr
能够成功,就是有一点慢,能够加快速度吗?谢谢
作者: for_flr 时间: 2022-1-4 11:58
- #@&cls&powershell -c "type '%~0'|out-string|iex"
- $delete=gc b.txt
- $txt=gc a.txt
- foreach ($line in $txt){
- if ($delete -notcontains $line){$new+="$line `r`n"}
- }
- sc c.txt $new
复制代码
大概会快那么一丝丝。
作者: qixiaobin0715 时间: 2022-1-4 12:10
回复 5# for_flr
2楼代码加个参数/l试试。
作者: yyz219 时间: 2022-1-4 12:40
回复 for_flr
2楼代码加个参数/l试试。
qixiaobin0715 发表于 2022-1-4 12:10
还有一行没有去除:
@Echo Off
Reg.exe add "HKEY_CURRENT_USER\Software\UltraSnap\UltraCapture\Auto" /v "Restore" /t REG_DWORD /d "0" /f
Exit
Pause & Exit————————这行没有去
作者: for_flr 时间: 2022-1-4 12:54
- @echo off
- for /f "delims=" %%a in (b.txt) do set "%%a=0"
- (for /f "delims=" %%a in (a.txt) do (
- if not defined %%a echo;%%a
- ))>c.txt
复制代码
快如闪电的纯批;没想到powershell这么不受待见。。。。。。。。。。
作者: yyz219 时间: 2022-1-4 13:24
快如闪电的纯批;没想到powershell这么不受待见。。。。。。。。。。
for_flr 发表于 2022-1-4 12:54
@Echo Off
Reg.exe add "HKEY_CURRENT_USER\Software\UltraSnap\UltraCapture\Auto" /v "Restore" /t REG_DWORD /d "0" /f
Exit
Cls & Echo You must have administrator rights to continue ...
Pause & Exit
作者: qixiaobin0715 时间: 2022-1-4 13:46
win10系统测试,2楼代码也没问题:- Microsoft Windows [版本 10.0.19042.1415]
- (c) Microsoft Corporation。保留所有权利。
-
- C:\Users\Administrator>cd desktop
-
- C:\Users\Administrator\Desktop>type a.txt
- @Echo Off
- Title Reg Converter v1.1 & Color 1A
- cd %systemroot%\system32
- call :IsAdmin
-
- Reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MpsSvc\Parameters\PortKeywords\DHCP" /v "Collection" /t REG_BINARY /d "" /f
- Reg.exe add "HKEY_USERS\S-1-5-21-3291519012-2868546545-2290023086-500\Console" /v "WindowPosition" /t REG_DWORD /d "9830700" /f
- Exit
-
-
- :IsAdmin
- Reg.exe query "HKU\S-1-5-19\Environment"
- If Not %ERRORLEVEL% EQU 0 (
- Cls & Echo You must have administrator rights to continue ...
- Pause & Exit
- )
- Cls
- goto:eof
- C:\Users\Administrator\Desktop>type b.txt
- @Echo Off
- Title Reg Converter v1.1 & Color 1A
- cd %systemroot%\system32
- call :IsAdmin
- :IsAdmin
- Reg.exe query "HKU\S-1-5-19\Environment"
- If Not %ERRORLEVEL% EQU 0 (
- Cls & Echo You must have administrator rights to continue ...
- Pause & Exit
- )
- Cls
- goto:eof
- C:\Users\Administrator\Desktop>type test11.bat
- @echo off
- findstr /v /g:b.txt a.txt
- pause
- C:\Users\Administrator\Desktop>test11.bat
-
- Reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MpsSvc\Parameters\PortKeywords\DHCP" /v "Collection" /t REG_BINARY /d "" /f
- Reg.exe add "HKEY_USERS\S-1-5-21-3291519012-2868546545-2290023086-500\Console" /v "WindowPosition" /t REG_DWORD /d "9830700" /f
- Exit
-
-
- 请按任意键继续. . .
复制代码
作者: yyz219 时间: 2022-1-4 14:12
回复 12# qixiaobin0715
我的系统是window7 64
作者: qixiaobin0715 时间: 2022-1-4 14:20
难道与系统也有关。
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
试试04、05条能否解决问题。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |