Editar la extensión de archivo / descriptores de tipo de archivo en Windows con lote

1

Entonces, ¿hay un comando de lote que cambia el texto en la columna "Tipo" en el explorador para un .exe.

por ejemplo, los archivos .bat se conocen como "Archivo de Windows por lotes" en el tipo. Quiero hacer un archivo .disk Tipo "Archivo de almacenamiento de datos masivos", usando Batch.

¿Hay alguna manera?

ZeekPlayz
fuente
1
Vea si mi respuesta aquí ayuda, pero cambie los valores de acuerdo a sus necesidades ... superuser.com/questions/1112867/…
Pimp Juice IT
@PimpJuiceIT hace que establezca un texto elegido en HKCR\.disk (defecto)?
LotPings

Respuestas:

1

Para agregar una nueva extensión a "HKEY_CLASSES_ROOT" deberá ejecutar reg.exe Con derechos elevados.
Es el (default) valor para establecer con el /ve cambiar y /t REG_SZ

reg.exe add "HKEY_CLASSES_ROOT\.disk" /ve /t REG_SZ  /d "Bulk Data Storage File"

Si desea cambiar un valor presente, agregue /f fuerza

Tendrá que cerrar / volver a abrir las ventanas del explorador para que esto tenga efecto.

enter image description here

El siguiente lote se elevará y pedir confirmación si existe el valor, mostrando contenido antiguo / nuevo.

:: Q:\Test\2018\06\16\SU_1331760.cmd
@Echo off& setlocal EnableExtensions DisableDelayedExpansion
:: elevate if neccessary
net file 1>nul 2>&1 || (powershell -ex unrestricted -Command ^
"Start-Process -Verb RunAs -FilePath '%comspec%' -ArgumentList '/c %~f0 %*'"
  goto :eof)
:: Put code here that needs elevation

Set "Key=HKEY_CLASSES_ROOT\.disk"
Set "Dat=Bulk Data Storage File"
Set "Typ=REG_SZ"
Set "OLD="

:: reed present value, and ask for confirmation
for /f "tokens=1,2*" %%A in (
'REG QUERY "%Key%" /VE ^|find /I "REG_SZ" '
) Do Set "OLD=%%C"
If defined OLD (
    Echo=
    Echo do you want to replace:
    Echo Old:%OLD%
    ECHO New:%Dat%
    Echo=
    Choice
    If errorlevel 2 exit /B 1
)
Echo REG ADD "%Key%" /ve /t %Typ%  /d "%Dat%" /f
     REG ADD "%Key%" /ve /t %Typ%  /d "%Dat%" /f
Pause
LotPings
fuente
¿Es necesario añadir powershell? El elevado por emisión también se puede consultar con %errorlevel%.
Biswapriyo
La parte de PowerShell no prueba la elevación, pero reinicia el lote elevado.
LotPings