Board logo

标题: [文本处理] 大家帮忙看段打包maven项目的批处理代码的错误 [打印本页]

作者: 佛与地狱    时间: 2015-7-9 16:21     标题: 大家帮忙看段打包maven项目的批处理代码的错误

  1. set paths=M2\clb2b\service\clb2b-crm,M2\clb2b\facade\intranet
  2. set workspace=D:\DEV\
  3. set tomcat=D:\DEV_TOOLS\apache-tomcat-7.0.56\
  4. set mvnpakPath=D:\
  5. SET returnValue="FALSE"
  6. set /p varInput=inputMessage:
  7. for %%i in (%paths%) do (
  8. echo %%i|find /i %varInput% >nul 2>nul && SET returnValue="TRUE" || SET returnValue="FALSE"
  9. echo %returnValue%
  10. )
复制代码
这段代码我是想把一些maven管理下面的项目,根据输入的项目名,模糊匹配到一个项目地址,然后打包用的,我输入的是crm,结果一直输出的是FALSE。不知道是什么原因,请各位大侠帮忙。
作者: CrLf    时间: 2015-7-9 17:03

简单处理就是改成:
  1. call echo %%returnValue%%
复制代码
正规的处理方式请学习变量延迟
作者: 佛与地狱    时间: 2015-7-9 17:41

回复 2# CrLf


    在你那边可以吗?
作者: CrLf    时间: 2015-7-9 21:14

还有个问题,find 的关键词要加双引号:
  1. find /i "%varInput%"
复制代码

作者: 佛与地狱    时间: 2015-7-10 08:50

回复 4# CrLf


    加""不行的。
作者: Batcher    时间: 2015-7-10 09:24

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "paths=M2\clb2b\service\clb2b-crm,M2\clb2b\facade\intranet"
  4. set "workspace=D:\DEV\"
  5. set "tomcat=D:\DEV_TOOLS\apache-tomcat-7.0.56\"
  6. set "mvnpakPath=D:\"
  7. set returnValue="FALSE"
  8. set /p "varInput=inputMessage:"
  9. for %%i in (%paths%) do (
  10. echo %%i | find /i "%varInput%" >nul 2>&1 && set returnValue="TRUE" || set returnValue="FALSE"
  11. echo !returnValue!
  12. )
  13. pause
复制代码





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