Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 搜索和编辑带有批处理的文本文件_Batch File_Search_Edit - Fatal编程技术网

Batch file 搜索和编辑带有批处理的文本文件

Batch file 搜索和编辑带有批处理的文本文件,batch-file,search,edit,Batch File,Search,Edit,我是批处理脚本编写方面的新手,目前正在尝试使用脚本简化我的工作(这会让我的老板高兴)。批处理文件是否有方法在文本文件中搜索特定的给定输入,并将回送到文本文件中 例如,文本文件如下所示: 4/11/2016 01530594 Time In: 1:30 01565832 Time In: 2:32 4/11/2016 01530594 Time In: 1:30 Time Out: 3:21 01565832 Time In: 在本例中,给定的字符串是01530594,我需要在文本文件中搜索它

我是批处理脚本编写方面的新手,目前正在尝试使用脚本简化我的工作(这会让我的老板高兴)。批处理文件是否有方法在文本文件中搜索特定的给定输入,并将
回送到文本文件中

例如,文本文件如下所示:

4/11/2016
01530594
Time In: 1:30
01565832
Time In: 2:32
4/11/2016
01530594
Time In: 1:30
Time Out: 3:21
01565832
Time In:
在本例中,给定的字符串是
01530594
,我需要在文本文件中搜索它,并记录超时时间,使其如下所示:

4/11/2016
01530594
Time In: 1:30
01565832
Time In: 2:32
4/11/2016
01530594
Time In: 1:30
Time Out: 3:21
01565832
Time In:
如果需要其他东西来简化(比如说,已经有
超时:
从一开始,没有时间),这是可以接受的

我知道用批处理文件搜索/替换/编辑内容很乏味,这可能吗

set "timevalue=3:21"
(
  for /f "delims=" %%i in (infile.txt) do (
    echo %%i
    echo %%i|find "Time In:" >nul && echo Time Out: %timevalue%
  )
)>outfile.txt
for
循环逐行读取文件。第一个
echo
将行写入输出文件

第二行
echo
要复杂一些:

echo%%i | find“Time In:”
如果该行包含字符串“Time In:”,则查找<代码>>nul
将其输出写入涅盘(我们不需要它,我们只想知道它是否存在)

&&
表示“如果上一个命令成功执行(即
查找
),则执行下一个命令。如果成功,请再写一行
超时:%timevalue%


将整个
for
循环放入一个块(介于
之间)并将其输出重定向到一个文件

对不起,您不能批量编辑文件。您必须逐行读取它(
for/
?),然后写入一个新文件(您可以删除原始文件,然后重命名副本)嘿,Stephan,谢谢你帮我解决了这个问题。我实现了你在这里提供的东西,使它与我的东西一起工作,它有点工作,但我只有几个问题;我如何删除以前的文件并重命名副本文件?我相信这会搞乱循环。如果它有帮助,这是我到目前为止的代码:edit:nevermind,it's messy由于行尾的原因,但我想你明白了。
del infle.txt
ren outfile.txt infle.txt
有效,谢谢。但是还有一件事(很抱歉lol):我编辑了你提供的代码,以便它搜索特定字符串,并且有效。现在我需要它来读取下一行,如果它包含“超时:然后什么也不做,否则,写下“暂停:”之类的东西。如果必要的话,我可以用代码为这个问题创建另一个问题。@ricknaght我建议搜索一下你的答案——我想你会找到你需要的。如果没有,作为单独的问题提问。