Im Batch: Liest nur den Dateinamen von einer Variablen mit Pfad und Dateiname

8

Ich bin derzeit auf der Suche nach einer Möglichkeit, eine Variable im Batch zu nehmen und nur den Dateinamen zu analysieren.

Zum Beispiel übergebe ich meine Batch-Datei den Parameter a -s aus einer anderen Anwendung, die anschließend auf meine Quellvariable gesetzt wird. Die Quelldateivariable enthält normalerweise Folgendes: C: \ Programme \ myapp \ Instance.1 \ Data \ filetomove.ext.

Ich nehme an, vom Ende der Variablen bis zum ersten "\" zu lesen und das Ergebnis auf einen neuen Variablen-Dateinamen zu setzen, aber ich konnte den "for / f" -Kommando nicht erfolgreich verwenden.

Jede Hilfe wäre sehr willkommen!

Update: Nur Standard XP oder Windows 2000/2003 verfügbar ... (kann nicht davon ausgehen, dass Resource Kits installiert sind).

    
Michael 18.01.2009, 04:46
quelle

2 Antworten

9

Wenn es als Argument für das Skript eingeht, d. h.% 1,% 2 usw., können Sie nur den Dateinamen und die Erweiterung in eine Variable wie diese extrahieren:

%Vor%

wobei N der Index des Arguments ist. Zum Beispiel gibt dieses Skript nur den Dateinamen des ersten Arguments zurück:

%Vor%     
Dave Ray 18.01.2009, 04:54
quelle
2

Leicht verbesserte Version:

%Vor%

Die zusätzliche Klammer sorgt dafür, dass Sonderzeichen wie "& amp;" bei der Stapelverarbeitung nicht stören.

    
Cyan 27.10.2011 23:33
quelle

Tags und Links