ディレクトリに多数のTSVファイルがあり、すべての行に追加の列としてファイル名を追加したいと思います。たとえば、私のデータは次のようになります。
前
ファイル名: snapper_User_list.txt
Username group
user1 admin
user2 users
ファイル名: marlin_User_list.txt
Username group
root admin
sql admin
私の理想的な状態は、次のような1つのテキストファイルがあることです。
後
ファイル名: output.txt
user1 admin snapper
user 2 users snapper
root admin marlin
sql admin marlin
今のところ、MSWindowsでこれを完了する必要があります。
以下のスクリプトは機能していますが、出力にはファイル名全体が表示されます。
Rem Rename the files by just using the name before the underscore.
for /f "tokens=1* delims=_" %%i in ( 'dir *.txt /b' ) do (
rename %%i_%%j %%i.txt
)
Rem Combine the files.
FOR %%I IN (*.txt) DO (
FOR /f "tokens=*" %%a IN (%%I) DO (
echo %%a%TAB%%%I>>combined.txt
)
)
それはかなり醜いコードです。
ありがとう。(更新-私のコードを更新)