标题: 高手进-两个字符串比较,得到结果去掉字符
[打印本页]
作者: 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
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
Originally posted by everest79 at 2007-3-14 12:06 AM:
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"。这个是不是你要的结果呢?
@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
Originally posted by fpipe at 2007-3-14 13:17:
SET A=!A:%B%=! 是什么意思?怎么理解。
可以把\去掉吗?
SET A=!A:B=C!将A变量中的B替换成C。
::去掉\可以截取:
echo %A:~1%