将一个脚本中的数组包含到另一个脚本中

Including Arrays from one Script into Another Script

我有多个脚本使用相同的数组来定义文件路径和抓取文件日期。例如:

$file1path = "C:\filepath\file1.exe"
$file1date = (Get-Childitem $file1path).LastWriteTime.ToString("m/d/yyyy")

这些脚本然后使用这些数组构建 .ps1 校验和脚本,并 VB 使用更新的文件日期信息监视脚本文件,因为文件版本控制在这里有点儿戏。我开始考虑我可以通过将这 200 行左右的数组放入一个主数组文件中来简化这些脚本,然后这些其他构建脚本可以只包含某种包含行来从这个主脚本中提取它调用的数组。

请问有什么好的方法吗?不幸的是,我需要在我们的环境中使用 PowerShell v1。

您可以将一个 .ps1 文件的内容点源到另一个文件中。这允许您有效地 "include" 在公共 .ps1 中定义的任何变量和函数到任何 .ps1 脚本文件中。例如:

Common.ps1 contents
-------------------
$files = @(Get-ChildItem c:\filepath\*.exe)

Doit.ps1 contents
-----------------
. .\common.ps1
foreach ($file in $files) {
    $fileDate = $file.LastWriteTime.ToString("MM/dd/yyyy")
}