Wie findet man unter Verwendung der Windows CLI (cmd) eine Datei, von der er einen Teil des Namens kennt? Zum Beispiel installiert jede einzelne Windows-Workstation javac an einem anderen Ort. Wie würde man es über die Windows-CLI (cmd) finden?
Googeln Ich sehe Erwähnung nur der Verwendung des Windows Explorer (Dateimanager) GUI oder das Herunterladen einer Freeware-Anwendung. Verfügt Windows nicht über einen integrierten Befehl zum Suchen? Haben die Server-Editionen es? Ich möchte Cygwin oder etwas anderes nicht installieren, dies sind normalerweise nicht meine Maschinen.
windows
command-line
search
locate
dotancohen
quelle
quelle
javac
sollte normalerweise am selben Ort sein ...locate
undupdatedb
--per stackoverflow.com/questions/36841241/…Antworten:
Sie sollten in der Lage sein, das zu tun, womit Sie tun müssen
dir
:Ersetzen Sie [Dateiname] durch den gesuchten Dateinamen. Sie sollten in der Lage sein, Platzhalter zu verwenden. Mit / s werden Unterverzeichnisse durchsucht, sodass Sie bei Bedarf im Stammverzeichnis von C: beginnen und das gesamte Laufwerk überprüfen können.
quelle
javac
das installiert istC:\WINDOWS
...Niemand spricht vom "Wo" -Befehl? Durchsucht die ausführbare Datei im Pfad der aktuellen Umgebung.
quelle
Windos hat die einfachste Antwort. Wenn Sie jedoch die Befehlszeile mögen, sollten Sie sich auch Powershell ansehen. Um dieselbe Art von Suche durchzuführen, die Sie verwenden würden
Was den netten Nebeneffekt hat, in eine handliche foreach-Anweisung gepumpt zu werden und einen Prozess gegen die Suchergebnisse auszuführen.
quelle
gci
oder abgekürzt werdenls
.cmd
, inPowerShell
können Sie mit „Tab“ Vorschläge , um zu sehen, wie in Linux. Es gibt also nicht so viele, die man tippen kann. Und in meinem Fallls
funktioniert PowerShell nicht.Ich habe einfach ein Lokalisierungsprogramm für Windows bekommen . Folgen Sie einfach den Anweisungen zum Lesen und kopieren Sie die DLL-Dateien und die EXE-Datei nach system32.
Die Alternative besteht darin, den Programmpfad der Umgebungsvariablen PATH hinzuzufügen.
Die Idee ist, auf Windows zu lokalisieren, wenn Sie nach etwas "Ähnlichem" suchen. :)
quelle
locate
ist auf meinem Win7-Computer. Es wird beanstandet, dass die Datenbank 435 Tage alt ist, wenn die Installation nicht älter als 3 Monate ist. Undupdatedb
ist nicht enthalten.Die Frage ist etwas mehrdeutig.
Sie möchten eine Datei suchen (im Hauptteil des OP angegeben), möchten aber auch einen Befehl / eine App vom Typ "locate" (im Titel angegeben). Es gibt eine subtile Überlegung mit enormen Auswirkungen. Sie können mit zwei verschiedenen Methoden suchen:
Suche in der Zielbaumstruktur direkt bei jeder Suche (langsam).
Erstellen Sie zuerst eine Datenbank mit der Zielbaumstruktur (möglicherweise zeitaufwändig) und suchen Sie dann die Datenbank (sehr schnell). Die Datenbank muss regelmäßig aktualisiert werden, um bei Suchvorgängen gute Ergebnisse zu erzielen. Siehe http://en.wikipedia.org/wiki/Locate_%28Unix%29 .
Unix
locate
ist vom "Typ 2", aber gemäß dem Aufbau Ihres OPs sind Sie mit jeder der beiden Methoden einverstanden. Darüber hinaus fragen Sie gezielt nach CLI-Optionen.Ich liste unten einige Optionen auf und gebe an, ob es sich um CLI / GUI handelt, gebe 1/2 ein und füge einige Kommentare hinzu.
http://locate32.cogit.net/ (bereits von John T und dann von Cheeku erwähnt ). GUI, Typ 2. Es gibt eine portable Version. Hervorragende Benutzerfreundlichkeit und Konfigurierbarkeit. Sehr ähnlich zu Unix
locate
(was mir sehr gut gefallen hat).Hinweis : Da die
Updatedb
Aktualisierung einer Datenbank unter Unix sehr lange dauert (das hängt natürlich von der Größe des gescannten Baums ab), finde ich daslocate32
sehr schnell. Ich weiß nicht, wie es so viel verbessert werden kann.http://sourceforge.net/projects/winlocate/ CLI, Typ 2.
dir [filename] / s , die Lösung von Windos . CLI, geben Sie 1 ein.
gci ... , die Lösung von OldWolf . CLI, geben Sie 1 ein.
http://gnuwin32.sourceforge.net/packages/findutils.htm CLI, Typ 2.
Alles GUI, Typ?
quelle
Ich habe einen PowerShell-Port für locate und updatedb erstellt. Verwendet SQLite als Backend und verfügt über ein automatisches Installationsprogramm. Gerade
Locates benötigen ca. 300ms / Abfrage.
Dann
und du bist fertig.
https://gallery.technet.microsoft.com/scriptcenter/Invoke-Locate-PowerShell-0aa2673a
quelle
Keine manuelle Installation erforderlich. Siehe http://chocolatey.org
Starten Sie die Shell-Umgebung neu
quelle
Ich weiß, dass dies vor langer Zeit beantwortet wurde, aber dies ist mein Skript zur Simulation der unter Unix / Linux verwendeten Locate-Funktion
Speichern Sie dies als locate.bat und platzieren Sie es in System32 ODER führen Sie es in dem Verzeichnis aus, in dem es gespeichert ist. Nimmt einen Parameter wie diesen "cmd> locate javac.exe"
Der Schalter locate / c (als zweiter Parameter wird die Anzahl der Instanzen gezählt) und locate /? zeigt den Hilfetext an
BEARBEITEN: (Aktualisiertes Skript, übersichtlicher und für eine Vielzahl von Situationen geeignet, z. B. für jeden Suchbegriff, nicht nur für einen Dateinamen)
quelle
Für zukünftige Weltraum-Windows-Historiker: Wir wurden mit Everything Search gesegnet . Picture dmenu + find + mlocate wurde zu einem engen, hübschen kleinen Windows-Dienst mit Cli-Optionen zusammengefasst. Nur dass dieses Ding seinen Index in Echtzeit aktualisiert . Nichts unter Linux kommt dem nahe. Es wird eines der wenigen Male sein, dass Sie sagen: "Ich wünschte, dieser verdammte Kernel wäre etwas Microsofty".
quelle
Die kurze Antwort ist, dass es unter Windows kein genaues Äquivalent gibt . Die Problemumgehung besteht darin, den Befehl dir zu verwenden . Dies ist ein Verzeichnislistenbefehl, der Sonderzeichen unterstützt und wie in der akzeptierten Antwort angegeben verwendet werden kann.
Der Befehl Locate ist auf vielen Unix-ähnlichen Systemen eine indexbasierte Suche. Es funktioniert zusammen mit dem Befehl Updatedb , mit dem Dateisysteme indiziert werden. Da es sich um eine indexbasierte Suche handelt, ist sie in der Regel viel schneller als textbasierte Suchbefehle wie dir und find unter Unix, insbesondere beim Durchsuchen tiefer Verzeichnishierarchien.
quelle
where
ist genau gleichwertig.Mir ist keine CLI-Methode bekannt, die dies unter Windows ermöglicht. Bedenken Sie, dass die Windows-CLI von normalen Benutzern verlassen wurde, sodass sie im Allgemeinen weniger ausgereifte Tools bietet. Ihre beste Wette ist möglicherweise die Verwendung von Gnu
find
in Windows, das Sie von GnuWin32 erhalten können . Wenn Sie ein Skript entwickeln, müssen Sie nur diefind.exe
Abhängigkeiten des Skripts mit einbeziehen (keine Sorge, es ist nicht sehr groß).quelle