我已经有一段时间没有写批处理文件了。我以前经常玩它,但现在我需要写一个,我迷路了。谁能帮我一把?我需要编写具有以下要求的批处理文件:
- 它将在Windows中运行
- 它应该将文件名作为唯一的参数
- 它应仅搜索文件中的前 100 个字符,并应将出现的两个连续星号
**
替换为一个星号、两个空格和一个最后一个星号* *
- 旧:
The quick brown f**ox jumped over something
- 新增:
The quick brown f* *ox jumped over something
- 旧:
- 文件的新版本应另存为原始文件名加上 .new 到子文件夹
- 原始文件名
C:Myfoldermyfile.txt
- 新文件名
C:MyfolderNewFoldermyfile.txt.new
- 原始文件名
任何和所有的帮助将不胜感激。
使用本机端口 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%