Dateinamen aus Dateiliste in Variable übernehmen

Dateinamen aus Dateiliste in Variable übernehmen

Wir konvertieren derzeit Scheduler. Derzeit kann ich Dateiübertragungen mit Platzhaltern durchführen und dann in einem Postprozess abrufen, was verschoben wurde, und es lesen, um den Dateinamen für die Datei abzurufen, die mit dem Platzhalter verschoben wurde. Mit dem neuen Scheduler, der den Namen aus dem Postprozess abruft, können wir dies nicht mehr tun.

Der Ordner sollte nach der Übertragung nur eine Datei mit diesem Namen enthalten. Der Ordner „C:\Files\“ könnte also beispielsweise Folgendes enthalten:

Rainbow.csv
Document 1079475.pdf
Shapes_20180411.txt

Wenn ich den Dateinamen „Dokument 1079475.pdf“ aus der Liste abrufen und in eine Variable einfügen möchte, wie würden Sie dies mit Batch-Skripten in Windows tun, wenn Sie nur „Dokument*.pdf“ kennen?

Ich habe die folgenden Befehle ausprobiert:

dir "%homedrive%\Files\Document*.pdf" > temp.txt
set /p VAR=<temp.txt
echo %VAR%

Das Ausführen der ersten Zeile kehrt jedoch zur Datei zurück:

 Volume in drive C is OSDisk
 Volume Serial Number is D841-0924

 Directory of C:\Files
 08/01/2016  10:05 PM           128,657 Document 1079475.pdf
               1 File(s)        128,657 bytes
               0 Dir(s)  63,461,928,960 bytes free

Die Variable VAR gibt also zurück

Volume in drive C is OSDisk

Antwort1

Wenn Sie spezifische Suchvorgänge durchführen und das Verzeichnis ohne Header und nur für Dateien verwenden, etwa:

dir /b /A:A "%homedrive%\Files\Document*.pdf" > temp.txt

Derselbe Befehl, den Sie ausprobiert haben, funktioniert und gibt Ihnen nur den Dateinamen (und eine neue Zeile).

dir /? 

gibt Ihnen andere Optionen, die hilfreich sein können

verwandte Informationen