WHICH NOTEPAD
E vai dizer onde está localizado o NOTEPAD.EXE e se colocar como parâmetro por exemplo:
WHICH DEL
Vai retornar dizendo que é um comando interno. Este é uma batch que disponibilizo para todos conhecerem que acho que poderá ser útil em algumas ocasiões onde executamos algo e que está repetido em outro lugar que esteja utilizando a variável PATH do sistema. Claro que não irá ter sentido utilizar o utilitário com o caminho completo do arquivo, mas ele funciona bem e é interessante a técnica utilizada.
Código: Selecionar todos
@echo off
rem Windows 2000/XP version of WHICH.BAT
rem Copyright 2004 (c) Richard Pasco
rem Known limitation: Fails if PATH includes quotation marks
rem Check Syntax
if %1.==. (
echo Syntax: %0 command
goto end
)
rem DOSKEY macros supersede internal commands
for /f "tokens=1,* delims==" %%v in ('doskey.exe /macros') do (
if /i %%v==%1 (
echo "%%v" is a DOSKEY macro for "%%w"
goto end
)
)
rem Check Internal Commands
for %%i in (ASSOC BREAK CALL CD CHCP CHDIR CLS COPY COLOR DATE DEL DIR
ECHO ENDLOCAL ERASE EXIT FOR FTYPE GOTO IF MD MKDIR PATH PAUSE POPD
PUSHD PROMPT RD REM REN RENAME RMDIR SET SETLOCAL SHIFT START TIME
TYPE VER VERIFY VOL) do (
if /i %1==%%i (
echo %%i is an internal command
goto end
)
)
rem Look in the currend directory, then on the path
set which_temp=.;%path%
:loop
for /f "tokens=1,* delims=;" %%p in ("%which_temp%") do (
set which_temp=%%q
for %%e in (%pathext%) do (
if exist "%%p"\%1 (
for %%n in (%1) do (
if /i %%~xn==%%e (
set result="%%p\%1"
goto found
)
)
)
if exist "%%p\%1%%e" (
set result="%%p\%1%%e"
goto found
)
)
)
if not "%which_temp%"=="" goto loop
echo Command "%1" not found.
goto end
:found
set which_temp=
rem Fix capitalization of found file
for %%r in (%result%) do echo %%~fr %%~tr %%~zr bytes
set result=
:end