Suchen Sie nach dem Befehl zum Ausführen des Dialogs / der Eingabeaufforderung, um das Verzeichnis des aktuellen Benutzers zu öffnen

593
RBT

Wenn ich den Befehl von der Eingabeaufforderung aus eingebe, start .öffnet er einfach das Verzeichnis des aktuellen Benutzers C:\Users\<current user name>in Windows 7. Dieser Befehl funktioniert jedoch nicht von der Windows-Eingabeaufforderung aus. Kann mir jemand mit diesem Befehl helfen, falls vorhanden, um das Verzeichnis des aktuellen Benutzers direkt von der Eingabeaufforderung aus zu öffnen? Derzeit muss ich zuerst die Eingabeaufforderung öffnen, dann muss ich diesen Befehl eingeben, um das gewünschte Verzeichnis in Windows Explorer zu öffnen.

Update : Ich habe festgestellt, dass der start .Befehl von der Eingabeaufforderung nicht immer das Home-Verzeichnis des Benutzers öffnet. Dies geschieht nur, wenn Ihr aktuelles Arbeitsverzeichnis in der Shell-Eingabeaufforderung mit dem Hauptprofilverzeichnis des aktuellen Benutzers übereinstimmt. Wäre ich D:\in meiner Shell-Eingabeaufforderung gewesen, hätte sie sich stattdessen D:\in dem Explorer geöffnetC:\users\<current user name>

1
`start` ist ein interner` cmd'-Befehl, und Internals können nur ausgeführt werden, indem `cmd` aufgerufen wird, um sie auszuführen, wie in` cmd / c start .` oder `cmd / c md NewDir`. AFH vor 7 Jahren 1
@AFH: Deine Antwort ist genau richtig. Sie verdienen es daher, Anerkennung zu bekommen. Geben Sie Ihre Informationen anstelle eines Kommentars in eine Antwort. Dann sollte RBT Ihre Antwort akzeptieren, und Sie erhalten möglicherweise auch andere Stimmen. (Ich hätte es befürwortet, wenn ich es gesehen hätte.) TOOGAM vor 7 Jahren 0
Meine Antwort gelöscht Wie von @TOOGAM zu Recht vorgeschlagen, verdient @AFH die Anerkennung. Es stellte sich heraus, dass der Befehl, der aus dem Dialogfeld Ausführen / Eingabeaufforderung ausgeführt werden soll, der Befehl `` cmd / c start .` ist RBT vor 7 Jahren 0

3 Antworten auf die Frage

2
AFH

Der startBefehl ist intern cmd. Wenn Sie einen Befehl eingeben cmd, wird Folgendes angezeigt:

  • ein ausführbares Programm (normalerweise .exe, aber manchmal mit anderen Erweiterungen);
  • eine Batchdatei ( .batoder .cmd); oder
  • ein interner Befehl, der innerhalb des cmdCodes selbst behandelt wird.

Diese werden vom Explorer und dem Windows-Ausführungsbefehl ( Win+ r) unterschiedlich behandelt: -

  • Eine ausführbare Datei wird als solche erkannt und sofort ausgeführt.
  • Die Erweiterung einer Stapeldatei wird als verknüpft erkannt und cmdist zur Ausführung geplant.
  • Windows erkennt die internen Befehle cmd(oder eines anderen interaktiven Programms) nicht. Wenn Sie einen dieser Befehle in das Befehlsfeld "Ausführen" eingeben, wird der Fehler "Nicht gefunden" angezeigt.

Die cmdinternen Befehle können von der Run-Box aus ausgeführt werden, aber Sie müssen Windows cmdexplizit ausführen . Für Ihren Befehl würden Sie Folgendes eingeben:

cmd /c start . 

Beachten Sie, dass hierbei das aktuelle Verzeichnis für die Ausführungsbefehlsumgebung verwendet wird, nicht Ihr Verzeichnis in cmd, das standardmäßig in Ihrem Heimatverzeichnis gestartet wird.

