如何从上下文菜单(在音频文件上)运行 poweshell 脚本?

如何从上下文菜单(在音频文件上)运行 poweshell 脚本?

我确实尝试过这个 test.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\audio\shell\ChunkAudio]@="chunk audio (5 min)""Icon"="%SystemRoot%\\System32\\shell32.dll,186"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\audio\shell\ChunkAudio\Command]@="%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe C:\Users\Me\Desktop\5min_chunk_audio.ps1 %1"

它按预期在音频文件上添加了一个上下文菜单,但是当我单击它时它会发送一个错误:

Windows 无法访问指定的设备、路径或文件。您可能没有适当的权限来访问该项目。

这可能是因为 test.reg 没有向注册表中 ....shell\ChunkAudio\Command 的“数据”字段添加任何内容。(我尝试手动添加%SystemRoot%\system32\... C:\...audio.ps1 %1

我也尝试过:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\audio\shell\ChunkAudio\Command]
@="CMD.EXE /C Powershell.exe -File C:\\Users\\Me\Desktop\\petit_program\\PowerShell\\PowerShell_script\\5min_chunk_audio.ps1 %1"

答案1

尝试像这样制定命令:

@="CMD.EXE /C Powershell.exe -File C:\\Users\\Me\\Desktop\\5min_chunk_audio.ps1 %1"

答案2

完成 harrymc 的回答:

Windows Registry Editor Version 5.00

; set the name + icon in the context menu
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\audio\shell\ChunkAudio]
@="chunk audio"
"Icon"="%SystemRoot%\\System32\\shell32.dll,117"

; run the script
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\audio\shell\ChunkAudio\Command]
    @="CMD.EXE /K Powershell.exe -File C:\\Users\\Me\\Desktop\\5min_chunk_audio.ps1 \"%1\""

● CMD.EXE/C 执行字符串指定的命令然后终止

CMD.EXE/K 执行字符串指定的命令但保留(适合调试)

在 cmd 窗口中输入 cmd /? 以查找更多参数。

%1是第一个参数(%2 是第二个参数...)。%1 包含文件的路径。我们需要引用该参数才能使用它(否则路径将在第一个空格处被切断)。但是"%1"不行,因为我们需要转义引号,所以我们写成\"%1\"


奖励:要获取脚本中的参数(路径),只需使用$arg(它是一个“自动变量”。要了解更多信息,请运行Get-Help about_Automatic_Variables:)

相关内容