【问题标题】:Powershell excluding only filesPowershell 仅排除文件
【发布时间】:2020-01-22 00:29:19
【问题描述】:

在 5.1 版本的 powershell 中运行脚本时出现以下错误

在我删除文件超过 180 天的简单脚本下方,我尝试了一些解决方案,但我没有发现可能是什么错误。 (以下从葡萄牙语翻译成英语的错误

“Out-File:无法验证'Encoding'参数中的参数。”文件\ DeleteLogFile_21_01_2020.log“参数不属于集合”未知;细绳;统一码; bigendianunicode; utf8; utf7; utf32; ASCII;默认; oem "由 ValidateSet 属性指定。提供集合中的参数并再次尝试该命令。在行上:1 个字符:36 + $ Log | Out-File -Append D:\Program files\DeleteLogFile_ $ LogDate.log + ~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CategoryInfo: InvalidData: (:) [Out-File], ParameterBindingValidationException + FullyQualifiedErrorId: ParameterArgumentValidationError, Microsoft .PowerShell.Commands.OutFileCommand "

$logPath = "D:\Program files\NICE Systems\Logs"
$nDays = 10
$startTime = Get-Date
$Extensions = "*.*"
$LogDate = (Get-Date).ToString("dd_MM_yyyy")
$Files = Get-Childitem $LogPath -Include $Extensions -Recurse | Where-Object {$_.LastWriteTime -le (Get-Date).AddDays(-$nDays)}
foreach ($File in $Files) 
{
    if ($NULL -ne $File )
    {
        $Log = "`nData e Hora da Deleção: " + $startTime + ". O arquivo " + $File + " foi deletado do sistema."
        $Log | Out-File -Append D:\Program files\DeleteLogFile_$LogDate.log
        Remove-Item $File.FullName | out-null
    }
}

【问题讨论】:

  • 如果您将错误转换为english 并像编写代码一样对其进行格式化,您将获得更好的响应。 Out-File 正在创建的文件可能存在编码问题,而 answer 可能会有所帮助。

标签: powershell


【解决方案1】:

日志文件的路径周围没有引号,因此它会在第一个空格处将其切断。您可以使用双引号,变量仍将被扩展。单身不会。

$Log | Out-File -Append "D:\Program files\DeleteLogFile_$LogDate.log"

默认情况下,windows 也不允许您写入程序文件文件夹,这通常不是好的做法。

【讨论】:

    【解决方案2】:

    在您的 Out-File 行中,您的路径中有一个空格,并且没有用引号括起来。在 PowerShell 和大多数脚本语言中,您必须考虑到Positional Parameters。任何不在字符串中或后面没有/前面没有参数(例如-FileName C:\FileName.txt)的空格都将被假定在位置参数之前。

    话虽如此,它试图使用“D:\Program”作为路径,并使用“files\DeleteLogFile_$LogDate.log”作为编码类型,这显然是无效的。要解决此问题,只需将路径放在引号中,使其成为字符串,如下所示:

    $Log | Out-File -Append "D:\Program files\DeleteLogFile_$LogDate.log"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-19
      • 2021-08-16
      相关资源
      最近更新 更多