2016-07-12 8 views
-2

ich eine vorherige Frage lesen ... hier: Windows equivalent to UNIX pwdLinux-Befehlszeile auf Windows „ls“

Leider, als ich versuchte, das Gleiche wie zu tun, was die Person unten genannten (außer ls.cmd und @echo% dir%), es zeigte nur die Wörter "ECHO ist an." in der Befehlszeile. Ich habe genau dasselbe für pwd getan und es hat funktioniert, aber wieso funktioniert das nicht? Vielen Dank.

Öffnen Sie Notizblock als Administrator an und schreiben:

@ echo% cd%

speichern es in C: \ Windows \ system32 \ mit dem Namen "pwd.cmd" (Vorsicht, nicht zu> speichern pwd.cmd.txt)

Dann haben Sie den Pwd-Befehl.

EDIT: Vielleicht sollte ich neu formulieren. Ich versuche im Grunde, meinen eigenen Windows-Befehl des UNIX-Befehls "ls" zu erstellen, der die Verzeichnisse auflistet (genau wie der Befehl "dir" von Windows). Dies ist ausschließlich für Lernzwecke gedacht, da ich genauso einfach wie ls schreiben könnte, aber ich wollte sehen, warum das nicht funktioniert.

+0

Klingt so, als würden Sie annehmen, dass '%' die Ausführung eines Befehls verursacht. Es tut es nicht. –

Antwort

2
@echo %dir% 

rufen echo ohne Argumente, daher das "Echo auf" -Meldung.

Es funktioniert nicht so. %cd% enthält aktuelles Verzeichnis, es ist ein spezielles env. Variable. dir, auf der anderen Seite ist ein Befehl, der keine env hat. variables Gegenstück (was würde es enthalten?)

Sie müssen die obige Zeile nur durch dir /B ersetzen, um den Befehl aufzurufen. Ausgabe sieht sehr ähnlich aus ls.

1

Ich kann sehen, dass der cd Befehl unter Windows, wenn keine Argumente angegeben werden, zeigt das aktuelle Verzeichnis (anstatt auf das Ausgangsverzeichnis wie unter Linux).

Also versuchen Sie, "CD" selbst dort zu schreiben. Das Echo einer Variablen kann oder kann nicht gut funktionieren.

HINWEIS: Ich habe eine andere Frage beantwortet und möchte benachrichtigt werden, wenn die Frage aktualisiert wurde. Die Sache ist, dass diese Frage ursprünglich keinen zu reparierenden Code hatte und daher das minimale, überprüfbare, vollständige Beispiel fehlte.

+0

Vielleicht sollte ich neu formulieren. Ich versuche im Grunde, meinen eigenen Windows-Befehl des UNIX-Befehls "ls" zu erstellen, der die Verzeichnisse auflistet (genau wie der Befehl "dir" von Windows). Dies ist ausschließlich für Lernzwecke gedacht, da ich genauso einfach wie ls schreiben könnte, aber ich wollte sehen, warum das nicht funktioniert. – Freedom

+0

Die Variable% cd% könnte aus irgendeinem Grund nicht initialisiert sein, also habe ich eine Alternative dazu angeboten. –

+1

Ich bin vielleicht verwirrt, aber diese Verwirrung ist tatsächlich etwas, das mir gewährt wird: Auf Stack Overflow, fragen Sie nicht nach jemand anderem, um Ihren Code zu schreiben. Stattdessen geben Sie Ihren eigenen Code an, der funktionieren kann oder nicht, geben Sie ein Beispiel, wo es nicht funktioniert, und bitten Sie uns, es zu beheben. –