1

2 つの .txt ファイルを 1 行ずつ比較しようとしています。しかし、問題は、最初のファイルの最初の 10 行の各行の最初の 9 文字の後に行ごとに比較を開始したい最初のファイルと 2 番目のファイルです。部分文字列を抽出できることをどこかで読みましたが、部分文字列の長さ (~start,length) を指定する必要がある形式しか見たことがありません。私の場合、各行の長さは異なります。どうすればこれを達成できますか?

 < !logPath! (
 FOR /F "tokens=*" %%A in (%refLogPath%) DO (
      set logLine=
      set /p logLine=
      set refLogLine=%%A
      echo !logLine!
      echo !refLogLine! 

      REM check logLine against refLogLine(ENG-REF.log)
  REM skip 1st 9 chars of each line
      if NOT !logLine!==!refLogLine! (

     set flag=false
         echo !logLine!
 ) else (
 set flag=true
  echo !flag!
)
4

1 に答える 1

2

この種の処理を行うには、バッチ以外のものを使用することを検討する必要があります。

でも本当に続けたいなら…

SET コマンドのヘルプ ドキュメントを参照してください。コマンド プロンプトからorHELP SETを入力します。SET /?

ドキュメント内では、長さの引数を省略できることがわかります。つまり、文字列の開始位置から末尾までを取得すると、!logline:~9!必要なものが得られます。位置は 0 から始まることに注意してください。

于 2012-06-27T21:08:22.843 に答える