
¿Existe alguna forma de encontrar el directorio de un archivo ("example.txt") y luego, si encuentra el archivo, abrir el directorio (como "c:\example\sub\") en cmd (o vb)? por supuesto, buscando en todas las particiones, no solo en "C:\".
Respuesta1
Ejecute el siguiente comando desde la raíz de cada una de sus unidades.
for /f "delims=" %a in ('dir /s /b example.txt') do explorer %~dpa
El comando anterior encontrará todos los archivos llamados "example.txt" y luego ejecutará el explorador en el directorio donde se encuentran.
Si desea utilizar un archivo por lotes, cada uno %
debe reemplazarse por %%
:
for /f "delims=" %%a in ('dir /s /b example.txt') do explorer %%~dpa
Para obtener una lista de unidades:
for /f "skip=1 delims=" %a in ('wmic logicaldisk get caption') do @echo %a
En un archivo por lotes:
for /f "skip=1 delims=" %%a in ('wmic logicaldisk get caption') do @echo %%a
Poniéndolo todo junto en un archivo por lotes:
for /f "skip=1 delims=" %%a in ('wmic logicaldisk get caption') do (
cd %%a
cd \
for /f "delims=" %%b in ('dir /s /b example.txt') do explorer %%~dpb
)
Para parar después del primer partido:
for /f "skip=1 delims=" %%a in ('wmic logicaldisk get caption') do (
cd %%a
cd \
for /f "delims=" %%b in ('dir /s /b example.txt') do (
explorer %%~dpb
exit
)
)
Respuesta2
Esto ubicará todos los archivos con las extensiones dadas en el directorio de trabajo actual y todos los subdirectorios:
dir *.cpp *.h *.java /b/s
Esto servirá para archivos que comiencen con "pyth".
dir pyth*
Puedes ampliar este ejemplo.
Para abrir la ubicación del archivo (es decir, la carpeta), puede cd
acceder al resultado y escribir:
explorer .
o
start .
Si no desea utilizarlo cd
, puede pasar la ubicación del archivo dir
al comando explorer
o start
.
Para adaptar esto en un bucle for para cada unidad montada, consulte esta publicación de Stackoverflow:
https://stackoverflow.com/questions/5709189/batch-script-to-find-drive-letter-of-a-mounted-device