![So erstellen Sie in der Eingabeaufforderung einen Ordner mit demselben Namen wie eine Datei (Unterordner rekursiv verwenden)](https://rvso.com/image/1313320/So%20erstellen%20Sie%20in%20der%20Eingabeaufforderung%20einen%20Ordner%20mit%20demselben%20Namen%20wie%20eine%20Datei%20(Unterordner%20rekursiv%20verwenden).png)
Ok, ich habe über 15.000 Dateien, mit denen ich das machen muss.
Ich habe Folgendes versucht. Mein Stammverzeichnis ist C:\asf>
der Befehl:for /r %x in (*.asf) do aifdump -hr "%x" "%CD%"
aber die Dateien gehen in mein Stammverzeichnis und werden überschrieben.
Die Syntax für aifdump ist aifdump.exe [Option] [ASF_path] [Texture_dump_path] Jede Methode zur Behebung dieses Problems ist in Ordnung, auch wenn Sie Python oder ähnliches verwenden. Danke für Ihre Hilfe
hier ist ein Beispiel, falls Sie damit arbeiten müssen:http://www.mediafire.com/?e9jwa3tkedilcy5
danke für eure Hilfe Michael und Bob. Wenn ich den Befehl ausführe, passiert Folgendes
C:\asf>for /r %x in (*.asf) do aifdump -hr "%x" "%~dpnx"
C:\asf>aifdump -hr "C:\asf\9\0.asf" "C:\asf\9\0"
Texture 0.dds : 2.00 KB
und dann stürzt aifdump ab. ich habe herausgefunden, dass wenn ich den Ausgabeordner vorher erstelle
Wenn ich den Befehl ausführe, funktioniert es. Wie kann ich den Befehl also überarbeiten, um
die benötigten Verzeichnisse vor dem Ausführen des Befehls für aifdump.
Ich habe es herausgefunden, ich musste nur ändern aifdump -hr
zumkdir
nochmals vielen Dank für eure Hilfe
Antwort1
%CD%
gibt immer das Verzeichnis zurück, in dem Sie sich beim Ausführen des Befehls befanden; in diesem Fall ist das C:\asf
'. Wenn ich Ihre Frage richtig verstehe, möchten Sie, dass jeder von ihnen in ein separates Verzeichnis geht? In diesem Fall müssen Sie nur diesen Verzeichnisnamen in Ihren Befehl einbauen.
Beachten Sie jedoch, dass Siekann nichteine Datei und einen Ordner mit dem gleichen Namen und dem gleichen übergeordneten Pfad haben; wenn Sie beispielsweise eine Datei mit dem Namen haben C:\asdf\asdf.asf
,kann nichtErstellen Sie auch einen Ordner mit einem Namen, C:\asdf\asdf.asf
da der Pfad mehrdeutig wäre.
Die einfachste Möglichkeit wäre, die Dateierweiterung zu entfernen. Dies for
kann der folgende Befehl für Sie erledigen:
for /r %x in (*.asf) do aifdump -hr "%x" "%~dpnx"
HINWEIS: %~dpnx
ist eine Verkettung von drei Modifikatoren und gibt das Laufwerk, den Pfad und den Namen (ohne Erweiterung) des in der Variablen x enthaltenen Dateinamens an.
Antwort2
Sie möchten also, dass sich der Ausgabepfad an derselben Stelle befindet wie die Quelldatei?
for /r %x in (*.asf) do aifdump -hr "%x" "%~dpx"
Dies %~
ist ein spezieller Modifikator, siehe for /?
. Wenn %x
ist C:\asf\blah\bleh\file.asf
: dp
zeigt Laufwerk ( C:
) und Pfad ( \asf\blah\bleh\
) an, wodurch C:\asf\blah\bleh\
.