如何解决我在将引号放在引号中时遇到问题
我正在尝试在PowerShell中执行一行命令来下载音乐文件并每1小时执行一次Start-Process -WindowStyle Hidden PowerShell "Register-ScheduledTask Regedit -Action (New-ScheduledTaskAction -Execute PowerShell -Argument "Start-process -WindowStyle Hidden PowerShell '(New-Object System.Media.SoundPlayer C:\Windows\Jjgw.wav).PlaySync()'") -Trigger (New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Hours 1)) -f;(New-Object System.Net.WebClient).DownloadFile('https://github.com/User/Repository/raw/master/Music.wav','C:\Windows\Music.wav')"
但是我不能设置单引号/双引号到最后,而是最接近的引号。
我正在尝试达到这样的目标:PowerShell ""command1";"command2""
只需执行这两个命令即可。
解决方法
这经常被问到。最好的方法是使用EncodedCommand:
$command = {
$action = New-ScheduledTaskAction -Execute PowerShell -Argument "Start-process -WindowStyle Hidden PowerShell '(New-Object System.Media.SoundPlayer C:\Windows\Jjgw.wav).PlaySync()'"
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Hours 1)
Register-ScheduledTask Regedit -Action $action -Trigger $trigger -Force
(New-Object System.Net.WebClient).DownloadFile('https://github.com/User/Repository/raw/master/Music.wav','C:\Windows\Music.wav')
}
$encodedCommand = [convert]::ToBase64String([System.Text.encoding]::Unicode.GetBytes($command.ToString()))
Start-Process -WindowStyle Hidden PowerShell -ArgumentList "-EncodedCommand",$encodedCommand
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。