1

バッチファイルを書いてから久しぶりです。昔は遊んでいましたが、今は書く必要があり、迷ってしまいました。誰か私に手を貸してもらえますか?次の要件を持つバッチファイルを作成する必要があります。

  • Windowsで実行されます
  • 唯一のパラメータとしてファイル名を使用する必要があります
  • ファイル内の最初の100文字のみを検索し、2つの連続するアスタリスクの出現**を1つのアスタリスク、2つのスペース、および最後のアスタリスクに置き換える必要があります。* *
    • 年: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 に答える