[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 2# Batcher
他说的那些数字应该是指的行号吧……
看得多说得多,远比不上写得多。

TOP

本帖最后由 weichenxiehou 于 2011-9-14 09:33 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set n=&set odd=
  3. (for /f "delims=" %%i in (a.txt) do (
  4.   set/a n+=1,m=n%%2
  5.   if !m! equ 1 (set "odd=%%i") else echo,%%i&echo,!odd!
  6. ))>new.txt
  7. if %m% equ 1 echo,%odd%>>new.txt
复制代码
仅提供了自己想的思路,没去特意注意特殊字符的处理。。
看得多说得多,远比不上写得多。

TOP

本帖最后由 weichenxiehou 于 2011-9-14 08:54 编辑

回复 6# awk
不会吧?我最后一行代码特意注意这个问题啊……
看得多说得多,远比不上写得多。

TOP

回复 10# CrLf
ok,多谢提醒,0-9的数字被当成句柄了,代码已修改,加了个空格,应该可以吧。
看得多说得多,远比不上写得多。

TOP

回复 8# CrLf
不知版主是否会错题意,怎么跑你的程序,结果不对呢?
看得多说得多,远比不上写得多。

TOP

回复 9# awk
还是得感谢awk纠错,多谢!
看得多说得多,远比不上写得多。

TOP

回复 14# wc726842270
言之有理,原楼代码还原,新代码贴于此:
  1. @echo off&setlocal enabledelayedexpansion
  2. set n=&set odd=
  3. (for /f "delims=" %%i in (a.txt) do (
  4.   set/a n+=1,m=n%%2
  5.   if !m! equ 1 (set "odd=%%i") else echo,%%i&echo,!odd!
  6. ))>new.txt
  7. if %m% equ 1 echo,%odd% >>new.txt
复制代码
看得多说得多,远比不上写得多。

TOP

回复 21# hankerer
试试下面的就应该懂了。。
  1. @echo off
  2. for /l %%i in (1 1 10) do echo,%%i>>a.txt
  3. type a.txt
  4. (for /l %%i in (1 1 10) do set/p _a%%i=)<a.txt
  5. set _a
  6. pause>nul
复制代码
看得多说得多,远比不上写得多。

TOP

回复 23# hankerer
理解得八九不离十吧……
看得多说得多,远比不上写得多。

TOP

返回列表