[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】求bat:删除文本中指定内容(内容是固定的)——reg转bat (拖)

本帖最后由 yyz219 于 2022-1-14 08:07 编辑
  1. 完美解决了
  2. reg转bat(拖).bat
  3. ::【生成的bat文件在桌面,保存时 “右键——粘贴”】
  4. @echo off
  5. clip.exe < "%~pd1\%~n1%~x1"                    %【复制reg内容 到剪切板】%
  6. start "" """C:\Users\Administrator\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\显示桌面.lnk"""  %【转到桌面】%
  7. start "" "%~dp0\RegConvert.exe"                %【启动bat目录里的 RegConvert.exe】%
  8. :A
  9. timeout  /t  1    >nul 2>nul                   %【延时1秒不显示内容】%
  10. tasklist|findstr /i "RegConvert.exe"&&goto :B  %【注:检测"RegConvert.exe"进程,有就跳到:B,没有就跳到:A】%
  11. goto :A
  12. :B
  13. "%~dp0\快捷键.vbs"
  14. echo %~n1 | clip                               %【复制文件名】%
  15. "%~dp0\粘贴复制文件名.vbs"
  16. :C
  17. timeout  /t  1    >nul 2>nul                   %【延时1秒不显示内容】%
  18. tasklist|findstr /i "RegConvert.exe"&&goto :C  %【注:检测"RegConvert.exe"进程,有就跳到:C,没有就往下运行】%
  19. :: 【解压bat目录里的 “需要删除内容.rar” 到桌面】
  20. set path=%path%;c:\program files\winrar
  21. rar  x -y  "%~dp0\需要删除内容.rar"  "D:\桌面\Desktop\"
  22. cd /d "D:\桌面\Desktop\"                                    %【进入桌面】%
  23. ::【下面两次删除内容: c.txt为过渡性文件,"%~n1.bat" = 原名.bat】
  24. findstr /v /g:需要删除内容1.txt "%~n1.bat" >"c.txt"
  25. findstr /v /g:需要删除内容2.txt "c.txt" >"%~n1.bat"
  26. del  c.txt  需要删除内容1.txt  需要删除内容2.txt .bat h.bat   %【删除无用~文件】%
  27. RD /S /Q      "_"                                           %【删除废~文件夹】%
  28. ::%【删除:"桌面"里,0字节bat文件】%
  29. Set f="D:\桌面\Desktop\"
  30. For /f "tokens=*" %%i in ('dir /os /b /s "%f%\*.bat"') do (If "%%~zi"=="0" (Del /q /f "%%i"))
  31. exit
  32. ::*************************************************************************
  33. ::【设全文为a.txt,需要删除的内容在b.txt,删除之后为c.txt】
  34. ::findstr /v /g:b.txt a.txt >c.txt
  35. ::【特别注意】
  36. ::findstr /v /g:需要删除内容1.txt "%~n1.bat" >"c.txt"————————右边不能有注释
  37. ::findstr /v /g:需要删除内容2.txt c.txt >"%~n1.bat"——————————右边不能有注释
复制代码
我是小白,希望老师多多帮助

设全文为a.txt,需要删除的为b.txt,删除之后为c.txt
  1. findstr /v /g:b.txt a.txt >c.txt
复制代码
1

评分人数

TOP

回复 2# for_flr

我去试一试先。谢谢!
我是小白,希望老师多多帮助

TOP

回复 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"
我是小白,希望老师多多帮助

TOP

奇怪,确实有一行没过滤掉
  1. #@&cls&powershell -c "type '%~0'|out-string|iex"&pause&exit
  2. $delete=gc b.txt
  3. $txt=gc a.txt
  4. foreach ($line in $txt){
  5.     if ($delete -notcontains $line){add-content c.txt $line}
  6. }
复制代码
也可以这样解决。
1

评分人数

    • yyz219: 能够成功,就是有一点慢,能够加快速度吗? ...技术 + 1

TOP

回复 5# for_flr


   能够成功,就是有一点慢,能够加快速度吗?谢谢
我是小白,希望老师多多帮助

TOP

  1. #@&cls&powershell -c "type '%~0'|out-string|iex"
  2. $delete=gc b.txt
  3. $txt=gc a.txt
  4. foreach ($line in $txt){
  5.     if ($delete -notcontains $line){$new+="$line `r`n"}
  6. }
  7. sc c.txt $new
复制代码
大概会快那么一丝丝。
1

评分人数

TOP

回复 5# for_flr
2楼代码加个参数/l试试。
1

评分人数

    • for_flr: 加L是可行的。技术 + 1

TOP

回复  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————————这行没有去
我是小白,希望老师多多帮助

TOP

  1. @echo off
  2. for /f "delims=" %%a in (b.txt) do set "%%a=0"
  3. (for /f "delims=" %%a in (a.txt) do (
  4.     if not defined %%a echo;%%a
  5. ))>c.txt
复制代码
快如闪电的纯批;没想到powershell这么不受待见。。。。。。。。。。

TOP

快如闪电的纯批;没想到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
我是小白,希望老师多多帮助

TOP

win10系统测试,2楼代码也没问题:
  1. Microsoft Windows [版本 10.0.19042.1415]
  2. (c) Microsoft Corporation。保留所有权利。
  3. C:\Users\Administrator>cd desktop
  4. C:\Users\Administrator\Desktop>type a.txt
  5. @Echo Off
  6. Title Reg Converter v1.1 & Color 1A
  7. cd %systemroot%\system32
  8. call :IsAdmin
  9. Reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MpsSvc\Parameters\PortKeywords\DHCP" /v "Collection" /t REG_BINARY /d "" /f
  10. Reg.exe add "HKEY_USERS\S-1-5-21-3291519012-2868546545-2290023086-500\Console" /v "WindowPosition" /t REG_DWORD /d "9830700" /f
  11. Exit
  12. :IsAdmin
  13. Reg.exe query "HKU\S-1-5-19\Environment"
  14. If Not %ERRORLEVEL% EQU 0 (
  15. Cls & Echo You must have administrator rights to continue ...
  16. Pause & Exit
  17. )
  18. Cls
  19. goto:eof
  20. C:\Users\Administrator\Desktop>type b.txt
  21. @Echo Off
  22. Title Reg Converter v1.1 & Color 1A
  23. cd %systemroot%\system32
  24. call :IsAdmin
  25. :IsAdmin
  26. Reg.exe query "HKU\S-1-5-19\Environment"
  27. If Not %ERRORLEVEL% EQU 0 (
  28. Cls & Echo You must have administrator rights to continue ...
  29. Pause & Exit
  30. )
  31. Cls
  32. goto:eof
  33. C:\Users\Administrator\Desktop>type test11.bat
  34. @echo off
  35. findstr /v /g:b.txt a.txt
  36. pause
  37. C:\Users\Administrator\Desktop>test11.bat
  38. Reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MpsSvc\Parameters\PortKeywords\DHCP" /v "Collection" /t REG_BINARY /d "" /f
  39. Reg.exe add "HKEY_USERS\S-1-5-21-3291519012-2868546545-2290023086-500\Console" /v "WindowPosition" /t REG_DWORD /d "9830700" /f
  40. Exit
  41. 请按任意键继续. . .
复制代码

TOP

回复 12# qixiaobin0715


    我的系统是window7  64
我是小白,希望老师多多帮助

TOP

难道与系统也有关。
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
试试04、05条能否解决问题。

TOP

返回列表