EDIT: avrei dovuto aggiungere, se non è possibile utilizzare il comando WHERE dal prompt dei comandi, controllare la variabile PATH. (Basta usare il comando "path".) Assicurati che C: \ Windows \ System32 sia nel tuo percorso. Ecco dove si trova "where.exe".
DOVE è il comando che stai cercando! DOVE è come un incrocio tra la shell UNIX incorporata "che" e il comando "individuare", in quanto funziona sia per gli eseguibili dei comandi che per i file regolari.
È anche un po 'più complesso di uno di quei due, anche se, in generale, un semplice
WHERE <file>
funzionerà.
È diverso dal comando "individuare" in quanto non sta esaminando l'intero file system. Al contrario, il comportamento predefinito è cercare i file in due posizioni:
- La directory corrente.
- Tutte le directory nella variabile PATH.
Pertanto, qualsiasi comando che è possibile eseguire direttamente da un prompt dei comandi senza specificare la directory, verrà trovato dal comando WHERE. (Perché qualsiasi comando simile è già nell'elenco delle variabili PATH.)
Se si desidera cercare solo nella variabile del percorso di comando, è possibile utilizzare:
WHERE "$path:<search text>"
Se, d'altra parte, si desidera trovare tutte le copie di un file in un albero di directory, è possibile utilizzare:
WHERE /R <Top Level Directory> <search text>
Infine, WHERE troverà i comandi e tutti i file con un'estensione dalla variabile PATHEXT senza includere l'estensione. Tutti gli altri file devono essere specificati esattamente o con caratteri jolly.
Prendiamo ad esempio i file "dxdiag.exe" e "dxdiagn.dll". Nota il seguente comando e il suo output:
WHERE /R C:\Windows dxdiag
C:\Windows\System32\dxdiag.exe
C:\Windows\SysWOW64\dxdiag.exe
C:\Windows\WinSxS\amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_7c8d3f96e7882ec7\dxdiag.exe
C:\Windows\WinSxS\x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_206ea4132f2abd91\dxdiag.exe
Riesce a restituire tutte le versioni di "dxdiag.exe" perché ".exe" è una delle estensioni nella variabile PATHEXT. (Nota: "WHERE dxdiag" avrebbe funzionato anche perché C: \ Windows \ System32 si trova nella variabile PATH.)
WHERE /R C:\Windows dxdiagn
d'altra parte, non restituisce alcun risultato, perché ".dll" non è in PATHEXT.
In questo caso, guarda il risultato che l'aggiunta di un carattere jolly ci dà:
WHERE /R C:\Windows dxdiagn*
C:\Windows\System32\dxdiagn.dll
C:\Windows\System32\en-US\dxdiagn.dll.mui
C:\Windows\SysWOW64\dxdiagn.dll
C:\Windows\SysWOW64\en-US\dxdiagn.dll.mui
C:\Windows\WinSxS\amd64_microsoft-windows-d..iagnostic.resources_31bf3856ad364e35_6.2.9200.16384_en-us_daccd04369b09c70\dxdiagn.dll.mui
C:\Windows\WinSxS\amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_7c8d3f96e7882ec7\dxdiagn.dll
C:\Windows\WinSxS\x86_microsoft-windows-d..iagnostic.resources_31bf3856ad364e35_6.2.9200.16384_en-us_7eae34bfb1532b3a\dxdiagn.dll.mui
C:\Windows\WinSxS\x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_206ea4132f2abd91\dxdiagn.dll
Restituisce correttamente tutte le versioni di dxdiagn.dll.
Per ulteriori informazioni, utilizzare "WHERE /?". Spero che sia di aiuto!