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

[文本处理] 批处理for循环怎样查看相同字符串?

[复制链接]
发表于 2013-7-25 17:51:25 | 显示全部楼层 |阅读模式
  1. @echo off
  2. set pa=%PATH%
  3. :a
  4. for /f "tokens=1,*  delims=;" %%i in ("%pa%") do (
  5. set pa=%%j
  6. set str=%%j
  7. :b
  8. for /f "tokens=1,*  delims=;" %%a in ("%str%") do (
  9. if "%%i"=="%%a" echo "有相同的字符"
  10. set str=%%b
  11. if defined str (goto :b)
  12. )
  13. if defined pa (goto :a)
  14. )
  15. pause
复制代码
我想写 查询自己的 环境变量中有没有重复的。就在新的环境变量中删除一个重复的,但写到判断有没有重的的项时遇到了问题
1.发现  set str=%%j   时 str显示为空的。没有赋值成功
2.不知道 为什么 第二个for循环中 "%%i"=="%%a" 为什么总是相等的。
3.不知道我这样写是不是逻辑有错误。
4.后面如何替换有思路点不清i淅,能否给个思路。
发表于 2013-7-25 21:43:01 | 显示全部楼层
本帖最后由 apang 于 2013-7-25 22:02 编辑

思路:先将;字符替换成" "字符(两个双引号和一个空格),再交给for处理
  1. @echo off
  2. for %%a in ("%path:;=" "%") do (
  3.    if not defined %%~a (set "%%~a=1") else echo,重复字符:%%~a
  4. )
  5. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 10:43 , Processed in 0.014031 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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