从 cmd 打开蓝牙(Windows 10/11)

从 cmd 打开蓝牙(Windows 10/11)

我正在尝试为我的所有游戏编写一个 cmd 可执行文件,启动时,登录到相应的启动器帐户,启动游戏并启用蓝牙。但是,由于对此非常陌生,我不确定打开蓝牙的命令。我不确定是否需要使用 pnputil,因为它看起来与蓝牙驱动程序有关。我只想省去单击任务栏并从那里打开蓝牙的麻烦,有没有办法在 cmd 中执行此操作?

谢谢

[我在提问之前确实尝试过研究它,但我看到的答案对我来说没有意义:(]

答案1

我想到了。

将以下代码粘贴到记事本中:

    If ((Get-Service bthserv).Status -eq 'Stopped') { Start-Service bthserv }
Add-Type -AssemblyName System.Runtime.WindowsRuntime
$asTaskGeneric = ([System.WindowsRuntimeSystemExtensions].GetMethods() | ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and $_.GetParameters()[0].ParameterType.Name -eq 'IAsyncOperation`1' })[0]
Function Await($WinRtTask, $ResultType) {
    $asTask = $asTaskGeneric.MakeGenericMethod($ResultType)
    $netTask = $asTask.Invoke($null, @($WinRtTask))
    $netTask.Wait(-1) | Out-Null
    $netTask.Result
}
[Windows.Devices.Radios.Radio,Windows.System.Devices,ContentType=WindowsRuntime] | Out-Null
[Windows.Devices.Radios.RadioAccessStatus,Windows.System.Devices,ContentType=WindowsRuntime] | Out-Null
Await ([Windows.Devices.Radios.Radio]::RequestAccessAsync()) ([Windows.Devices.Radios.RadioAccessStatus]) | Out-Null
$radios = Await ([Windows.Devices.Radios.Radio]::GetRadiosAsync()) ([System.Collections.Generic.IReadOnlyList[Windows.Devices.Radios.Radio]])
$bluetooth = $radios | ? { $_.Kind -eq 'Bluetooth' }
[Windows.Devices.Radios.RadioState,Windows.System.Devices,ContentType=WindowsRuntime] | Out-Null
if ($bluetooth.state -eq 'On') {$BluetoothStatus = 'Off'} else {$BluetoothStatus = 'On'}
Await ($bluetooth.SetStateAsync($BluetoothStatus)) ([Windows.Devices.Radios.RadioAccessStatus]) | Out-Null

来源1

将其保存为 Windows Powershell 文件 (.ps1),并指定名称。创建一个文件夹并将此 .ps1 文件放入其中。

然后,将以下内容粘贴到记事本中:

@ECHO OFF
SET ThisScriptsDirectory=%~dp0
SET PowerShellScriptPath=%ThisScriptsDirectory%YourPowerShellScript.ps1
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%PowerShellScriptPath%'";

来源2

将第三行末尾的“YourPowerShellScript.ps1”替换为您为 .ps1 文件指定的文件名,例如“BluetoothSwitcher.ps1”。

将其保存为批处理文件 (.bat) 并将其保存到与之前相同的文件夹中。

现在,在您希望此蓝牙切换器运行的.bat 文件中粘贴以下内容:

cd /d %YourFoldersDirectory%
start "" YourBatchFile.bat

来源 3

将“%YourFoldersDirectory%”替换为包含 .ps1 和 .bat 文件的文件夹的目录 - 可以通过在文件资源管理器中导航到该文件夹​​并从上面的地址栏中选择目录来找到它。然后您可以将其直接粘贴到“%YourFoldersDirectory%”所在的位置。

将“YourBatchFile.bat”替换为您之前创建的批处理文件(.bat)的名称,例如“btswitcher.bat”。

保存并运行所需的 .bat,每次运行时,您都会看到蓝牙在开启和关闭之间交替。如果您不想切换,则需要单击来源 1 中的 @Ben N,然后将 powershell 脚本替换为他的脚本。

我意识到我在 .bat 中运行 .bat 有点混乱,但它仍然可以正常工作。

相关内容