Ich habe eine Batch-Datei, wo ein Benutzer einen Pfad zu einer Datei eingibt und ich extrahiere den Dateinamen Formular diesen Pfad.Batch: Verketten Variable und Zeichenfolge, um Ausgabepfad
Ich benutze diesen Dateinamen, um einen Ordner mit dem gleichen Namen zu erstellen.
In diesem Ordner möchte ich eine log.txt-Datei erstellen, die der Prozess, den ich in meiner Batch-Datei anrufe, seine Protokollnachrichten schreiben kann.
Hier ist der Code:
set /p pathFoFile="Enter path fo file: "
FOR %%i IN ("%pathFoFile%") DO (
set outputFolder=%%~ni
)
someprocess -p1 blabla -p2 blabla -p3 %outputFolder% > %outputFolder%\log.txt
Der letzte Teil, %outputFolder%\log.txt
, scheint das Problem zu sein, da es funktioniert, wenn ich
jedoch nur > log.txt
setzen, wenn ich dieses Echo:
echo %outputFolder%\log.txt
es druckt den richtigen Pfad.
Wie kann ich den Ordnernamen verwenden und diese log.txt-Datei erstellen?
EDIT
Der Weg, den ich könnte wie folgt aussehen erhalten:
..\some\folder\thefile.egf
oder nur
thefile.egf
oder ein absoluter Pfad.
ich extrahieren die
thefile
und würde gerne nennen:
someprocess -p1 blabla -p2 blabla -p3 thefile > thefile\log.txt
der Ordner thefile
enthält log.txt
sollte auf die Batchdatei relativ erstellt werden. Im Pfad befinden sich keine Laufwerkbuchstaben.
Der Fehler, den ich bekomme, wenn %outputFolder%\log.txt
oder "%outputFolder%\log.txt"
verwendet wird, ist, dass das System den Pfad nicht finden kann.
Ich versuchte dieses genaue Skript mit 'dir' anstelle von' someprocess' und es hat gut funktioniert. Enthält der eingegebene Pfad den Laufwerksbuchstaben und keinen abschließenden Schrägstrich? – leetibbett
Ich habe meine Frage bearbeitet. – user3813234
Ich denke, ich habe es: Der Ordner wird durch den Prozess erstellt. Und der Vorgang benötigt etwas Zeit, um den Ordner zu erstellen. Und wenn ich> folder/log.txt mache, wurde der Ordner noch nicht erstellt ... Das ist es wahrscheinlich. – user3813234