Führen Sie spezielle Ordner aus

667
Steven Penny

Nach dem Lesen einer Antwort erfuhr ich, dass bestimmte Ordner eine Besonderheit haben

USERPROFILE AKA C: \ Benutzer \ Steven SystemRoot AKA C: \ Windows 

Über das Feld Ausführen können Sie auf alle Unterordner dieser Ordner zugreifen. Zum Beispiel Eingabe Documentswird bringen C:\Users\Steven\Documents. Haben andere Ordner diese Funktion oder kann diese Funktion zu einem Ordner hinzugefügt werden?

6
Neben den integrierten Windows-Verknüpfungen können Sie auch eigene Verknüpfungen erstellen. Erstellen Sie ein Verzeichnis, geben Sie den Pfad in die PATH-Anweisung Ihres Systems ein, erstellen Sie Verknüpfungen zu beliebigen Ordnern, Programmen oder Dateien, geben Sie einen beliebigen Namen an und platzieren Sie sie in diesem Verzeichnis. Wenn Sie RUN öffnen und den Namen eingeben, den Sie der Verknüpfung gegeben haben, gelangen Sie zu dem Ordner, oder öffnen Sie die Datei oder das Programm, auf das die Verknüpfung verweist. music2myear vor 10 Jahren 0

3 Antworten auf die Frage

3
harrymc

Wie Arakel gesagt hat, gibt es hier zwei nicht miteinander verwandte Merkmale:

  1. Umgebungsvariablen, die verwendet werden, wie %variable%zum Beispiel%USERPROFILE%
  2. Befehle, die man beispielsweise ohne eingibt .%...%documents

Eigentlich sind die ersten nur Makros, die Werte haben. Die Syntax %...%konvertiert nur den Variablennamen in Text, und dieser Text wird dann so ausgeführt, als wäre er in das Feld Ausführen eingegeben worden.

Der eingegebene Text wird zuerst in den von der Umgebungsvariablen PATH angegebenen Ordnern und in durchsucht %USERPROFILE%. In diesem Fall muss der gesamte eingegebene Text dem Ordnernamen entsprechen. Beispiele sind hier "Dokumente" für C:\Users\<user>\Documentsoder "Videos" für C:\Users\<user>\Videos.

Wenn ein Ordner mit diesem Namen nicht gefunden wurde, wird das erste in die Box eingegebene Wort als Befehl verwendet, während die folgenden als Parameter betrachtet werden. Wörter, die Trennzeichen wie Leerzeichen enthalten, müssen in Anführungszeichen gesetzt werden.

Wenn der eingegebene Befehlsname nicht mit einem Ordnernamen übereinstimmt, versucht Windows, eine ausführbare Datei im PFAD zu finden, die genau diesen Namen hat. Wenn der Befehl kein Suffix enthält, versucht Windows alle ausführbaren Suffixe wie .exeoder .bat(und einige andere). Es gibt praktisch hunderte Befehlsnamen, die auf diese Weise eingegeben werden können.

Durch die Eingabe calcwird beispielsweise der Windows-Rechner gestartet, bei dem es sich um die ausführbare Datei handelt C:\Windows\System32\calc.exe, da er C:\Windows\System32sich im PFAD befindet.


Man kann auf diese Weise eigene Run-Befehle erstellen:

  1. Win+ R, um das Dialogfeld Ausführen zu öffnen
  2. Geben Sie ein %windir%, um das Windows-Verzeichnis zu öffnen
  3. Alt+ F W SUm das Menü Datei zu öffnen, wählen Sie den Menüpunkt Neu und dann den Menüpunkt Verknüpfung
  4. Durchlaufen Sie den Assistenten, um eine Verknüpfung zum gewünschten Programm oder Ordner zu erstellen
  5. Den Namen, den Sie der Verknüpfung geben, geben Sie in das Feld Ausführen ein, um das Programm zu starten.

Eine andere Methode wird über die Registrierung ausgeführt (nicht empfohlen). Microsoft nennt es Anwendungsregistrierung .

  1. Führen Sie Regedit aus und navigieren Sie zu folgendem Schlüssel:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 
  2. Klicken Sie mit der rechten Maustaste auf die App PathsTaste und wählen Sie den Befehl Neu / Taste.

  3. Geben Sie dem neuen Schlüssel einen Namen mit 2 bis 8 Zeichen gefolgt von .exe
  4. Ändern Sie den Wert, wenn das (Default)Element den vollständigen Pfad zum Programm enthält.

Mit dieser Beispielregistrierungsdatei können Sie beispielsweise ieInternet Explorer in das Feld Ausführen eingeben:

Windows Registry Editor Version 5.00  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ie.exe] @="C:\\Program Files\\Internet Explorer\\iexplore.exe" 
Es ist nicht ganz richtig, in Bezug auf Funktion Nr. 2 anzugeben, dass * das erste in das Feld eingegebene Wort als Befehl verwendet wird, während die folgenden als Parameter betrachtet werden. * Zum Beispiel in meinem Ordner "% userprofile%" habe ich einen Ordner "Mein Ordner" genannt (beachten Sie das Leerzeichen). Wenn ich im Feld Ausführen "Mein Ordner" eingebe, wird der richtige Ordner geöffnet. Ich denke, Ihre zweite Aussage ist vorherrschend: * Wenn der eingegebene Befehlsname mit einem Ordnernamen übereinstimmt, wird dieser Ordner im Explorer ** geöffnet, auch wenn der Ordnername Leerzeichen enthält. *** Twisty Impersonator vor 10 Jahren 0
@ Twisty: Du hast recht - ich habe meine Antwort korrigiert. harrymc vor 10 Jahren 0
2
JosefZ

