Хочу преобразовать свой bat-файл в Powershell

Хочу преобразовать свой bat-файл в Powershell

У меня есть два пакетных файла ниже, которые я хочу преобразовать в Powershell.

У меня bat1.bat связан с расширением файла, поэтому, когда я дважды щелкаю по этому расширению, выполняется bat1.bat, а первым параметром является имя файла, по которому был выполнен двойной щелчок.

Зачем использовать 2 bat-файла? Ну, если я просто использую bat2, то открываю командное окно и вижу его до тех пор, пока не закроется финальная программа. Используя 2 bat-файла выше, я получаю только значок на панели задач (от которого я хочу избавиться). Что приводит меня к тому, почему я хочу перейти на Powershell. Я хочу иметь возможность дважды щелкнуть по одному из файлов и заставить PS открыть программу Access, не имея значка или какой-либо визуальной индикации вообще. Таким образом, похоже, что моя программа Access — это программа, которая обрабатывает файлы с этим расширением.

Bat1.bat

@echo off
@START /MIN c:\temp\bat2.bat %1
exit

Bat2.bat

@echo off
"c:\temp\Test.accdb" /cmd %1
exit

решение1

Я сейчас не за компьютером, чтобы это проверить, но не могли бы вы просто связать расширение файла с bat-файлом, который запускает следующее?

@start "Access wrapper" "c:\temp\Test.accdb" /cmd %1

Я полностью за переход на PowerShell, но изначально ваш пакетный файл будет работать быстрее, и если я правильно помню, вы можете передать известный тип файла (например, файл accdb) команде "start", и она сама определит, чем его открыть (например, Access), а затем перейдет к следующей строке в скрипте (если только вы не передадите "/wait"). Поскольку в скрипте не будет следующей строки, скрипт и его окно просто исчезнут.

Думаю, можно было бы полностью удалить всю эту партию, внеся некоторые творческие изменения в реестр, но сейчас я не за компьютером, чтобы это проверить, и не хочу, чтобы кто-то ковырялся в реестре, основываясь только на непроверенных отрывках из моей памяти.

Связанный контент