[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1,2 delims=:" %%a in ('findstr /n .* a.txt') do set "_%%a=%%b"
  3. (for /f "tokens=1* delims=A" %%a in (x.txt) do (
  4.     set "str=%%b"&set "a=!str:~,3!"
  5.     for %%c in (!a!) do echo %%a!_%%c!!str:~3!
  6. ))>bbb.txt
  7. start bbb.txt
复制代码
***共同提高***

TOP

本帖最后由 batman 于 2011-5-22 01:24 编辑

开始看错题意,下面代码只考虑了一行最多要替换4个的情况,如不够请自行修改:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1,2 delims=:" %%a in ('findstr /n .* a.txt') do set "_%%a=%%b"
  3. (for /f "tokens=1-5 delims=A" %%a in (x.txt) do (
  4.     set "var="
  5.     call :lp "%%b" "%%c" "%%d" "%%e"
  6.     echo %%a!var!
  7. ))>bbb.txt
  8. start bbb.txt&goto :eof
  9. :lp
  10. set "str=%~1"&set "a=!str:~,3!"
  11. for %%a in (!a!) do set "var=!var!!_%%a!!str:~3!"
  12. if "%~2" neq "" shift&goto lp
复制代码
***共同提高***

TOP

7# w1983912
1 tokens=1-5
2 call :lp "%%b" "%%c" "%%d" "%%e"
***共同提高***

TOP

本帖最后由 batman 于 2011-5-22 02:39 编辑

vbs版(好麻烦):
  1. Dim a(10000)
  2. Set fso = CreateObject("scripting.filesystemobject")
  3. fso.OpenTextFile("a.txt", 8, 1).WriteLine vbcrlr & "end"
  4. Set otext = fso.OpenTextFile("a.txt", 1, 1)
  5. Do Until a(i) = "end"
  6.   i = i + 1
  7.   a(i) = otext.ReadLine()
  8. Loop
  9. otext.Close
  10. Set otext = fso.OpenTextFile("x.txt", 1, 1)
  11. vbstr = otext.ReadAll()
  12. For i = 0 To UBound(Split(vbstr, "A"))
  13.   If InStr("123456789", Left(Split(vbstr, "A")(i), 1)) Then
  14.     vbvar = vbvar & a(Left(Split(vbstr, "A")(i), 3)) & Right(Split(vbstr, "A")(i), Len(Split(vbstr, "A")(i))-3)
  15.   Else
  16.     vbvar = vbvar & Split(vbstr, "A")(i)
  17.   End If
  18. Next
  19. otext.Close
  20. fso.OpenTextFile("bbb.txt", 2 ,1).Write vbvar
  21. Set fso = Nothing
复制代码
***共同提高***

TOP

返回列表