Windows - Run - Box versucht aufzurufen Shell.ShellExecute Methode (Standardoperation des registrierten Dateitypen) für Datei angegeben von Text in dem Eingabefeld ein, und zwar im aktuellen Verzeichnis, das ist %USERPROFILE%!

Angenommen, wir schreiben MyLoc Setshier und schlagen ein Enter.

Zunächst sollte das Wort MyLocein Befehl sein. Die Shell sucht nach einer ausführbaren Variante, zum Beispiel MyLoc.com, MyLoc.exe, MyLoc.bat, MyLoc.cmd, ... im aktuellen Verzeichnis, dann in den Verzeichnissen von der angegebenen %PATH%Umgebungsvariable, dann für \SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Myloc.exe Registrierungsschlüssel unter HKEY_CURRENT_USERund HKEY_LOCAL_MACHINENesselsucht. Als letzten Ausweg sucht die Shell nach MyLoc SetsOrdnern an denselben Speicherorten (außer der Registrierung). Fehler Datei nicht gefunden ...

Und jetzt versuchen Sie es Local Settings: Es wurde keine ausführbare Datei gefunden Local, sondern ein Ordner mit diesem Namen unter %USERPROFILE%! Da also ein Ordner ein registrierter Dateityp ist und der Standardvorgang für einen Ordner früher " Durchsuchen " war, kann er mit der ShellExecuteMethode ...

Die von Ihnen zitierte Shell.ShellExecute-Methode hat nichts mit C-Programmen zu tun, in denen das Feld Ausführen höchstwahrscheinlich geschrieben ist. Möglicherweise meinten Sie die [ShellExecute-Funktion] (http://msdn.microsoft.com/de-de/library/ windows / desktop / bb762153% 28v = vs.85% 29.aspx), was leider nur im PFAD aussieht. Die Variable% USERPROFILE% wird nur vom Run-Boxprogramm selbst und nicht von der Kern-API von Windows abgefragt. Diese Antwort macht eigentlich keinen Sinn. harrymc vor 10 Jahren 0
@Harrymc Vielleicht ist die Antwort für Sie nicht wirklich sinnvoll, aber Windows (oder Windows Explorer oder die Core-API oder ein anderer Windows-Teil) ** verhält sich ** auf diese Weise! Entschuldigung, ich habe nicht so tief in Windows hineingeschaut; Ich brauche es in diesem Fall nicht ... Ich weiß jedoch, dass es nichts mit der `ShellExecute'-Funktion zu tun hat JosefZ vor 10 Jahren 1
0
w17t

Es scheint, dass die Ausführungsbox nur eine GUI-Version des startBefehls ist, mit dem Standardwert für den /d %userprofile%Schalter, der den Pfad für das Startverzeichnis festlegt

wie jeder andere Befehl reagiert es auf %path%, %pathext%etc spezielle Umgebungsvariablen

Außerdem versteht es das Muster zum direkten Öffnen von Webseiten, z. B. öffnet ctrl+ r(oder start) www.superuser.comdie Website mit der Standardbrowseranwendung, da es weiß, dass das Argument diesmal URL ist

Der interessante Teil dieser Umgebungsvariablen ist die Reihenfolge der Elemente in der Liste, die sie enthalten, da es für das Festlegen der Suchpriorität wichtig ist, und ist wichtig, wenn nach gleichnamigen Dateien oder Verzeichnissen gesucht wird

Das Verhalten der Box * Run * ist kein direkter Ersatz für den Befehl "START". Sie können beispielsweise nicht über die Eingabeaufforderung `start my subfolder` eingeben und einen Ordner mit dem Namen * My Subfolder * öffnen. Stattdessen geben Sie "start" "" mein Unterordner "" ein (die ersten Anführungszeichen sind erforderlich). Twisty Impersonator vor 10 Jahren 0
Die Anführungszeichen sind nur erforderlich, wenn der Name des ** Unterordners ** Leerzeichen enthält (`ascii 32`). Das anfängliche "" "hier dient zum Definieren des Titel des Konsolenfensters, da" start "sein erstes zitiertes Argument als Zeichenfolge für die Definition des Titels interpretiert w17t vor 10 Jahren 0
Sie sind korrekt. Die ersten Anführungszeichen sind nur erforderlich, wenn der Name des Unterordners Leerzeichen enthält. Mein Punkt ist, dass in einem solchen Fall der erste Satz von Anführungszeichen tatsächlich * erforderlich * ist, was die Syntax des Befehls bei der Verwendung von "START" im Vergleich zum Dialogfeld * Run * unterscheidet. Das Feld * Run * ist * also nicht nur eine GUI-Version des START-Befehls. Twisty Impersonator vor 10 Jahren 0