1

我已经有一段时间没有写批处理文件了。我以前曾经玩过它,但现在我需要写一个,我迷路了。谁能帮我一把?我需要编写一个具有以下要求的批处理文件:

  • 它将在 Windows 中运行
  • 它应该将文件名作为唯一参数
  • 它应该只搜索文件中的前 100 个字符,并且应该将出现的两个连续星号替换为**一个星号、两个空格和一个最后一个星号* *
    • 老的:The quick brown f**ox jumped over something
    • 新的:The quick brown f* *ox jumped over something
  • 文件的新版本应保存为原始文件名加上 .new 到子文件夹
    • 原始文件名C:\Myfolder\myfile.txt
    • 新文件名C:\Myfolder\NewFolder\myfile.txt.new

任何和所有的帮助将不胜感激。

4

1 回答 1

0

使用sed.

GnuWin32包括一个:http ://gnuwin32.sourceforge.net/

Git 的 windows 端口也是如此。

以下假设您使用的是 ASCII 文本文件:100 个字节 == 100 个字符。

@echo off
set output_file=%input_file%.new
set end_of_header=5
set /a start_of_body=%end_of_header% + 1

head --bytes=%end_of_header% ^
    %input_file% ^
    | sed --expression "s/\*\*/*  */g" ^
    1> %output_file%

tail --bytes=+%start_of_body% ^
    %input_file% ^
    1>> %output_file%

type %input_file% %output_file%
于 2013-03-02T14:23:54.433 回答