
Tengo los 2 archivos por lotes a continuación que quiero convertir a Powershell.
Tengo bat1.bat asociado con una extensión de archivo, por lo que cuando hago doble clic en esa extensión, se ejecuta bat1.bat y el primer parámetro es el nombre del archivo en el que se hizo doble clic.
¿Por qué utilizar 2 archivos bat? Bueno, si solo uso bat2, aparece una ventana de comando abierta y visible hasta que se sale del programa final. Al usar los 2 archivos por lotes anteriores, solo obtengo un ícono en la barra de tareas (del cual quiero deshacerme). Lo que me lleva a la razón por la que quiero convertirme a Powershell. Quiero poder hacer doble clic en uno de los archivos y que PS abra el programa Access y no tenga ningún ícono ni indicación visual alguna. Entonces parece que mi programa Access es el programa que maneja archivos con esa extensión.
bat1.bat
@echo off
@START /MIN c:\temp\bat2.bat %1
exit
bat2.bat
@echo off
"c:\temp\Test.accdb" /cmd %1
exit
Respuesta1
No estoy frente a una PC para probar esto en este momento, pero ¿no podrías simplemente asociar la extensión del archivo a un bat que ejecute lo siguiente?
@start "Access wrapper" "c:\temp\Test.accdb" /cmd %1
Estoy totalmente a favor de cambiar a PowerShell, pero su archivo por lotes será más rápido inicialmente y, si no recuerdo mal, puede pasar un tipo de archivo conocido (como su archivo accdb) al comando "iniciar" y descubrirá qué hacer. ábralo con (es decir, Access) y luego continúe con la siguiente línea del script (a menos que pase "/wait"). Como no habría una línea siguiente en el script, el script y su ventana simplemente desaparecerían.
Creo que probablemente se podría eliminar el lote por completo con algunas ediciones creativas del registro, pero no estoy en una PC en este momento para probarlo y no quiero que la gente modifique el registro solo con fragmentos no probados en mi memoria.