バッチ-テキストファイルで文字列を検索し、その行の後に新しい文字列を追加します

James30263

batファイルから特定の文字列をテキストファイルで検索しようとしています。文字列が存在する場合は、次の行の後に新しい文字列を追加します。以下のコードが正しく機能していないようです。何か案は?

これは、テキストファイルで検索している文字列です。 [/Script/MyGame.Mode]

テキストファイルは次のようになります。

[/Script/Config.Mode]
Something here 1
Something here 2

[/Script/MyGame.Mode]
Something here 1
Something here 2

[/Script/Edit.Mode]
Something here 1
Something here 2

そして、これが私がそれをどのように見せたいかです。

[/Script/Config.Mode]
Something here 1
Something here 2

[/Script/MyGame.Mode]
RedirectReferences=(PackageName="%Package%",PackageURLProtocol="%PackageURLProtocol%",PackageURL="%WebAddress%/%Package%%Ext%",PackageChecksum="")
Something here 1
Something here 2

[/Script/Edit.Mode]
Something here 1
Something here 2

これが私がこれまでに持っているコードです。

@echo off

:GETINFO
echo.
echo.
cls
echo.
echo Let's get some information for your config. 
echo Note: The information you enter below is case sensitive. You can copy and paste.
echo.
echo Here's a Package Name example: "DM-MyTest-WindowsNoEditor"
echo.
set /p Package=Enter Package Name:
echo.
echo.
echo.
echo The Package URL Protocol will be "http" or "https"
echo.
set /p PackageURLProtocol=Enter Package URL Protocol:
echo.
echo.
echo.
echo Here's a WebAddress example: "www.myredirect.com/test" (Don't add the trailing /)
set /p WebAddress=Enter Redirect(WebAddress)URL:
echo.
echo.
echo.
echo The file extention is usually ".pak"
echo.
set /p Ext=Enter Map File Extention:
echo.
cls
echo.
echo Please wait... Currently Creating Test References.

:SHOWLINE
echo.
set NewURL=RedirectReferences=(PackageName="%Package%",PackageURLProtocol="%PackageURLProtocol%",PackageURL="%WebAddress%/%Package%%Ext%",PackageChecksum=""^^)

pause

:WRITENEW
set inputfile=game.txt
set outputfile=game.temp.txt
(for /f usebackq^ delims^=^ eol^=  %%a in ("%inputfile%") do (
   if "%%~a"=="[/Script/MyGame.Mode]" call echo %NewURL%
   echo %%a 
))>>"%outputfile%"

echo.
pause
wOxxOm
  1. 投稿されたコードをコマンドプロンプトコンソールで実行すると、構文エラーが表示されます。

    )現時点では予想外でした。

    NewURLループ内で展開すると、内部の括弧が壊れているようです。

    • 簡単な解決策は、次のcallトリックを使用して拡張を遅らせることです。

      call echo %%NewURL%%
      
    • または:

      setlocal enableDelayedExpansion & echo !NewURL! & endlocal
      
    • または、閉じ括弧を次のように二重エスケープします^^setループ内の展開された値に対して1回ともう1回):

      set NewURL=.............PackageChecksum=""^^)
      
  2. もう1つの問題は、出力ファイル名が入力ファイル名と同じであるが、読み取っているのと同じファイルに出力をリダイレクトできないことです。

    出力名を別のファイルに変更してください。次に、ループが終了した後、元のファイルを置き換えます。

    set inputfile=game.txt
    set outputfile=game.temp.txt
    ...................
    ))>>"%outputfile%"
    move/y "%outputfile%" "%inputfile%"
    
  3. また、新しい文字列の順序を変更して、見つかった行の後に印刷するには、内側のループ内の2行を入れ替えるだけです。

    echo %%a 
    if "%%~a"=="[/Script/MyGame.Mode]" call echo %%NewURL%%
    

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テキストファイルを検索し、バッチファイルを使用して特定の文字列が見つかったときに追加します

分類Dev

バッチ-テキストファイルで文字列を検索し、全行を削除します

分類Dev

テキストファイルの行で文字列「-date = 8/27/2015」を検索し、その行を別のファイルに書き出すためのバッチファイル

分類Dev

バッチで文字列を区切り文字でファイル内の新しい行に分割します

分類Dev

テキストファイル内の文字列を検索するメソッド。次に、特定の制限まで次の行を取得します

分類Dev

2つのテキストファイルで共通の文字列を検索するバッチファイル

分類Dev

バッチファイル-文字列を検索し、次の単語を新しいファイルにコピーします

分類Dev

バッチ-テキストファイルで指定された文字列を検索し、見つかった場合は変数を1に設定します

分類Dev

テキストファイルで2つの文字列を検索し、バッチスクリプトを使用して見つかった2つの文字列のいずれかに作用する方法

分類Dev

変数に文字列が含まれているかどうかを検出し、その文字列の後の単語をバッチで検索します

分類Dev

特定の行の長さでバイナリ文字列をテキストファイルに出力します

分類Dev

バッチを使用して、テキストファイルから行内の文字列を変更します

分類Dev

