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

[文本处理] 如何用批处理运行记事本内命令 并判断已到文末?

我需要用批处理A.bat调用1.txt记事本里的内容 并执行记事本里面的命令 1.txt的行数是不固定的,随机的

每九行调用一次 如何判断总共需要调用多少次 并判断已经到了最后一行呢?该如何写?

如果不满九行又该如何?

求大神指点

回复 2# DAIC


    @echo off & setlocal EnableDelayedExpansion

for /f "delims=" %%i in ('"dir /a/s/b/on *.exe"') do (

set file=start /d %%~di%%~pi %%~fi -s

set file=!file:/=/!

echo !file! >>1.txt

这就是1.txt的来源

TOP

回复 2# DAIC


    1.txt也是批处理生存的一些命令,每条命令自成一行,在不同的机子上命令的条数并不相同 所以它有几行记录是随机的 可能是1条 也可能是1000条 甚至更多

每九行调用一次

就是我要用批处理一次性读取其中的九行来运行,简单的说 如果1.txt里面有10行,那么第一次读取了9行运行,这9行运行完了 在运行余下的1行

如果1.txt不够9行呢?

下面这个是我写得比较笨的,而且行数没办法判断 也不知道何时结束
  1. @echo off & setlocal EnableDelayedExpansion
  2. for /f "delims=" %%i in ('"dir /a/s/b/on *.exe"') do (
  3. set file=start /d %%~di%%~pi %%~fi -s
  4. set file=!file:/=/!
  5. echo !file! >>1.txt
  6. )
  7. set "file=1.txt"
  8. set /a min=0,max=8
  9. (for /l %%a in (1 1 %min%) do set /p=
  10. for /l %%a in (%min% 1 %max%) do set /p str=&echo;!str!
  11. )<!file!>temp1.cmd
  12. call temp1.cmd
  13. del temp1.cmd
  14. )
  15. :star
  16. SET wait=ping -n 2 127.0.0.1 ^>^nul
  17. for /l %%n in (10,-1,0) do (
  18.    rem cls
  19.    echo **************************************
  20.    echo.
  21.    echo          %%n秒关闭,并进行第二次运行...
  22.    echo.
  23.    echo **************************************
  24.    %wait%
  25.    cls
  26.    )
  27. set "file=1.txt"
  28. set /a min=9,max=17
  29. (for /l %%a in (1 1 %min%) do set /p=
  30. for /l %%a in (%min% 1 %max%) do set /p str=&echo;!str!
  31. )<!file!>temp1.cmd
  32. call temp1.cmd
  33. del temp1.cmd
  34. pause
复制代码

TOP

把 1.txt 的真实内容发出来,详细说明一下什么是“每九行调用一次”

TOP

返回列表