web-dev-qa-db-ja.com

テキストファイルの最後の行の最後の単語を抽出するスクリプト

Findstr結果クエリの最後の単語を抽出しようとしています

私が実行するコマンド

findstr /i %1 x:\itlogs\who_when.txt | findstr /i %2

私が得る結果

12/02/2018 10:17:58     SmithS         Steve Smith                     B0K9VY1
13/02/2018 09:29:13     SmithS         Steve Smith                     B0K9VY1

結果から必要なのは、最後の単語B0K9VY1なので、SCCM RemoteControl $computernameを実行できます。

常にが私のfindstrクエリの結果の最後の行の最後の単語になります)

2
Chris Page

結果から必要なのは、最後の単語B0K9VY1です。

次のバッチファイルと微調整を試してみてください。

@echo off
setlocal enabledelayedexpansion
for /f "tokens=6" %%i in ('findstr /i %1 x:\itlogs\who_when.txt ^| findstr /i %2') do (
  set last_Word=%%i
  SCCM RemoteControl !last_Word!
  )
endlocal

しかし、すべての行ではなく、最後の行の最後の単語だけが必要です。

移動echo !last_Word!次のようにforループの外側:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=6" %%i in ('findstr /i %1 x:\itlogs\who_when.txt ^| findstr /i %2') do (
  set last_Word=%%i
  )
SCCM RemoteControl !last_Word!
endlocal

参考文献

1
DavidPostill