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