dir コマンドの各行に文字列を追加してファイル リストを生成する Windows バッチ ファイルが必要です。

dir コマンドの各行に文字列を追加してファイル リストを生成する Windows バッチ ファイルが必要です。

私はバッチファイルしか使用できないInformaticaプラットフォームを使用しています。現在、次のコマンドでファイル名のリストを作成しています。 dir /b /a-d

850_B_4545703_.txt
850_B_003029660_.txt
850_B_069029548_.txt
850_B_188789_.txt
850_C_ENT_1712865_.txt
850_C_ENT_1712871_.txt
850_C_1712877_.txt

しかし、Informaticaがこのリストを使用してファイルを検索するには、フラットファイル接続で使用されるパスを追加する必要があります。

\\jdeappp03\EDI\

私が実現しようとしているのは、以下を出力するバッチ ファイルです。

\\jdeappp03\EDI\850_B_4545703_.txt
\\jdeappp03\EDI\850_B_003029660_.txt
\\jdeappp03\EDI\850_B_069029548_.txt
\\jdeappp03\EDI\850_B_188789_.txt
\\jdeappp03\EDI\850_C_ENT_1712865_.txt
\\jdeappp03\EDI\850_C_ENT_1712871_.txt
\\jdeappp03\EDI\850_C_1712877_.txt

使用してみましたdir /s/b *.txtが、これは絶対パスを与えるため、Informatica のセットアップではファイルを見つけるのに使用できません。

バッチファイルを使用して希望する結果を得る方法はありますか?

答え1

バッチ ファイルでは次のコマンドを使用できます。

for /f "delims=" %%a in ('dir /b /a-d <PATH>') do (echo \\jdeappp03\EDI\%%a)

コマンドの周囲に for ループを使用すると、その出力を反復処理して変数に保存できます%%a。反復処理中に実行したいことはすべて、 の後に記述しますdo

do読みやすくするために改行を使用する場合のみ、後に括弧が必要です。

for /?コマンドの詳細については、Windows cmd で使用してくださいfor

答え2

より短いオプションは次のようになります。

for %%i in ("D:\Path\*.txt")do echo \\jdeappp03\EDI\%%~nxi

関連情報