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

[文本处理] 批处理如何在变量多个参数中查找到需要的字符?

[复制链接]
发表于 2023-4-30 22:35:27 | 显示全部楼层 |阅读模式
已知变量
%mz% =45 45 89 365 56 94 56584 364
如何查找到包含658的参数并设置到变量%m%
得到变量%m%=56584

这个查找的包含658字符的参数位置不固定。
发表于 2023-5-1 00:05:30 | 显示全部楼层
  1. @echo off
  2. set "mz=45 45 89 365 56 94 56584 364"
  3. for %%a in (%mz%) do (
  4.         echo %%a|find "658" 1>nul && set m=%%a
  5. )
  6. pause
复制代码
发表于 2023-5-1 09:04:15 | 显示全部楼层
回复 1# szl1123


    如果有多个参数包含658,希望如何处理?
发表于 2023-5-1 09:09:53 | 显示全部楼层
回复 1# szl1123


减少外部命令find调用
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "mz=45 45 89 365 56 94 56584 364"
  4. for %%a in (%mz%) do (
  5.     set "x=%%a"
  6.     if "!x:658=!" neq "%%a" (
  7.         set "m=%%a"
  8.     )
  9. )
  10. echo,%m%
  11. pause
复制代码
 楼主| 发表于 2023-5-1 10:08:34 | 显示全部楼层
回复 2# 77七

非常感谢老师
 楼主| 发表于 2023-5-1 10:09:17 | 显示全部楼层
回复 3# Batcher


    目前应该不会有重复的结果
 楼主| 发表于 2023-5-1 10:09:48 | 显示全部楼层
回复 4# Batcher


    感谢各位老师,
 楼主| 发表于 2023-5-1 13:30:51 | 显示全部楼层
回复 2# 77七


    现在还有一个情况
%mz% =45 45 89 365 56 94 56584 364 5468
查找到包含658的参数后,要得到这个参数以及后面的所有字符,设置到变量%m%
得到结果应该是
%m%=56584 364 5468
包含后面的空格

还请各位老师帮忙解答一下,谢谢。
发表于 2023-5-1 14:11:03 | 显示全部楼层
回复 8# szl1123


  
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "mz=45 45 89 365 56 94 56584 364 5468"
  4. for %%a in (%mz%) do (
  5.         echo %%a|find "658" 1>nul && set "m=%%a" || (
  6.                 if defined m (
  7.                         set "m=!m! %%a"
  8.                 )
  9.         )
  10. )
  11. echo %m%
  12. endlocal
  13. pause
复制代码
发表于 2023-5-1 17:03:55 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "mz=45 45 89 365 56 94 56584 364 5468"
  4. for %%a in (%mz%) do (
  5.     set "x=%%a"
  6.     if not defined m (
  7.        if "!x:658=!" neq "%%a" (
  8.           set "m=%%a"
  9.        )
  10.    ) else set "m=!m! %%a"
  11. )
  12. echo,%m%
  13. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 22:45 , Processed in 0.019158 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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