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

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

本帖最后由 BingjianREMIX 于 2023-5-23 20:38 编辑

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
QQ 1980286392

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")
[u]sin a*sin b*sin c [/u]
sin x*sin y*xin z ̄

TOP

set fso=createobject("scripting.filesystemobject")
log=fso.opentextfile("xxx.log",1).readall()
set ...
jyswjjgdwtdtj 发表于 2023-5-20 14:21
但是咋样用呢
QQ 1980286392

TOP

回复 3# BingjianREMIX
这个应该是vbs,要保存为.vbs文件

TOP

回复 4# LTSC1809 "非法赋值‘log’"
QQ 1980286392

TOP

  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编码
bat小白,请多指教!谢谢!

TOP

回复 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
复制代码

TOP

回复 5# BingjianREMIX


   你把xxx.log改成你的目标文件 如果文件为空会报错
[u]sin a*sin b*sin c [/u]
sin x*sin y*xin z ̄

TOP

如何要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
复制代码
有无大佬可以完美解决,在以上的源码的前提下实现的,非常感谢
QQ 1980286392

TOP

当然也有可能log是个保留词(我不知道?)那就把log改成随便啥
[u]sin a*sin b*sin c [/u]
sin x*sin y*xin z ̄

TOP

回复 9# jyswjjgdwtdtj 你可以去看看另一个我的同名帖子那里情况更详细
QQ 1980286392

TOP

  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

评分人数

bat小白,请多指教!谢谢!

TOP

返回列表