返回列表 发帖
本帖最后由 77七 于 2023-7-19 12:19 编辑
  1. @echo off
  2. rem http://bbs.bathome.net/redirect.php?goto=findpost&ptid=12042&pid=76476
  3. set "str1=<Application Id="WindowsBackup" Executable="WindowsBackupClient.exe" EntryPoint="WindowsBackup.App" uap10:TrustLevel="mediumIL" uap10:RuntimeBehavior="windowsApp">"
  4. set "str2=</Application>"
  5. setlocal enabledelayedexpansion
  6. set "str1=!str1:"="""!"
  7. for /f "tokens=1 delims=:" %%a in ('findstr /nxr /c:"!str1!" /c:"!str2!" "1.txt"') do if defined start (set end=%%a) else (set start=%%a)
  8. (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "1.txt"') do (
  9. if %%a lss !start! echo=%%b
  10. if %%a gtr !end! echo=%%b
  11. ))>"2.txt"
  12. endlocal
  13. pause
复制代码
bat小白,请多指教!谢谢!

TOP

回复 6# lovekix


我测试是正常的。

将代码中两处 1.txt 改为你的文件名,再试试。
  如果不行 ,你把原文件传到网盘,发上来看看。
bat小白,请多指教!谢谢!

TOP

回复 8# lovekix


   你的实际文本与1楼提供的文本不符,1楼的文本行前缺少两个制表符,另外文本中存在多个 </Application>。先修改如下,有问题再说。
  1. @echo off
  2. rem http://bbs.bathome.net/redirect.php?goto=findpost&ptid=12042&pid=76476
  3. set "str1= <Application Id="WindowsBackup" Executable="WindowsBackupClient.exe" EntryPoint="WindowsBackup.App" uap10:TrustLevel="mediumIL" uap10:RuntimeBehavior="windowsApp">"
  4. set "str2= </Application>"
  5. setlocal enabledelayedexpansion
  6. set "str1=!str1:"="""!"
  7. for /f "tokens=1 delims=:" %%a in ('findstr /nxr /c:"!str1!" "appxmanifest.xml"') do set start=%%a
  8. for /f "tokens=1 delims=:" %%a in ('findstr /nxr /c:"!str2!" "appxmanifest.xml"') do (
  9. if %%a gtr !start! (
  10. set end=%%a
  11. goto :next
  12. )
  13. )
  14. :next
  15. (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "appxmanifest.xml"') do (
  16. if %%a lss !start! echo=%%b
  17. if %%a gtr !end! echo=%%b
  18. ))>"appxmanifest-2.xml"
  19. endlocal
  20. pause
复制代码
bat小白,请多指教!谢谢!

TOP

回复 10# lovekix


  
  1. @echo off
  2. rem http://bbs.bathome.net/redirect.php?goto=findpost&ptid=12042&pid=76476
  3. set "str1= <Application Id="WindowsBackup" Executable="WindowsBackupClient.exe" EntryPoint="WindowsBackup.App" uap10:TrustLevel="mediumIL" uap10:RuntimeBehavior="windowsApp">"
  4. set "str2= </Application>"
  5. rem setlocal enabledelayedexpansion
  6. set "str1=%str1:"="""%"
  7. for /f "tokens=1 delims=:" %%a in ('findstr /nxr /c:"%str1%" "appxmanifest.xml"') do set start=%%a
  8. for /f "tokens=1 delims=:" %%a in ('findstr /nxr /c:"%str2%" "appxmanifest.xml"') do (
  9. if %%a gtr %start% (
  10. set end=%%a
  11. goto :next
  12. )
  13. )
  14. :next
  15. (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "appxmanifest.xml"') do (
  16. set "str=%%b"
  17. setlocal enabledelayedexpansion
  18. if %%a lss %start% echo=!str!
  19. if %%a gtr %end% echo=!str!
  20. endlocal
  21. ))>"appxmanifest-2.xml"
  22. endlocal
  23. pause
复制代码
1

评分人数

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

TOP

回复 16# Zhanggli


  
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  3. call :1 "%%i"
  4. )
  5. pause & exit
  6. :1
  7. setlocal
  8. for /f "tokens=1* delims=:" %%a in ('findstr /nxr /c:"M05" /c:"T2" "%~1"') do (
  9. if not defined s (
  10. set s=%%a
  11. ) else (
  12. set e=%%a
  13. )
  14. )
  15. (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%~1"') do (
  16. if %%a lss %s% (
  17. echo=%%b
  18. ) else if %%a equ %e% (
  19. echo=%%b
  20. echo=M55
  21. ) else if %%a gtr %e% (
  22. echo=%%b
  23. )
  24. ))>$
  25. move /y $ "%~1"
  26. endlocal
  27. exit /b
复制代码
bat小白,请多指教!谢谢!

TOP

回复 25# lovekix


   请把出现问题的文件传上来,看看是什么原因。
bat小白,请多指教!谢谢!

TOP

本帖最后由 77七 于 2023-12-1 14:54 编辑

回复 27# lovekix


  1. @echo off
  2. set "str1=<Application Id="WindowsBackup" Executable="WindowsBackupClient.exe" EntryPoint="WindowsBackup.App" uap10[/]*[4]*:TrustLevel="mediumIL" uap10[/]*[4]*:RuntimeBehavior="windowsApp">"
  3. set "str2=</Application>"
  4. set "str1=%str1:"="""%"
  5. for /f "tokens=1 delims=:" %%a in ('findstr /nxr /c:"[ ]*%str1%" "appxmanifest.xml"') do set start=%%a
  6. for /f "tokens=1 delims=:" %%a in ('findstr /nxr /c:"[ ]*%str2%" "appxmanifest.xml"') do (
  7. if %%a gtr %start% (
  8. set end=%%a
  9. goto :next
  10. )
  11. )
  12. :next
  13. (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "appxmanifest.xml"') do (
  14. if %%a lss %start% echo=%%b
  15. if %%a gtr %end% echo=%%b
  16. ))>"appxmanifest-2.xml"
  17. pause
复制代码
bat小白,请多指教!谢谢!

TOP

回复 29# lovekix


   .*
前面加个.
bat小白,请多指教!谢谢!

TOP

返回列表