Board logo

标题: [文本处理] 批处理读取文本第一行,代码哪里出错了,好像无法持续运行 [打印本页]

作者: sinsky    时间: 2015-5-6 21:13     标题: 批处理读取文本第一行,代码哪里出错了,好像无法持续运行

批处理读取文本第一行,然后将读取到的第一行写入url.txt,然后在原文本all.txt中删除这一行,想让它一直自动运行,直到all.txt里代码为空。下面的代码不知道哪里出错了,好像无法持续运行。
双击又正常,就是不能自动。
  1. @echo off
  2. :start
  3. (
  4.     for /f "delims=" %%a in (all.txt) do (
  5.         if defined one (echo,%%a) else set "one=%%a"
  6.     )
  7.     setlocal enabledelayedexpansion
  8.     echo %one%>url.txt
  9. endlocal
  10. )>temp.txt
  11. @move temp.txt all.txt
  12. ::call list.bat
  13. goto start
复制代码

作者: pcl_test    时间: 2015-5-6 22:06

为啥不逐行读取all.txt的内容到url.txt,最后在一次清空all.txt??
作者: sinsky    时间: 2015-5-6 22:13

回复 2# pcl_test

好像程序跑不起来。。。

你是说这样?
  1. @for /f %%a in (all.txt) do (echo %%a>>url.txt&call list.bat)
复制代码

作者: gawk    时间: 2015-5-6 22:18

开启变量延迟扩展之后,变量应该是这样的 !one!
作者: gawk    时间: 2015-5-6 22:20

双击又正常,就是不能自动。

调试代码的过程中不要双击。打开CMD窗口手工执行 C:\test.bat
这样可以看到报错信息
作者: pcl_test    时间: 2015-5-6 22:20

回复 3# sinsky
list.bat有什么用??
  1. @for /f "delims=" %%a in ('type "all.txt"') do @>>"url.txt" echo;%%a
  2. ::清空all.txt
  3. @cd.>"all.txt"
复制代码

作者: yangfengoo    时间: 2015-5-6 22:53

按你所说最终只是把all.txt最后一行写入url.txt
作者: sinsky    时间: 2015-5-7 13:00

回复 7# yangfengoo


    论坛找的,改改自用的,有些地方不合理,可能
作者: sinsky    时间: 2015-5-7 13:01

回复 6# pcl_test


    all里放的是url ,读取一行放入url.txt,然后list.bat读取url.txt进行生成url ,对url进行访问。
作者: sinsky    时间: 2015-5-7 13:03

回复 6# pcl_test


    额,你这脚本直接清空了文件,达不到要求
作者: pcl_test    时间: 2015-5-7 13:18

本帖最后由 pcl_test 于 2015-5-7 13:20 编辑

回复 9# sinsky
把list.bat发出来,重新帮你写过代码比改代码更容易
  1. @for /f "delims=" %%a in ('type "all.txt"') do @>"url.txt" echo;%%a&@ping -n 1 0 >nul&@call list.bat
复制代码

作者: sinsky    时间: 2015-5-7 14:39

回复 11# pcl_test


    你Q 多少,我加你 发你




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2