[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[ 新手习题 6 ] 批处理添加汉字行号

a.txt
  1. 要怎么学好批处理?
  2. 可潜水看帖,静静研究;
  3. 可看教程做习题,然后解决实际的问题;
  4. 也可二者并用取其优,当然还有其他方法。
  5. 你是怎么做的呢?
复制代码
以上文本有五行,要求显示如下:(行号可为大写,但必须是汉字)
  1. 一┃要怎么学好批处理?
  2. 二┃可潜水看帖,静静研究;
  3. 三┃可看教程做习题,然后解决实际的问题;
  4. 四┃也可二者并用取其优,当然还有其他方法。
  5. 五┃你是怎么做的呢?
复制代码
方法不限。答对加分鼓励,第一个最多。
上一题:[ 新手练习 5 ] 随机显示星期几
http://bbs.bathome.net/thread-2564-1-1.html
下一题:[ 新手练习 7 ] 把所有输出都写入一个文件
http://bbs.bathome.net/thread-2582-1-1.html

[ 本帖最后由 wxcute 于 2008-11-18 21:04 编辑 ]
1

评分人数

@echo off
set arr=一二三四五
set /a index=0
setlocal enabledelayedexpansion
for /f %%i in (a.txt) do (
        call echo %%arr:~!index!,1%%┃%%i
        set /a index+= 1
)
pause

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set str=一二三四五
  4. for /f %%i in ( a.txt ) do (
  5. echo !str:~0,1!^|%%i
  6. set str=!str:~1!
  7. )
  8. pause
复制代码

TOP

新手报到,请多多关照

TOP

贴个用数组的,可显示1~99行
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set hanghao=一 二 三 四 五 六 七 八 九 十
  4. echo %hanghao%
  5. set index=1
  6. for %%a in (%hanghao%) do (
  7. set indexarray[!index!]=%%a
  8. call echo %%indexarray[!index!]%%
  9. set /a index+=1
  10. )
  11. set no=1
  12. for /f "delims=" %%a in (a1.txt) do (
  13. if !no! leq 10 (
  14. call echo %%indexarray[!no!]%%|%%a
  15. ) else if !no! lss 100 (
  16. set /a shiw=!no!/10
  17. set /a gew=!no!%%10
  18. call echo %%indexarray[!shiw!]%%!indexarray[10]!%%indexarray[!gew!]%%|%%a
  19. )
  20. set /a no+=1
  21. )
复制代码

TOP

回复 1# wxcute
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set line=0
  4. set head=一二三四五
  5. for /f %%I in (a.txt) do (
  6.     echo !head:~,1!^|%%I
  7.     set head=!head:~1!
  8. )
复制代码

TOP

回复 49# 尘丶
  1. @echo off&setlocal enabledelayedexpansion
  2. (for %%a in (一 二 三 四 五) do set /p %%a=%%a^|&echo;!%%a!)<a.txt
  3. pause
复制代码
1

评分人数

    • 尘丶: 还能这样用,这招太给力了技术 + 1

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set n1=一
  3. set n2=二
  4. set n3=三
  5. set n4=四
  6. set n5=五
  7. for /f "delims=" %%a in (1.txt) do (
  8.     set /a t+=1
  9.     call,set /p=%%n!t!%%<nul
  10. echo;^|%%a
  11. )
  12. pause
复制代码

TOP

每一题代码的写法都有所不同,建议往别的方向考虑一下。
我们仅仅针对这道题这说,排除变量名的不同,代码相似度,通过使用不同的命令组合,
解答这题的方案大概也有5到6种。
  1. @echo off&setlocal enabledelayedexpansion
  2. set "l=一二三四五"
  3. for /f %%i in (a.txt) do (
  4.    call set/p=%%l:~!n!,1%%<nul&echo,^|%%i
  5.        set/a n+=1
  6. )
  7. pause>nul&exit
复制代码
这样。应该很不错。
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

还好吧
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "aa=一|二|三|四|五|"
  4. for /f "tokens=*" %%a in (F:\1.txt) do (set /a js+=1&set bb=%%a&call :loop)
  5. pause>nul&exit
  6. :loop
  7. if %js%==1 echo !aa:~0,2!%bb%&goto :eof
  8. if %js%==2 echo !aa:~2,2!%bb%&goto :eof
  9. if %js%==3 echo !aa:~4,2!%bb%&goto :eof
  10. if %js%==4 echo !aa:~6,2!%bb%&goto :eof
  11. if %js%==5 echo !aa:~8,2!%bb%&goto :eof
复制代码

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=* delims=" %%i in (c:\Users\KINGBOOK\Desktop\a.txt) do (
  4. set /a n+=1
  5. if !n! equ 1 echo 一┃%%i
  6. if !n! equ 2 echo 二┃%%i
  7. if !n! equ 3 echo 三┃%%i
  8. if !n! equ 4 echo 四┃%%i
  9. if !n! equ 5 echo 五┃%%i
  10. )
  11. pause
复制代码

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. echo 要怎么学好批处理?>a.txt
  3. echo 可潜水看帖,静静研究;>>a.txt
  4. echo 可看教程做习题,然后解决实际的问题;>>a.txt
  5. echo 也可二者并用取其优,当然还有其他方法。>>a.txt
  6. echo 你是怎么做的呢?>>a.txt
  7. set shu= 一二三四五
  8. for /f "tokens=* delims=" %%i in (a.txt) do (
  9. set str=%%i
  10. set /a n+=1
  11. call echo %%shu:~!n!,1%%┃!str!
  12. )
  13. del a.txt
  14. pause
复制代码
学习中

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. set var=一二三四五
  3. for /F %%i in (a.txt) do (
  4.     echo !var:~0,1!^|%%i
  5.      set var=!var:~1!
  6. )
  7. pause>nul
复制代码

TOP

回复 41# PCL505512957
应该是那个^|%%i的原因,5楼貌似发现了这个问题

TOP

本帖最后由 无知小菜鸟 于 2012-8-31 15:15 编辑

看了这道题,和5楼的回答,我看了很久的set教程,终于明白了那句set的作用,是选取head中第%num%开始的2个字符串
  1. @echo off&setlocal enabledelayedexpansion
  2. set "head=一|二|三|四|五|"
  3. set /a num=0
  4. for /f  %%i in (a.txt) do (
  5.    call set /p=%%head:~!num!,2%%<nul
  6.    set /p=%%i<nul
  7. echo.
  8.    set /a num+=2
  9. )
  10. pause>nul
复制代码

TOP

返回列表