我想以 .bat 文件的形式在后台运行一个小的、不显眼的脚本;并希望它在 Windows 10 的桌面 2 中运行。
bat 文件在启动时通过任务计划程序加载。我可以在 .bat 文件本身内编程桌面首选项吗?
答案1
在命令中,创建一个 .bat 文件,其中包含下面的 ps1 文件的位置。您无法从启动时启动 ps1 文件,但可以从启动时启动 bat 文件。
复制以下代码,并将其保存在.bat 启动文件中的“.ps1”文件中。
如果通过 Powershell 运行,它将创建一个额外的桌面,并在每个桌面上执行记事本。如果您不想每次运行时都出现新桌面,请修改程序;如果您不想记事本(或您的程序)在两个桌面上启动,请删除“记事本”位置;并用您要运行的程序替换剩余的记事本。
窗口位置和尺寸应在关闭时保存,因此它们的相对位置应与上次使用时相同。(我认为)您还需要从这里下载同一目录中的“virtualDesktop.ps1”文件: https://gallery.technet.microsoft.com/scriptcenter/Powershell-commands-to-d0e79cc5
. "$PSScriptRoot\VirtualDesktop.ps1"
"Number of virtual desktops: $(Get-DesktopCount)"
Sleep 1
"Create a new desktop:"
$NewDesktop = New-Desktop
$OldDesktop = Get-CurrentDesktop
"Number of virtual desktops: $(Get-DesktopCount)"
"Number of new desktop: $(Get-DesktopIndex($NewDesktop))"
Sleep 1
"Switch to new desktop, start notepad there and switch back"
Sleep 1
$NewDesktop | Switch-Desktop
notepad
Sleep 1
Switch-Desktop $OldDesktop
Sleep 1
"Move notepad to current desktop"
(ps notepad)[0].MainWindowHandle | Move-Window (Get-CurrentDesktop) | Out-Null
Sleep 1
"Move powershell window to new desktop and switch to it"
$NewDesktop | Move-Window (Get-ConsoleHandle) | Switch-Desktop
Sleep 1
"Pin notepad window to all desktops"
Pin-Window ((Get-Process "notepad")[0].MainWindowHandle)
Sleep 1
"Remove original desktop"
Remove-Desktop $OldDesktop
"Number of virtual desktops: $(Get-DesktopCount)"
Sleep 1