WHERE - Buscar ejecutables
A veces quieres saber «¿dónde está el ejecutable de este comando?».
El comando WHERE busca la ubicación de los archivos ejecutables con un nombre dado, a partir de los directorios de la variable de entorno PATH.
Uso básico
WHERE nombre_del_comando
Ejemplo
where notepad
Se muestran todas las rutas donde existe un ejecutable llamado notepad.
Es especialmente útil para comprobar a qué versión apunta un comando como python o node en un entorno de desarrollo.
En PowerShell, where es un alias del cmdlet Where-Object, por lo que no funciona como se espera. Ejecútalo con la extensión, por ejemplo where.exe notepad.
WHERE encuentra archivos como ejecutables y scripts. Los comandos internos del símbolo del sistema, como cd y dir, no tienen archivo ejecutable y no aparecen.
Dónde busca WHERE
WHERE busca primero en el directorio actual y después, en orden, en los directorios de la variable PATH. Si omites la extensión, se prueban las de la variable PATHEXT (.exe, .cmd, .bat, etc.).
Opciones principales
| Opción | Descripción |
|---|---|
/R directorio | Busca recursivamente desde el directorio indicado |
/Q | No muestra resultados; solo devuelve un código de salida |
/F | Muestra los nombres de archivo entre comillas dobles |
/T | Muestra el tamaño y la fecha de modificación |
Búsqueda recursiva (/R)
where /R C:\ notepad.exe
Con comodines
where /R C:\Scripts *.cmd

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超 入門

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門
Mostrar tamaño y fecha (/T)
where /T notepad
El tamaño está en bytes. El formato de fecha depende de la configuración regional de Windows.
Comprobar existencia (/Q)
Con /Q no se muestra nada y solo se devuelve un código de salida. Sirve para bifurcar en archivos por lotes.
@echo off
where /Q git
IF NOT ERRORLEVEL 1 (
echo Git está instalado.
) ELSE (
echo No se encontró Git. Revisa el PATH.
)
Ejemplo práctico: comprobar un entorno de desarrollo
@echo off
setlocal EnableDelayedExpansion
echo === Comprobación del entorno de desarrollo ===
echo.
for %%T in (git node python java) do (
where /Q %%T
if !ERRORLEVEL! EQU 0 (
echo [OK] %%T
) else (
echo [NG] No se encontró %%T
)
)
endlocal
Como ERRORLEVEL se consulta dentro de un bucle for, se usa expansión retardada (!ERRORLEVEL!).
Si no se encuentra ningún archivo, WHERE muestra un mensaje de error y devuelve el código de salida 1. En otros errores, como una sintaxis incorrecta, devuelve 2.
Resumen
| Operación | Comando |
|---|---|
| Buscar la ubicación | where nombre |
| Buscar recursivamente | where /R directorio nombre |
| Mostrar tamaño y fecha | where /T nombre |
| Comprobar existencia (silencio) | where /Q nombre |