0

ディレクトリ内のtxtファイルと#EXTINFを含むすべての行を通過するバッチファイルを作成し、最後の15文字を削除したいと思います..

基本的に、可能であれば、特定の数より長い行から最後の15〜20文字をトリミングしたいと思います。何らかの理由で、行が長すぎるとデータが台無しになるソフトウェアがあります。

ありがとう

4

2 に答える 2

1

Windows コマンドライン環境を使用して、ファイル内のテキストを検索および置換する方法を参照してください。Windows バッチを使用してテキスト ファイルを変更するためのさまざまなオプション。

次の単純なコードは、REPL.BATを使用して、600 文字で始まる#extinf(大文字と小文字を区別しない) 長い行を切り捨てます。600 文字未満の行はそのまま保持されます。

type test.txt|repl.bat "^(#extinf.{593}).*$" "$1" I>test.txt.new
move /y test.txt.new test.txt >nul
于 2013-06-02T17:39:54.227 に答える
0

User231429 は次のように書いています。

以下のバッチファイルはまさにそれを行います:

@echo off
setlocal EnableDelayedExpansion

for %%f in (*.txt) do (
   (for /F "usebackq delims=" %%a in ("%%f") do (
      set "line=%%a"
      if "!line:~0,7!" equ "#extinf" set "line=!line:~0,-XX!"
      echo !line!
   )) > "%%~Nf.new"
)

REM del *.txt
REM ren *.new *.txt

if長いコマンドでは、XX を数値に置き換える必要があることに注意してください。

このプログラムをテストし、結果を *.NEW ファイルで確認してください。結果が正しければ、最後の 2 行から REM 部分を削除します。

このプログラムは、ファイルから感嘆符を削除します。この詳細は、必要に応じて修正できます。

于 2013-06-02T19:38:26.670 に答える