Powershell 变量 - 如果它正在接收输入则详细

Powershell variable - verbose if it is receiving input

我创建了一个脚本,使用 PowerShell 压缩超过 N 天的文件。 像这样:

param (
    $dirPath, `
    [int] $daysAgo, `
    $logOutput=$dirPath+"\old_reports.log", `
    $fileExt
    )

$curDate = Get-Date
$timeAgo = ($curDate).AddDays($daysAgo)

$files = Get-ChildItem -Recurse `
                       -Path $dirPath `
                       -Include *.$fileExt| `
                       Where-Object { $_.LastWriteTime -lt $timeAgo } | `
                       Select -ExpandProperty FullName

& 'C:\Program Files-ZipZ.exe' a -t7z -mx9 old_reports.7z $files -bb1 -sdel

echo $files > $logOutput

它正在运行,但是,由于有很多文件,需要一段时间才能填充 $files 变量。这样做时,提示仅显示闪烁的光标。因此,我不知道脚本是否真的在执行某些操作,或者它是否因意外点击而暂停。

有没有办法显示 $files 变量正在接收输入?

如果不重组您的命令 - 从而牺牲性能 - 我只看到一个选项:

除了捕获变量 $files 中的 file-info 对象外,还将它们打印到显示器上,您可以借助 common -OutVariable parameter:

# Output the files of interest *and* capture them in 
# variable $files, via -OutVariable
Get-ChildItem -Recurse `
                       -Path $dirPath `
                       -Include *.$fileExt| `
                       Where-Object { $_.LastWriteTime -lt $timeAgo } | `
                       Select -ExpandProperty FullName -OutVariable files