0

バッチスクリプトでtxtファイルを編集したい。私はオンラインで見て、いくつかの例を自分のニーズに合わせて調整しようとしました。しかし、私にはプログラミングのスキルがなく、プログラムを機能させることができませんでした。

これが私の問題です。ファイルのある時点でこれを含むtxtファイルがあります:

Subcase  Mode  Buckling Eigenvalue
  321043      1     2.124238E+00
  321043      2     2.169874E+00
  321043      3     2.628187E+00
  321043      4     2.832127E+00
  321043      5     2.968359E+00
  321043      6     3.131774E+00

次のように変更したいと思います。

R E A L   E I G E N V A L U E S

Subcase  Mode  Buckling Eigenvalue
  321043      1     2.630623E-01
  321043      2     2.676471E-01
  321043      3     2.982211E-01

したがって、基本的には、「Subcase Mode Buckling Eigenvalue」の 2 行前に「REALEIGENVALUE S」を追加しますが、前の行の内容は削除しません。つまり、2 つの新しい行を追加します。

次のことを試しましたが、最初の 8 行のみが新しいテキスト ファイルに出力されました。

@echo off

for /f "tokens=* delims=" %%a in (le_panel_7_cut down_i.out) do call :Change "%%a"
exit /b

:Change
set Text=%~1
if "%Text%"=="Subcase  Mode  Buckling Eigenvalue" (
(echo R E A L   E I G E N V A L U E S &echo[ &echo[ &echo[Subcase  Mode  Buckling Eigenvalue)>> D:\FEA\newfile.txt
) else (
(echo %Text%)>> D:\FEA\newfile.out
)
exit /b

このような別のスクリプトも試しましたが、これも機能しませんでした。

  @echo on
        SETLOCAL=ENABLEDELAYEDEXPANSION

          for /f "delims=" %%a in (le_panel_7_cut_down_i.out) do (
            set foo=%%a
            if !foo!=="Subcase  Mode  Buckling Eigenvalue" set foo=(
echo R E A L   E I G E N V A L U E S &echo[ &echo[ &echo[Subcase  Mode  Buckling Eigenvalue) 
     echo !foo! >> file3.txt) 

誰かが私のスクリプトを修正してくれたら、大歓迎です。よろしくイアン

4

3 に答える 3

0

私があなたの質問を誤解した場合はお詫びしますが、

@echo off
echo R E A L   E I G E N V A L U E S > out.tmp
echo. >> out.tmp
type yourtxtfile.txt >> out.tmp
move out.tmp yourtxtfile.txt

これはあなたが意味するものですか?

于 2013-05-14T18:48:03.670 に答える