
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, do
wenn Sie zur besseren Lesbarkeit Zeilenumbrüche verwenden möchten.
Verwenden Sie for /?
die Windows-Eingabeaufforderung, um mehr über den for
Befehl zu erfahren.
Antwort2
Eine kürzere Option wäre:
for %%i in ("D:\Path\*.txt")do echo \\jdeappp03\EDI\%%~nxi