Die meisten Befehle in der cmdHilfeliste sind intern, obwohl einige, wie find, sortund diskpartsind externe Programme ( find.exeusw.), so gibt es keine Notwendigkeit, diese mit vorangehen cmd /cin dem Feld: Windows sie als Befehlszeilenprogramme erkennen und erstellen Sie eine Befehlsshell, in der sie ausgeführt werden sollen.

Immer, wenn cmdein Befehl ausgeführt werden soll (explizit oder explizit), ist dieser Befehl von kurzer Dauer, sofern der Befehl nicht mit dem Benutzer interagiert, obwohl andere Programme, die während seiner Ausführung gestartet werden, möglicherweise bestehen bleiben (wie beim startBefehl).

Sehr gründliche Erklärung @AFH. Liebte es! Neugierig auf eine weitere Sache, die Umgebungsvariablen ist. Wie kann der Startdialog vordefinierte Pfade öffnen, auf die Umgebungsvariablen wie% programdata%,% appdata%,% windir%,% programfiles% usw. zeigen? Verwendet auch der Ausführungsdialog intern eine Befehlsshell, bevor er die Orte (auf die diese Umgebungsvariablen verweisen) in einem Explorer-Fenster öffnen kann? RBT vor 7 Jahren 0
Nein, es ist keine Befehls-Shell beteiligt. Die in Windows definierten Umgebungsvariablen ("Systemsteuerung" -> "System" -> "Erweiterte Systemeinstellungen" -> "Umgebungsvariablen ...") werden im Windows-Ausführungsfeld sowohl im Befehlspfad als auch in dessen Befehl ersetzt Parameter, ähnlich wie "cmd"; Dasselbe gilt, wenn Sie einen Pfad in Explorer eingeben. In den in der Registrierung definierten Pfaden finden Sie auch zahlreiche Instanzen von Umgebungsvariablen. AFH vor 7 Jahren 0
1
Ajay

Why not simply use environment variable %USERPROFILE% instead? User Profile

There is no need to start any process (CMD.EXE or any) just to open user's default folder.

Zunächst einmal war meine ursprüngliche Annahme, dass der Befehl "start." Bei der Ausführung an der Eingabeaufforderung das Profilverzeichnis des Benutzers öffnet, falsch *. Der Befehl "start." öffnet einfach den aktuellen Shell-Pfad (aktuelles Arbeitsverzeichnis) im Explorer. Wenn Sie gleichzeitig die Eingabeaufforderung von der Eingabeaufforderung aus öffnen, wird standardmäßig das Basisprofilverzeichnis des aktuellen Benutzers geöffnet. und ich lief genau dort 'start.'. Daher habe ich ein falsches Verständnis über den Befehl "Start". RBT vor 6 Jahren 0
Ja. Das ist die Antwort. In der Tat hatte ich später selbst einen anderen Befehl "% homepath%" von der Eingabeaufforderung aus untersucht, der dasselbe tut. Aber ich wollte nie wieder auf diesen Posten zurückkommen. Ich bin nicht sicher, warum es zwei Umgebungsvariablen gibt, die auf dasselbe Verzeichnis verweisen, dh das Profilverzeichnis des aktuellen Benutzers. RBT vor 6 Jahren 0
0
JosefZ

Um eine Auslassung in der (fast erschöpfenden) Antwort von AFH wieder gut zu machen : In einem Windows-Dialogfeld "Ausführen" (das durch Win+ aufgerufen wird r) .würde ein Punkt genau wie empfohlen funktionierencmd /c start .

Ich habe jedoch nicht das genaue Verhalten der Verwendung getestet ., cmd und zwar cmd /Dstandardmäßig in einem anderen Arbeitsverzeichnis, dh wenn das letztere durch einen AutoRun-Befehl aus der Registrierung geändert wird. für Details siehe cmd /?.

Ich stimme zu, dass `.` die gleiche Wirkung hat wie` cmd / c start .`, funktioniert aber nicht auf dieselbe Weise. Dasselbe gilt, wenn Sie `. 'Durch ein anderes Verzeichnis ersetzen. Der Punkt der Frage war jedoch nicht, wie Sie den Explorer in einem bestimmten Verzeichnis starten, sondern warum einige `cmd'-Befehle nicht von Windows ausgeführt werden. AFH vor 7 Jahren 0