0

.txt次のファイルを想像してください。

Example.txt

Row    Column1    Column2    Column3 <br>
1       aaa         bbb        ccc<br>
2       ddd         eee        fff

コマンドラインを使用してテーブルの値を取得するにはどうすればよいですか?

元。: (Row=2, Column2) は値「eee」を返します。
元。: (Row=1, Column3) は値「ccc」を返します。

私は試しfindstrていますが、それを実装する方法がわかりません。

4

1 に答える 1

0

行情報が実際にファイルにあると仮定し、値にスペースが含まれていないと仮定します。

@echo off
call :getValue  2  Column2  "Example.txt"
call :getValue  1  Column3  "Example.txt"
call :getValue  0  Column1  "Example.txt"
call :getValue  1  DoesNotExist  "Example.txt"
exit /b

:getValue
setlocal
<%3 set /p "header="
set token=0
for %%C in (%header%) do (
  set /a token+=1
  if %%C==%2 goto columnFound
)
echo Column %2 not found in %3
exit /b

:columnFound
for /f "tokens=%token%" %%A in ('findstr /blc:"%1 " %3') do (
  echo %3 (Row=%1, %2^) = %%A
  exit /b
)
echo Row %1 not found in %3
exit /b

結果

"Example.txt" (Row=2, Column2) = eee
"Example.txt" (Row=1, Column3) = ccc
Row 0 not found in "Example.txt"
Column DoesNotExist not found in "Example.txt"
于 2012-12-06T00:01:37.337 に答える