Ich habe eine einfache TXT-Datei (myfile.txt) mit den Namen der 300+ Dateien im selben Verzeichnis. Jede Zeile enthält den Namen einer Datei und jeder Dateinamen Leerzeichen enthält - so etwas wie:Stapel lesen Dateinamen als Variable und dann die Variable in einem anderen Batch-Prozess verwenden
file number one.txt
file number two.txt
file number three.txt
....
file number three hundred and twenty five.txt
ich Batch-Prozess will jede Datei ohne harte Kodierung jeden Dateinamen in meinem Haupt-Batch-Skript (process.bat).
Meine process.bat öffnet und verarbeitet einfach eine Datei (derzeit fest codiert) mit einer Befehlszeilen-App und speichert dann die verarbeitete Datei in einem anderen Verzeichnis, behält aber den ursprünglichen Dateinamen bei.
@echo off
setlocal enableextensions disabledelayedexpansionstart
start prooftool -c "file number one.txt" "/processed/file number one.txt"
Ich muss irgendwie dynamisch „Dateinummer eins.txt“ ersetzen, mit einer Variablen (dh der Dateiname) von myfile.txt und dann schreiben die verarbeiteten Daten in eine neue Datei genau das gleiche wie das Original benannt Datei aber in einem Ordner namens "bearbeitet".
Um die Dateinamen aus MyText.txt las ich versucht:
for /F "tokens=*" %%A in (myfile.txt) do [process.bat] %%A
aber process.bat hat nichts zu verarbeiten.
Ich habe nachgeschlagen, wie man Zeilen aus einer Textdatei in Variablen liest und ich denke, dass die Leerzeichen in den Dateinamen Probleme verursachen !?
Ich verstehe nicht, wo die Variablen gespeichert sind (ich vermute im Speicher?) Auch, wie rufe ich eine Variable von meinem Prozess.bat Skript (Dateinamen sind derzeit hart codiert) und dann wie Rufen Sie die nächste Variable usw. auf, sodass sie alle Dateien im Verzeichnis durchläuft und verarbeitet.
Vielen Dank für Ihre Zeit und Geduld!
Danke. Ich habe das versucht, aber kein Glück. Ich habe meine Beschreibung ein wenig erweitert, um die process.bat – aperr
Diese process.bat fast enthalten arbeitet @echo off setlocal disableDelayedExpansion für/f "tokens = *" %% A in (myfile.txt) tun Starten Sie "" prooftool -c "%% A" "C: \ Benutzer \ Pro \ Desktop \ batch \ processed \ %% A.txt“ aber nur die ersten paar Dateien verarbeitet und gespeichert Ich denke, es ist, weil es Schwierigkeiten hat, mit dem Schreiben der verarbeiteten Dateien auf der Festplatte halten -. Gibt es eine Möglichkeit, es zu verlangsamen andere nach unten als die myfile.txt in kleineren aufzuteilen Listen? Zusätzlich zu den korrekt verarbeitet Dateien, die ich einige 0kb Dateien bekommen gespeichert und es öffnet sich eine Menge cmd Fenster, aber dann scheint es zu verriegelt, und ich habe – aperr
neu zu starten, ich denke, das Lesen und Schreiben auf dem gleichen Laufwerk den Engpass wurde. Ändern das write-Verzeichnis auf ein anderes laufwerk funktionierte und es verarbeitet nun alle dateien. vielen dank für ihre hilfe Magoo! – aperr