gpt4 book ai didi

arrays - 带有字符串数组参数的 PowerShell 脚本的计划任务

转载 作者:行者123 更新时间:2023-12-02 03:39:30 24 4
gpt4 key购买 nike

我创建了一个可以从 Management Shell 完美运行的 PowerShell 脚本。我正在尝试将其设置为在 Windows Server 2008 R2 中的计划任务中工作,但不确定如何传递字符串数组参数的参数。

这是我的脚本的相关部分:

[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[String]
$BaseDirectory,
[String]
$BackupMethod = "Full",
[Int]
$RemoveOlderThanDays = 0,
[String]
$LogDirectory,
[Int]
$LogKeepDays = 7,
[String[]]
$AdditionalDirectories
)

if ($AdditionalDirectories -and $AdditionalDirectories.Count -gt 0) {
Write-Host " Additional Directories to be included:" -ForegroundColor Green
$AdditionalDirectories | ForEach-Object {
Write-Host " $_" -foregroundcolor green
}
}

造成麻烦的参数是最后一个,$AdditionalDirectories

来自外壳:

如果我像这样从 Management Shell 运行脚本,它会完美运行:

.\FarmBackup.ps1 \\SomeServer\Backups Full 0 D:\Logs\Backups 0 "D:\Documents\PowerShell Scripts","D:\SomeFolder"

结果:

   Additional Directories to be included:
D:/Documents/PowerShell Scripts
D:/SomeFolder

来自计划任务:

操作: 启动程序

程序/脚本: PowerShell.exe

参数: -文件 "D:\Documents\PowerShell Scripts\FarmBackup.ps1"\\SomeServer\Backups Full 0 D:\Logs\Backups 0 "D:\Documents\PowerShell 脚本","D:\SomeFolder"

结果:(来自日志文件)

  Additional Directories to be included:
D:\Documents\PowerShell Scripts,D:\SomeFolder
<小时/>

我已经为这些参数尝试了几种不同的方法,但我似乎无法将它们视为字符串数组中的 2 个单独的字符串。我现在正在对它们进行硬编码,但似乎必须有一种方法可以使其工作,因为从 shell 运行时它是完全有效的。

最佳答案

尝试使用 -Command 开关而不是 -File 开关,然后使用调用运算符“&”。以下是使用计划任务执行此操作的示例的链接:

http://blogs.technet.com/b/heyscriptingguy/archive/2011/01/12/schedule-powershell-scripts-that-require-input-values.aspx

类似于:

-Command "& 'D:\Documents\PowerShell Scripts\FarmBackup.ps1' '\\SomeServer\Backups' 'Full' 0 'D:\Logs\Backups' 0 'D:\Documents\PowerShell Scripts','D:\SomeFolder'"

我通过创建一个包含以下内容的脚本来测试此解决方案:

param([string[]] $x)
Write-Host $x.Count

然后通过以下两种方式调用:

powershell -File ".\TestScript.ps1" "what1,what2"

结果:1​​

powershell -Command "& .\TestScript.ps1 what1,what2"

结果:2

关于arrays - 带有字符串数组参数的 PowerShell 脚本的计划任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12691781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com