Questo il problema che volevo risolvere: data un’estensione di file (ex: .sldprt di SolidWorks), ottenere il percorso completo (in stile Windows, quindi non abbreviato DOS) del software associato che lo gestisce.
Ho risolto la cosa con questo comando DOS:
for /F "tokens=2 delims== " %f in ('cmd.exe /c ftype SldPart.Document') do set shortname=%~f&&for /F %f in ('dir /b /s %shortname%') do where /R %~dpf %~nf%~xf
il quale, nel mio caso specifico, fornisce questo risultato:
S:\Program Files\SolidWorks Corp\SolidWorks\swShellFileLauncher.exe
Nel caso in cui la tipologia di documento cercata (nel mio caso “SldPart.Document”) non sia nota ma sia conosciuta solo l’estensione (poniamo “.sldprt”), la si può ottenere con:
for /F "tokens=2 delims==" %t in ('assoc .sldprt') do echo %t
Nel caso in cui si desideri fare il tutto in un file batch, ecco un esempio:
@echo off
cls
set fileextension=.sldprt
echo Estensione: %fileextension%
for /F "tokens=2 delims==" %%t in ('cmd.exe /c assoc %fileextension%') do set filetype=%%t
@echo Tipologia File: %filetype%
for /F "tokens=2 delims== " %%f in ('cmd.exe /c ftype %filetype%') do set shortname=%%~f
@echo Nome DOS: %shortname%
@echo Nome Windows:
for /F %%f in ('dir /b /s %shortname%') do where /R %%~dpf %%~nf%%~xf