Windows Batch-在txt文件中查找和编辑行

时间:2019-02-15 05:18:38

标签: windows batch-file

我正在寻找一个简单的脚本,该脚本将搜索文本文件(input.txt),其中列出的数字如下:

我基本上没有批处理编码(或与此有关的任何代码)的经验,希望这里有人可以为我提供帮助。

0001
0002
0003
etc

我需要输出(output.txt)为:

[test]0001[/test]
[test]0002[/test] 
[test]0003[/test] 
etc 

任何帮助将不胜感激!

编辑:有人发布了python脚本,然后将其删除,然后才能对其进行测试并回复。我知道这不是我最初要求的,但是效果很好!谢谢!

如果有人找到了该线程并可以使用它,就是这样:

    rf = open("input.txt", 'r')
lines = rf.read().splitlines()
formatted_lines = ['[test]{}[/test]'.format(i) for i in lines]

with open('output.txt', 'w') as wf:
    for l in formatted_lines:
        wf.write("{}\n".format(l))

2 个答案:

答案 0 :(得分:0)

以下是从Windows命令提示符转换数据的方法:

powershell -c "cat input.txt | %{\"[test]$_[/test]\"} > output.txt"

或者,如果您可以直接从PowerShell运行它,那就是:

cat test.txt | %{"[test]$_[/test]"} > output.txt

答案 1 :(得分:0)

这很容易,并且可以通过以下方式轻松完成:

@echo off

for /F "delims=" %%A IN (input.txt) do echo [test]%%A[/test]
pause>nul & exit /b 0

这将只是echo在控制台中的结果。要将其保存到文件中,请使用:

@echo off

for /F "delims=" %%A IN (input.txt) do (echo [test]%%A[/test])>>output.txt
pause>nul & exit /b 0

echo对其进行保存并将其也保存在文件中,请使用:

@echo off

for /F "delims=" %%A IN (input.txt) do (
    echo [test]%%A[/test]
    (echo [test]%%A[/test])>>output.txt
)

pause>nul & exit /b 0

注意:LotPings在评论中提出了相同的 about 解决方案。它适用于不发送整个for循环的输出,而是发送echo命令的输出,产生相同的结果。