の各行をループしfiles.txt
、ファイルが かどうかを識別し、このcar
情報を に保存するコードを作成しました。これは、 コマンドを使用し、およびのリストを検索することによって実行されます。本質的にコードが設計されている方法では、 の最初の行を取り、 で文字列を見つけることができるかどうかを確認します(そうであればに出力されます) で文字列を検索します(文字列が で見つかった場合は に出力されます)に)、文字列が car.txt または のいずれにも見つからない場合、テキストはに出力されます。boat
neither
SendType.txt
findstr
boat.txt
car.txt
files.txt
car.txt
car
SendType.txt
boat.txt
boat.txt
boat
SendType.txt
boat.txt
neither
SendType.txt
現在、コードは文字列行全体を検索しています。11111_2222-22_2010-09-09_10-24-20.zip
各文字列は( 11111
=ID、2222-22
=model、2010-09-09
=date、10-24-20
=transaction ID)に似ています。
行全体を検索する現在の findstr 行を置き換えて、日付部分を除く文字列全体を検索したいと思います。入力されているファイルの例とともに、参照用に以下のコードを添付しました。前もって感謝します!
@echo off
FOR /F %%a in (files.txt) do (
findstr %%a car.txt
if errorlevel 1 (
findstr %%a boat.txt
if errorlevel 1 (
echo neither >>SendType.txt
) else (
echo boat >>SendType.txt
)
) else (
echo car >>SendType.txt
)
)
car.txt
11111_2222-22_2010-09-09_10-24-20.zip
11112_2222-11_2011-11-09_10-24-25.zip
boat.txt
11122_1111-22_2012-04-09_11-29-56.zip
11144_3333-11_2011-12-22_06-29-66.zip
files.txt
11122_1111-22_2000-01-01_11-29-56.zip
11144_3333-11_2000-01-01_06-29-66.zip
11155_1212-12_2000-01-01_11-19-69.zip
11111_2222-22_2000-01-01_10-24-20.zip
11112_2222-11_2000-01-01_10-24-25.zip
12345_2233-12_2000-01-01_07-27-44.zip
望ましい出力:
SendType.txt
boat
boat
neither
car
car
neither
UPDATE 10/15 3:00 PM dbenham のコードと解析手法を使用した現在のアプローチは次のとおりです。
@echo off
>SendType.txt (
for /f "tokens=1,2,3,4 delims=_" %%a in (filenames.txt) do (
findstr /c:"%%a_%%b_%%d" sneakernet.txt >nul && (echo sneakernet) || (
findstr /c:"%%a_%%b_%%d" devmed.txt >nul && (echo devmed) || echo tanto
)
)
)