[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
源文件a.txt中有些答案行被分成两行,如连为一行,则可用如下纯P代码搞定...
例如:
19.  大金塔、埃菲尔铁塔、比萨斜塔、吴哥窟依次位( C)
A. 法国、缅甸、意大利、柬埔寨 B. 柬埔寨、法国、意大利、缅甸
C. 缅甸、法国、意大利、柬埔寨 D. 缅甸、意大利、法国、柬埔寨
变为:
19.  大金塔、埃菲尔铁塔、比萨斜塔、吴哥窟依次位( C)
A. 法国、缅甸、意大利、柬埔寨 B. 柬埔寨、法国、意大利、缅甸 C. 缅甸、法国、意大利、柬埔寨 D. 缅甸、意大利、法国、柬埔寨

@echo off
setlocal enabledelayedexpansion
set/a n=1
(for /f "delims=" %%s in (a.txt) do (
  if !n! equ 1 (
    set "s=%%s" & set "s=!s: =!" & set "z=!s:~-2,1!" & set/a n+=1
    echo,%%s
  ) else (
    set/a n=1
    for /f "tokens=1-4 delims=ABCD. " %%1 in ("%%s") do (
      if /i !z! equ A (echo,!z!. %%1)
      if /i !z! equ B (echo,!z!. %%2)
      if /i !z! equ C (echo,!z!. %%3)
      if /i !z! equ D (echo,!z!. %%4)
    )
  )
))>a.new.txt
endlocal & exit/b
1

评分人数

TOP

再打磨一下纯P老枪,对原版a.txt(不调整两行答案变一行)也拿下了...
@echo off
setlocal enabledelayedexpansion
set "ls="
(for /f "tokens=* delims= " %%s in (a.txt) do (
    set z=%%s & set "z=!z: =!" & set "z1=!z:~,1!"
    if !z1! geq 0 if !z1! leq 9 (
       if defined ls (
          for /f "tokens=1-4 delims=ABCD. " %%1 in ("!ls!") do (
             if /i !za! equ A (echo,!za!. %%1)
             if /i !za! equ B (echo,!za!. %%2)
             if /i !za! equ C (echo,!za!. %%3)
             if /i !za! equ D (echo,!za!. %%4)
          )
          set "ls="
       )
       set "za=!z:~-2,1!" & (echo,%%s)
    ) else if /i "!z1!"=="A" (set "ls=%%s") else (set "ls=!ls! %%s")
))>a.new.txt
if defined ls (
   for /f "tokens=1-4 delims=ABCD. " %%1 in ("!ls!") do (
       if /i !za! equ A (echo,!za!. %%1)
       if /i !za! equ B (echo,!za!. %%2)
       if /i !za! equ C (echo,!za!. %%3)
       if /i !za! equ D (echo,!za!. %%4)
   )>>a.new.txt
)
endlocal & exit/b
1

评分人数

TOP

返回列表