Benötigen Sie eine Windows-Batchdatei, die jeder Zeile eines Dir-Befehls eine Zeichenfolge hinzufügt, um eine Dateiliste zu erstellen

Benötigen Sie eine Windows-Batchdatei, die jeder Zeile eines Dir-Befehls eine Zeichenfolge hinzufügt, um eine Dateiliste zu erstellen

Ich arbeite mit der Informatica-Plattform, die mir nur die Verwendung von Batchdateien erlaubt. Ich erstelle derzeit eine Liste von Dateinamen mit dem Befehl 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

Damit Informatica diese Liste jedoch zum Suchen von Dateien verwenden kann, muss ich den in der Flatfile-Verbindung verwendeten Pfad hinzufügen.

\\jdeappp03\EDI\

Ich versuche also, eine Batchdatei zu erstellen, die Folgendes ausgibt:

\\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

Ich habe versucht, es zu verwenden dir /s/b *.txt, aber dadurch wird der absolute Pfad zurückgegeben, mit dem mein Informatica-Setup die Dateien nicht finden kann.

Gibt es eine Möglichkeit, mit einer Batchdatei das gewünschte Ergebnis zu erzielen?

Antwort1

Sie könnten den folgenden Befehl in einer Batchdatei verwenden:

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

Wenn Sie eine for-Schleife um den Befehl herum verwenden, können Sie dessen Ausgabe durchlaufen und in der Variable speichern %%a. Alles, was Sie während dieser Iteration tun möchten, kommt danach do.

Klammern sind nur dann erforderlich, dowenn Sie zur besseren Lesbarkeit Zeilenumbrüche verwenden möchten.

Verwenden Sie for /?die Windows-Eingabeaufforderung, um mehr über den forBefehl zu erfahren.

Antwort2

Eine kürzere Option wäre:

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

verwandte Informationen