このような同様のエントリを含む大きなテキスト ファイルがあります。
ここでの私の目標は、親フォルダーが存在するかどうかを特定することです。つまり、たとえば /FS7_100x/FILE04 がこのフォルダーの親フォルダーになるかどうかを確認することです: /FS7_100x/FILE04/BU-D/PROJECT CONTROL OFFICE
これら 2 つのパスの関係は、ある時点で同じパスを共有するということです。なぜ私はこれをしたいのですか?これを行うことで、そのパスで使用されているスペースが親フォルダーで既にカウントされているかどうかがわかるためです。
3 番目のフィールドにはファイルシステム パスが入力されます。パスの末尾にスラッシュ / を追加して、各行の各パスを同じファイル、同じ 3 番目のフィールドと比較したいと考えています。つまり: 比較: /FS7_100x/FILE04/BU-D/PROJECT CONTROL OFFICE vs /FS7_100x/FILE04/BU-D/PROJECT CONTROL OFFICE & /FS3_200g/FILE12/BU/AGENCY/GOLDMINE & /FS3_200g/FILE12
たとえば、/FS7_100x/FILE04/ と /FS3_200g/FILE12/ を検索したい
ファイル1
\\FILE04\BUET-PCO;\\SERVER24\OFFICE;/FS7_100x/FILE04/BU-D/PROJECT CONTROL;
\\FILE12\BUAG-GOLDMINE$;\\SERVER24\GOLDMINE;/FS3_200g/FILE12/BU/AGENCY/GOLDMINE;
\\x\a$;\\SERVER24\DFS\somethingelse;/FS3_200g/FILE12;
\\z\o;\\SERVER24\DFS\blah;/FS7_100x/FILE04;
フィールドは「;」で区切られます
このようにして、親フォルダーが既に file1 にリストされていることを確認できます。行末 (別の行に既に含まれている行) にいくつかの単語を追加したいと考えています。 #
望ましい出力:
\\FILE04\BUET-PCO;\\SERVER24\OFFICE;/FS7_100x/FILE04/BU-D/PROJECT CONTROL;Physical path is a subfolder of Line#4
\\FILE12\BUAG-GOLDMINE$;\\SERVER24\GOLDMINE;/FS3_200g/FILE12/BU/AGENCY/GOLDMINE;Physical path is a subfolder of Line#3
\\x\a$;\\SERVER24\DFS\somethingelse;/FS3_200g/FILE12;
\\z\o;\\SERVER24\DFS\blah;/FS7_100x/FILE04;
私がしたこと:
setlocal enableextensions
del lugares.csv
for /f "tokens=1,2,3 delims=;" %%i in (file1.csv) do (
for /f "tokens=*" %%p in ('findstr /N /i /r /C:"%%k/" file1.csv') do (
echo Original %%k;%%i;%%j; --- repeated with Line# %%p >>dupli.txt
)
)
pause
dupli.txt という新しいファイルを作成したくありません。すべてのデータを元のファイル file1.csv に追加したいので、私のソリューションはうまくいきません。