Board logo

标题: [文本处理] 批处理for循环怎样查看相同字符串? [打印本页]

作者: 441857769@qq.co    时间: 2013-7-25 17:51     标题: 批处理for循环怎样查看相同字符串?

  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淅,能否给个思路。
作者: apang    时间: 2013-7-25 21:43

本帖最后由 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
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2