Windows 7-Batchdatei zum Erstellen eines Verzeichnisses

3127
Calvin

Ich hatte eine einfache Batchdatei, die ich in Windows XP verwenden würde, um eine Reihe von Unterordnern innerhalb eines Ordners zu erstellen. Ich hatte es als Rechtsklick-Kontextmenü eingerichtet, sodass ich die Stapeldatei ausführen konnte, wenn ich mit der rechten Maustaste auf einen Ordner in Windows Explorer geklickt habe, und die 10 spezifischen Ordner darin erstellt hätten.

Ich habe dieselbe Stapeldatei nach Windows 7 verschoben. Ich kann die Stapeldatei manuell ausführen und funktioniert einwandfrei. Wenn Sie sie jedoch über das Kontextmenü mit der rechten Maustaste ausführen, werden die Ordner alle im Verzeichnis \ Windows \ System32 \ erstellt im kälteren Bereich, auf den ich mit der rechten Maustaste geklickt hatte.

Ich weiß, dass das "Current Directory" in Windows XP verwendet wurde, um den Wert des Ordners mit der rechten Maustaste zu tragen. In Windows 7 scheint sich der Current Directory-Wert in den System32-Ordner zu ändern.

Ich habe versucht, das aktuelle Verzeichnis zu lesen, auf das die Maus mit der rechten Maustaste geklickt hat, aber diesen Wert nicht finden. "CD" ist der Ordner "System32" zu Beginn der Stapelverarbeitung.

Irgendwelche Vorschläge?

2
Wie fügen Sie es dem Rechtsklick-Menü hinzu? nhinkle vor 13 Jahren 0
Verwenden Sie relative oder absolute Pfade im Skript? Windows 7 hat viele Pfade geändert, daher kann es sein, dass sich der ausführende Batchdatei-Benutzer standardmäßig befindet, wenn er den Pfad nicht finden kann. beatgammit vor 13 Jahren 0
Es würde helfen, wenn Sie das Skript selbst veröffentlichen würden. Ich habe das Gefühl, dass es mit den in der Datei angegebenen Pfaden zu tun hat und wo sich die Batch-Datei befindet. Es hat wahrscheinlich auch viel mit den genauen Registrierungseinträgen zu tun, die verwendet wurden, um es im Kontextmenü der rechten Maustaste verfügbar zu machen. In Batch ist% CD% der Pfad, unter dem die Batchdatei ausgeführt wird. MaQleod vor 13 Jahren 0

1 Antwort auf die Frage

0
Joey

Sie können den commandEintrag in der Registrierung ändern, um einen Parameter hinzuzufügen:

C:\Users\Me\Batches\make_dir.cmd "%1" 

und dann diesen Parameter in der Batchdatei verwenden:

cd /d "%1" md SomeDirectory md SomeOtherDirectory 

Ich denke, dass das Arbeitsverzeichnis des Prozesses, der für einen Shell-Befehl gestartet wird, nie wirklich angegeben wurde. Es könnte also alles sein. Und in Windows 7 wurden Bibliotheken eingeführt, die wahrscheinlich dazu führen könnten, dass sich Ordner in »Nicht-Pfaden« befinden.

Meine Registrierungseinträge waren einfach HKCR \ Directory \ Shell \, wo ich den Schlüssel "CreateFolders" und den Befehl hinzugefügt, der auf die Batchdatei zeigt. Es funktioniert, aber es werden nur die Ordner im System32-Verzeichnis abgelegt. Der Ordner "Aktuelles Verzeichnis" ist nicht der Ordner, auf den ich mit der rechten Maustaste klickt. Dies ist, was WinXP früher getan hat. Es gibt keine Pfade im Skript, nur MD-Befehle, also ein sehr einfaches Skript. Calvin vor 13 Jahren 0
Der Vorschlag von Joey hat funktioniert. Vielen Dank. Cal Calvin vor 13 Jahren 0