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

2023-11-22

我创建了一个可以从 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"

Result:

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

从计划任务:

Action: 启动一个程序

程序/脚本: PowerShell.exe

论据: -文件“D:\Documents\PowerShell Scripts\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

我已经为这些参数尝试了几种不同的方法,但我似乎无法将它们视为字符串数组中的 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

and

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

结果:2

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有字符串数组参数的 PowerShell 脚本的计划任务 的相关文章

随机推荐

  • 什么是CSS滚动行为属性?

    我最近注意到一个scroll behavior我可以在 css 中指定的属性 它只能有 2 个属性 inherit and initial 我以前从未听说过 见过它 所以我尝试看看它 问题是所有的链接都在解释不同的事情overflow财产
  • Python 3:何时使用字典,何时使用元组列表?

    I have id例如 监狱里的囚犯 每个囚犯都有一个名字 我知道字典如何工作 我知道元组如何工作 我知道列表如何工作 但有时我看到正在使用字典 有时看到元组列表 在我的情况下我应该使用哪一个 d 1 Mike 2 Bob 3 Tom vs
  • 如何更改 Node.js 中的默认目录? (视窗)

    当我尝试在节点上运行我的项目时 我必须编写 javascript 文件的完整路径 因为节点使用的默认值是C Users MyUser我拒绝使用它 我一直在尝试寻找如何改变这一点 但没有在任何地方找到它 我什至尝试手动搜索目录 但没有找到它
  • 为什么 .NET 程序能够在损坏的堆栈中幸存下来? (当使用错误的调用约定时)

    在VS2010中 托管调试助手会给你一个pInvokeStackImbalance异常 pInvokeStackImbalance MDA 如果您使用错误的调用约定调用函数 通常是因为您在调用 C 库时没有指定 CallingConvent
  • 我需要查看 HTML 图像地图区域

    我试图在我的图像上设置一个地图区域 但我希望它是一个八边形 所以我真的需要看看我正在绘制的内容 不幸的是 我无法设置区域标签的样式 以便我可以看到映射发生的位置 这使得我很难绘制这些区域 我每次都必须用鼠标跟随它才能知道它从哪里开始和在哪里
  • Cleartool:如何将标签应用于仅在我当前视图中的文件?

    我找不到正确的命令来将标签应用于当前视图中的文件 我尝试过以下命令 cleartool mklabel r TEST LABEL vob test a 但是 问题是该命令将应用 Test Label 为 中的每个文件添加标签vob test
  • 将 NOT IN 转换为 NOT EXISTS

    在理解 NOT EXISTS 的用法时经历了一场噩梦 主要是如何转换下面的 NOT IN 解决方案 以便我能够真正理解我是如何实现结果的 在askTom oracle 论坛和stackoverflow 上有几篇文章 但找不到任何明显有助于理
  • python3中的sys.stdout.write在字符串末尾添加11

    有人可以解释为什么吗sys stdout write 追加11到我的绳子 python3 Python 3 4 3 default Jul 28 2015 13 17 50 GCC 4 9 3 on linux Type help copy
  • 在身份验证库中找不到 GoogleSignIn 类

    我在通过 Android 应用程序登录 Google Play 时遇到问题 我补充道 编译 com google firebase firebase auth 11 4 2 和 编译 com google android gms play
  • Windows 任务管理器中的“转储文件”是什么?

    我知道在 Windows 中 您可以通过转到任务管理器 gt 进程 gt 右键单击进程来生成转储文件 什么是转储文件 我可以用 dmp 文件做什么 dmp 文件是Minidump 实时进程的快照 包含有关其当前状态的信息 包括内存 堆栈跟踪
  • 最大化 $digest 迭代

    我正在玩弄指令和 在此绑定fiddle 我收到以下错误 Uncaught Error 10 digest iterations reached Aborting Watchers fired in the last 5 iterations
  • @"some string" 在 Objective-C 中是什么意思?

    我刚刚开始 iphone 开发 遇到了一些使用 somestring 的示例代码 someLabel txt string of text 为什么字符串需要 我猜这是创建对象的某种快捷方式 它使用该字符串创建一个 NSString 对象 而
  • 当对等点不在 NAT 后面时,由于主机地址混淆,WebRTC 在现代浏览器中不起作用

    在对我的网络应用程序进行故障排除时 我发现草稿 mdns ice 候选者 这是关于使用 mDNS 混淆候选主机中的地址 我发现 当两个对等点 代理 L 代理 R 处于如下图 7 所示的拓扑时 WebRTC 对等点连接失败 因为代理 R 的主
  • AngularJS 在按钮单击时打开模式

    我正在尝试学习通过单击 AngularJS 中的按钮来打开模式对话框 但无法这样做 我检查了 chrome 控制台 但没有错误 另外 由于我正在学习 AngularJS 请建议当 chrome 控制台没有显示任何错误时该怎么做 这是我的代码
  • 在 Matlab 或 matplotlib 中根据法向量和点绘制平面

    如何从法向量和点在 matlab 或 matplotlib 中绘制平面 对于所有的复制 粘贴 这里是使用 matplotlib 的 Python 类似代码 import numpy as np import matplotlib pyplo
  • Qt:QAbstractItemModel 中的 setData 方法

    我是模型视图新手 我一直在关注本教程在检查文档的同时 我偶然发现了这个小细节 可以下载的教程代码hereQAbstractItemModel 类 此处为 QAbstractListModel 中有 setData 方法 其代码为 def s
  • 使用 JQuery,如何检测文本输入的值是否已更改而字段仍具有焦点?

    我注意到在发布此问题之前 之前曾在此主题上发布过类似的问题 但是在这种情况下 用户没有使用键盘与文本字段进行交互 在这种情况下 将文本字段绑定到 粘贴 行动或任何其他漂亮的建议在我的情况下都不起作用 我们的用户正在输入从条形码扫描的字符串值
  • 我在 Windows 窗体中的跨线程调用出了什么问题?

    我在使用 Windows 窗体应用程序时遇到问题 表单必须从另一个线程显示 所以在表单类中 我有以下代码 private delegate void DisplayDialogCallback public void DisplayDial
  • 如何动态调整 UITableView 高度?

    在我的应用程序中 我想在处于编辑模式时与非编辑模式时调整表格视图的高度 以便为表格视图下方的编辑控件腾出空间 这应该怎么做呢 我发现当另一个视图中有浮动表时 操作 bounds 属性可能会导致一些意外的行为 有时 当增加高度时 表格会向上扩
  • 带有字符串数组参数的 PowerShell 脚本的计划任务

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