テキスト処理-2つのテキストファイル:1つのファイルからブロック行を読み取り、別のテキストファイルの文字列の後に追加します

分類Dev

文字列を引用符で分割し、その後にスペースCMDバッチファイルを続ける

分類Dev

ファイル内の文字列の出現を検索し、バッチファイルを介して「ファイル名-カウント」を表示します

分類Dev

VBScript-csvテキストファイルで文字列を検索し、次の2つの文字列を配列にマップして、結果をメッセージボックスに表示します

分類Dev

VBScript-csvテキストファイルで文字列を検索し、次の2つの文字列を配列にマップして、結果をメッセージボックスに表示します

分類Dev

テキストファイルの最後のn行を新しいテキストファイルにコピーするバッチファイル

分類Dev

Perl:特定の文字列の後に混合テキストとバイナリファイルを分割します

分類Dev

大きなテキストファイルからすべての文字列を抽出しますバッチ

分類Dev

テキストファイル内の文字列を検索します。次に、次の行を取得し、インデックスとサブストリングで分割する必要があります

分類Dev

-rスイッチを使用せずにgrepを使用して、親フォルダーのサブフォルダー内のファイル内のテキスト文字列を検索するにはどうすればよいですか?

分類Dev

テキストファイルで文字列を検索する-バッチファイル

分類Dev

ファイルで文字列を検索してから、追加の文字列とフォーマット(awk、sed、またはpython)を使用して印刷しますか?

分類Dev

文字列C#クラスファイル(.cs)で文字のセットを検索します

分類Dev

バッチファイルを使用して、文字列を検索し、特殊文字に置き換えます

分類Dev

行インデックスのあるパターンの後に新しい文字列を挿入し、新しいファイルに書き込みます

分類Dev

Python:バッチcsvファイル内の文字列を検索して置換します

分類Dev

検索文字列の前行と次行をテキストファイルに出力するバッチスクリプト

Related 関連記事

  1. 1

    テキストファイルを検索し、バッチファイルを使用して特定の文字列が見つかったときに追加します

  2. 2

    バッチ-テキストファイルで文字列を検索し、全行を削除します

  3. 3

    テキストファイルの行で文字列「-date = 8/27/2015」を検索し、その行を別のファイルに書き出すためのバッチファイル

  4. 4

    バッチで文字列を区切り文字でファイル内の新しい行に分割します

  5. 5

    テキストファイル内の文字列を検索するメソッド。次に、特定の制限まで次の行を取得します

  6. 6

    2つのテキストファイルで共通の文字列を検索するバッチファイル

  7. 7

    バッチファイル-文字列を検索し、次の単語を新しいファイルにコピーします

  8. 8

    バッチ-テキストファイルで指定された文字列を検索し、見つかった場合は変数を1に設定します

  9. 9

    テキストファイルで2つの文字列を検索し、バッチスクリプトを使用して見つかった2つの文字列のいずれかに作用する方法

  10. 10

    変数に文字列が含まれているかどうかを検出し、その文字列の後の単語をバッチで検索します

  11. 11

    特定の行の長さでバイナリ文字列をテキストファイルに出力します

  12. 12

    バッチを使用して、テキストファイルから行内の文字列を変更します

  13. 13

    テキスト処理-2つのテキストファイル:1つのファイルからブロック行を読み取り、別のテキストファイルの文字列の後に追加します

  14. 14

    文字列を引用符で分割し、その後にスペースCMDバッチファイルを続ける

  15. 15

    ファイル内の文字列の出現を検索し、バッチファイルを介して「ファイル名-カウント」を表示します

  16. 16

    VBScript-csvテキストファイルで文字列を検索し、次の2つの文字列を配列にマップして、結果をメッセージボックスに表示します

  17. 17

    VBScript-csvテキストファイルで文字列を検索し、次の2つの文字列を配列にマップして、結果をメッセージボックスに表示します

  18. 18

    テキストファイルの最後のn行を新しいテキストファイルにコピーするバッチファイル

  19. 19

    Perl:特定の文字列の後に混合テキストとバイナリファイルを分割します

  20. 20

    大きなテキストファイルからすべての文字列を抽出しますバッチ

  21. 21

    テキストファイル内の文字列を検索します。次に、次の行を取得し、インデックスとサブストリングで分割する必要があります

  22. 22

    -rスイッチを使用せずにgrepを使用して、親フォルダーのサブフォルダー内のファイル内のテキスト文字列を検索するにはどうすればよいですか?

  23. 23

    テキストファイルで文字列を検索する-バッチファイル

  24. 24

    ファイルで文字列を検索してから、追加の文字列とフォーマット(awk、sed、またはpython)を使用して印刷しますか?

  25. 25

    文字列C#クラスファイル(.cs)で文字のセットを検索します

  26. 26

    バッチファイルを使用して、文字列を検索し、特殊文字に置き換えます

  27. 27

    行インデックスのあるパターンの後に新しい文字列を挿入し、新しいファイルに書き込みます

  28. 28

    Python:バッチcsvファイル内の文字列を検索して置換します

  29. 29

    検索文字列の前行と次行をテキストファイルに出力するバッチスクリプト

ホットタグ

アーカイブ