【发布时间】:2017-11-07 20:14:26
【问题描述】:
我对 PowerShell 非常陌生。我正在尝试通过 PowerShell 删除文件夹中的一组测试结果文件。当我通过 PowerShell 控制台运行代码时,它可以工作。相同的代码不适用于 ISE。 下面是代码:
Set-Location -Path "Path";
$testResultsFolder = Get-ChildItem -Include *TestResults -Recurse | ?{ $_.PSIsContainer } | Select-Object FullName;
$date = Get-Date;
$limit = 30;
foreach($testResult in $testResultsFolder)
{
$resultsPath = Get-Item $testResult.FullName;
Get-ChildItem -Path $resultsPath -Recurse -Force | Where-Object { -not $_.PSIsContainer -and $date.Subtract($_.LastWriteTime).Days -gt $limit } | Remove-Item -Force;
}
这在 PowerShell 控制台中运行良好,但在 ISE 中运行良好。 ISE 不显示任何错误。它显示“已完成”。有人可以说明我做错了什么吗?
【问题讨论】:
-
1.关闭并重新打开 ISE。 2. 将代码放入
.ps1脚本文件中。 3. 通过在 ISE 的 PowerShell 提示符下键入其名称并按Enter在 ISE 中运行脚本文件。您会注意到它的运行方式相同。 -
如果您没有将其作为脚本运行,您的变量会污染您在 ISE 中的会话。
-
@Bill_Stewart 我尝试了你的建议,它运行良好,但没有文件被删除。但是当我在控制台中使用相同的代码运行时,它会正确删除文件。
-
@TheIncorrigible1 我将它作为脚本运行。当我从控制台运行相同的 ps1 文件时,它仍然不会删除文件。
-
@PraveenTata 您的标题与您现在所说的不符。
标签: powershell