我有下面 2 个批处理文件,想要将它们转换为 Powershell。
我将 bat1.bat 与一个文件扩展名关联,因此当我双击该扩展名时,将执行 bat1.bat,第一个参数是双击的文件名
为什么要使用 2 个 bat 文件?如果我只使用 bat2,我就会打开一个命令窗口,并且该窗口一直可见,直到退出最后一个程序。通过使用上面的 2 个批处理文件,我只得到一个任务栏图标(我想摆脱它)。这让我想到了为什么我想转换为 Powershell。我希望能够双击其中一个文件并让 PS 打开 Access 程序,并且没有任何图标或任何视觉指示。因此,看起来我的 Access 程序是处理具有该扩展名的文件的程序。
蝙蝠1
@echo off
@START /MIN c:\temp\bat2.bat %1
exit
蝙蝠2
@echo off
"c:\temp\Test.accdb" /cmd %1
exit
答案1
我现在不在电脑前测试这个,但是你不能将文件扩展名与运行以下命令的脚本关联起来吗?
@start "Access wrapper" "c:\temp\Test.accdb" /cmd %1
我完全赞成改用 PowerShell,但批处理文件一开始会更快,如果我没记错的话,您可以将已知文件类型(如 accdb 文件)传递给“start”命令,它会找出用什么打开它(即 Access),然后继续执行脚本中的下一行(除非您传递“/wait”)。由于脚本中没有下一行,因此脚本及其窗口将消失。
我认为您可能可以通过一些有创意的注册表编辑来消除整个批处理,但我现在不在 PC 上进行测试,而且我不希望人们仅根据我记忆中未经测试的碎片来修改注册表。