Board logo

标题: 高手进-两个字符串比较,得到结果去掉字符 [打印本页]

作者: fpipe     时间: 2007-3-14 12:03    标题: 高手进-两个字符串比较,得到结果去掉字符

比如 1.txt只有一个字符串是 d:\BAT\DOS
  2.txt只有一个字符串是d:\BAT
   
  怎样用批处理读出两个字符串,然后比较难得到结果是DOS

  高手请帮忙。。。
作者: youxi01     时间: 2007-3-14 12:57
先用for读取数据,然后利用简单的set命令就行了。

set str1=!str1:%str2%=!
echo %str1%
作者: everest79     时间: 2007-3-14 13:06
CODE:  [Copy to clipboard]
for /f %a in (dir /o:s 1.txt,2.txt) do (
for /f "tokens=*" %b in ("%%a") do (
call if defined stra (set strb=%%b) else (set stra=%%b)
)
)
call set str=%stra:%strb%=%

echo %str%
这样行吧
作者: fpipe     时间: 2007-3-15 01:53


  Quote:
Originally posted by everest79 at 2007-3-14 12:06 AM:
[code]
for /f %a in (dir /o:s 1.txt,2.txt) do (
for /f "tokens=*" %b in ("%%a") do (
call if defined stra (set strb=%%b) else (set stra=%%b)
)
)
call set str=%stra:%strb%= ...

好像不行。
作者: lxmxn     时间: 2007-3-15 02:15
  因为1.txt比2.txt中的字符串多出"\DOS",所以结果是"\DOS"。这个是不是你要的结果呢?
CODE:  [Copy to clipboard]
@ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSION
SET/P A=<1.TXT
SET/P B=<2.TXT
SET A=!A:%B%=!
ECHO %A%
PAUSE

作者: fpipe     时间: 2007-3-15 02:17
SET A=!A:%B%=! 是什么意思?怎么理解。

可以把\去掉吗?
作者: lxmxn     时间: 2007-3-15 07:16


  Quote:
Originally posted by fpipe at 2007-3-14 13:17:
SET A=!A:%B%=! 是什么意思?怎么理解。

可以把\去掉吗?

  SET A=!A:B=C!将A变量中的B替换成C。
CODE:  [Copy to clipboard]
::去掉\可以截取:
echo %A:~1%





欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5