2015-02-04 16 views
5

Ich würde in der Lage sein, Dateien auf einer Windows-Maschine mit DOS anstelle der GUI-Schnittstelle zu suchen. Unter Linux verwende ich zum Beispiel:DOS-Äquivalent von Unix "finden" Befehl?

finden. -name "* .c" -exec grep -Hn "sqlcommand" {} \;

Gibt es etwas Ähnliches mit ms-dos?

Danke.

+0

ich Windows nie ernsthaft verwendet (Ich habe gehört, dass Windows einige [PowerShell] (http://en.wikipedia.org/wiki/Windows_PowerShell) hatte, die einfacher zu benutzen sind als die alte DOS-Befehlszeile. Sie können Windows verwenden, ohne eine DOS-Befehlszeile zu verwenden. –

+1

Dies sollte bei http://superuser.com gefragt werden. – sashoalm

+2

Ich fand die Antwort, die ich hier suchte: http://stackoverflow.com/questions/6285148/windows-equivalent-for-unix-find-command-to-search-multiple-file-types – Lambart

Antwort

3

Nach langer Zeit mit Unix-Systemen arbeiten ich einige Skripte unter Windows machen musste. Für ernsthaftes Scripting ist Powershell das Werkzeug, das Sie verwenden sollten. Sie können Internet mit Schlüsselwörtern wie powershell find string in file, oder anderen Kombinationen suchen und Sie finden viele Informationen. Das ist das Problem, ein einfacher Einzeiler wie

get-childitem C:\yourdir -include *.c -recursive |Select-String -pattern sqlcommand 

werden Ihnen nicht viel helfen. Sie müssen die PowerShell-IDE finden, die unterschiedliche Syntax lernen und versuchen, diese neuen Dinge zu lieben/zu akzeptieren.

für eine Studie mit Powershell Bereiten Sie, wenn Sie mehr diese Dinge oft tun wollen, oder versuchen, eine Unix-ähnliche Umgebung auf dem Fenster zu erhalten (Cygwin, oder besser git for windows)

1

Es gibt einen FIND Befehl in DOS, aber es funktioniert ein bisschen anders als find in der Linux-Shell.

Syntax: FIND [/V] [/C] [/N] [/I] "string" [[drive:][path]filename[...]]

Wo:

/V Zeigt alle Linien die angegebene Zeichenfolge enthält.

/C Zeigt nur die Anzahl der Zeilen an, die den String enthalten.

/N Zeigt Zeilennummern mit den angezeigten Zeilen an.

/I Ignoriert den Fall von Zeichen bei der Suche nach der Zeichenfolge.

https://en.wikipedia.org/wiki/Find_%28command%29

+2

Aber das 'FIND' ist eher wie Linux 'fgrep' –

2

Diese eine Kombination von zwei DOS erfordert Befehle:

  • FOR /F ["options"] %variable IN ('command') DO command [command-parameters]

    und

  • DIR /B /O:N /W *.c (dies ist die 'command' im FOR Befehl oben erwähnt)

einen CMD-Skript erstellen, wie folgt:

http://unxutils.sourceforge.net/

:

@ECHO OFF 

FOR /F %%B IN ('DIR /B /O:N /W *.cs') DO (
    findstr /I /N /C:"sqlcommand" %%B 
) 

OR, sondern nur den find in dieser Reihe von Unix-Befehl Ports gefunden Befehl oder

http://sourceforge.net/projects/unxutils/

(beide Links sollten das gleiche Projekt sein)