找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20496|回复: 11

[文本处理] [已解决]如何要bat来删除文件中的特定字符串,求解

[复制链接]
发表于 2023-5-20 13:16:24 | 显示全部楼层 |阅读模式
本帖最后由 BingjianREMIX 于 2023-5-23 20:38 编辑

在一个日志文件中,找到“text”并删除
要求:其它(类似于text1)保留,就是:
123.log中:text,text1,text2.
处理后123.log中:text1,text2.

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-5-20 14:21:14 | 显示全部楼层
set fso=createobject("scripting.filesystemobject")
log=fso.opentextfile("xxx.log",1).readall()
set re=new regexp
re.pattern="(\b)text(\b)"
re.global=true
fso.opentextfile("xxx.log",2).write re.replace(log,"$1$2")
 楼主| 发表于 2023-5-20 15:55:36 | 显示全部楼层
set fso=createobject("scripting.filesystemobject")
log=fso.opentextfile("xxx.log",1).readall()
set ...
jyswjjgdwtdtj 发表于 2023-5-20 14:21
但是咋样用呢
发表于 2023-5-20 16:10:40 | 显示全部楼层
回复 3# BingjianREMIX
这个应该是vbs,要保存为.vbs文件
 楼主| 发表于 2023-5-20 17:14:34 | 显示全部楼层
回复 4# LTSC1809 "非法赋值‘log’"
发表于 2023-5-20 17:24:23 | 显示全部楼层
  1. @echo off
  2. (for /f "delims=" %%a in ('type "1.txt"^|findstr /n .*') do (
  3.         set "str=%%a"
  4.         setlocal enabledelayedexpansion
  5.         set "str=!str:“text”=!"
  6.         echo=!str:*:=!
  7.         endlocal
  8. ))>2.txt
  9. pause
复制代码

将文本和批处理都保存为ansi编码
发表于 2023-5-20 18:16:43 | 显示全部楼层
回复 5# BingjianREMIX


    将第2、6行的log改为logg看看,或者用
  1. powershell -c "gc 1.log | %%{$_ -replace '\btext\b'} | Set-Content 1.log"
复制代码
  1. sed -i "/\btext\b/s///g" 1.log
复制代码
发表于 2023-5-20 22:38:54 | 显示全部楼层
回复 5# BingjianREMIX


   你把xxx.log改成你的目标文件 如果文件为空会报错
 楼主| 发表于 2023-5-20 22:39:59 | 显示全部楼层

如何要bat来删除文件中的特定字符串,求解

写了一些代码来实现注册登录重置和删除,但是删除一直有问题,求解
  1. :login
  2. cd /d %~dp0
  3. title MICRODOS LOGIN ^& REGISTER
  4. setlocal enabledelayedexpansion
  5. if not exist urini.ini echo. >urini.ini
  6. cls

  7. :users2
  8. color 07
  9. cls
  10. echo.
  11. echo -------------------------
  12. echo MICRODOS LOGIN ^& REGISTER
  13. echo -------------------------
  14. echo.
  15. echo 1.Login
  16. echo.
  17. echo 2.register
  18. echo.
  19. echo 3.Reset users
  20. echo.
  21. echo 4.delete users
  22. echo.
  23. set /p a=Enter you choose:
  24. if /i "%a%"=="4" goto :delete4
  25. if /i "%a%" equ "3" (
  26.         del urni.ini
  27.         echo. >urini.ini
  28.         cls
  29.         echo RESET COMPLETE!
  30.         pause>nul
  31.         goto :users2
  32. ) else if /i "%a%" equ "2" (
  33.         call :register
  34.         goto :users2
  35. ) else if "%a%" equ "1" (
  36.         set /p str1=Enter the USER NAME:
  37.         set /p str2=Enter the password:
  38.         findstr /x /c:"USER_NAME:!str1!_PASSWORD:!str2!" "urini.ini" 1>nul && (
  39.                 cls
  40.                 color 27
  41.                 echo TRUE!
  42.                 echo Please push any key to continue!
  43.                 pause>nul
  44.                 goto :dos
  45.         ) || (
  46.                 cls
  47.                 color 47
  48.                 echo ERROR!
  49.                 echo Please push any key to continue!
  50.                 pause>nul
  51.                 goto :users2
  52.         )
  53. ) else goto :users2

  54. :register
  55. cls
  56. :str1
  57. cls
  58. set "str1="
  59. set /p "str1=Enter the new user name:"
  60. if "x%str1%" equ "x" (
  61.     echo Invalid user name.
  62.     goto :str1
  63. )

  64. :str2
  65. cls
  66. set "str2="
  67. set /p "str2=Enter the new password:"
  68. if "x%str2%" equ "x" (
  69.     echo Invalid password.
  70.     goto :str2
  71. )
  72. >>"urini.ini" echo USER_NAME:%str1%_PASSWORD:%str2%
  73. goto :users2

  74. :delete4
  75. echo on
  76. echo What user do you want to delete:
  77. set /p ax=
  78. echo What the user %ax%'s password:
  79. set /p bx=
  80. findstr /x /c:"USER_NAME:%ax%_PASSWORD:%bx%" "urini.ini" 1>nul
  81.         for /f %%i in (urini.ini) do ( set "url=%%i"
  82.                 set url="USER_NAME:%ax%_PASSWORD:%bx%"

  83. )<nul >>"urini(2).ini"
  84. pause
  85. del urini.ini
  86. ren "urini(2).ini" "urini.ini"
  87. cls
  88. echo DELETE COMPLETE!
  89. pause>nul
  90. goto :users2
复制代码
有无大佬可以完美解决,在以上的源码的前提下实现的,非常感谢
发表于 2023-5-20 22:40:19 | 显示全部楼层
当然也有可能log是个保留词(我不知道?)那就把log改成随便啥
 楼主| 发表于 2023-5-20 22:42:30 | 显示全部楼层
回复 9# jyswjjgdwtdtj 你可以去看看另一个我的同名帖子那里情况更详细
发表于 2023-5-21 02:55:59 | 显示全部楼层
  1. :delete4
  2. @echo off
  3. echo What user do you want to delete:
  4. set /p ax=
  5. echo What the user %ax%'s password:
  6. set /p bx=
  7. findstr /x /c:"USER_NAME:%ax%_PASSWORD:%bx%" "urini.ini" 1>nul
  8. if %errorlevel% equ 0 (
  9.         findstr /v /x /c:"USER_NAME:%ax%_PASSWORD:%bx%" "urini.ini" >"urini.ini.temp"
  10. ) else (
  11.         echo not exist "USER_NAME:%ax%_PASSWORD:%bx%"
  12.         goto :delete4
  13. )
  14. move /y "urini.ini.temp" "urini.ini"
  15. cls
  16. echo DELETE COMPLETE!
复制代码

评分

参与人数 1技术 +1 收起 理由
BingjianREMIX + 1 Not found!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 19:54 , Processed in 0.024012 second(s), 11 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表