我曾经发现一个脚本可以轻松更改我的壁纸,如果我使用多个壁纸。
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys("^ ")
WshShell.SendKeys("+{F10}")
WshShell.SendKeys("n")
WshShell.SendKeys("{ENTER}")
但是我需要一个调用脚本的单独链接。 现在我想知道我是否可以直接将这些多行代码作为参数传递给powershell.exe。
我确实读到我可以使用;
对多行进行对齐并尝试构建单行,但是它没有运行...或者说它确实运行,没有反馈,没有任何变化。如果我将命令行粘贴到正在运行的PowerShell实例中,它就会退出。
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden -Command "set WshShell = WScript.CreateObject('WScript.Shell'); WshShell.SendKeys('^ '); WshShell.SendKeys('+{F10}'); WshShell.SendKeys('n'); WshShell.SendKeys('{ENTER}')"
我基本上只是连接它们并用单引号替换双引号以转义特殊字符,那么为什么它不能作为单独的脚本工作?
答案 0 :(得分:3)
在PowerShell中:
$WSH = New-Object -ComObject 'WScript.Shell'
$WSH.SendKeys('^ ')
$WSH.SendKeys('+{F10}')
$WSH.SendKeys('n')
$WSH.SendKeys('{ENTER}')
将此另存为脚本(Filename.ps1
),并从.bat
或.cmd
文件中调用:
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe -File "path\filename.ps1"
或者,作为命令文件中的一行代码:
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe -Command "$WSH = New-Object -ComObject 'WScript.Shell';$WSH.SendKeys('\^ ');$WSH.SendKeys('+{F10}');$WSH.SendKeys('n');$WSH.SendKeys('{ENTER}')"