我希望能够将命令行的输出拆分到文件中。我希望使用以下一种或两种方式进行拆分:
- 根据文件大小进行拆分。如果文件大小达到 500kb,则创建一个新文件
- 根据文件中的行数进行拆分。如果达到 1000 行,则创建一个新文件
当然,这也意味着我需要一个输出变量名
这是我现在正在运行的命令:
java -jar "C:\Processors\myProcessor.jar" >> "C:\Processors\myprocessor.log"
希望将“myprocessor.log”拆分成相应的文件。
答案1
split 命令可以完全满足您的要求,并可以选择按文件大小或行数进行拆分。手册页:
split——将文件拆分成几部分
将固定大小的 INPUT 片段输出到 PREFIXaa、PREFIXab、...;默认大小为 1000 行,默认 PREFIX 为“x”。如果没有 INPUT,或者 INPUT 为 -,则读取标准输入。
...剪辑...
-b, --bytes=SIZE 每个输出文件放入 SIZE 个字节
-l, --lines=NUMBER 每个输出文件放入 NUMBER 行
您可以在GnuWin32 CoreUtils 包用于 Windows 机器上。
答案2
如果您想在不修改 myProcessor.jar 的情况下执行此操作,则需要对日志文件进行后处理。我怀疑您可以在 Powershell 中执行此操作,但我并不清楚如何操作。Windows 中没有任何东西可以执行此操作。
答案3
我相信您要做的事情至少需要编写一个脚本(仅命令行无济于事)
对于这样的脚本编写目的,我建议编写一个 Ruby 脚本(Ruby 是一种非常强大且极易学习的语言 - 非常友好)。编写一个批处理文件来执行此操作会耗费你的脑子(至少它会耗费我的脑子)