1

我创建了一个 ps 脚本来将 MS SCCM 备份文件夹移动到另一个位置并删除超过 2 天的文件夹:

$Date = Get-Date -format d.M.yyyy
$BackupDir = "\\Source_Servername\Folder1\Folder2"
$ArchiveDir = "\\Destination_Servername\Folder1\Folder2"
set-alias 7za "$ArchiveDir\7za.exe"    
Get-Item "$ArchiveDir\*" |? {$_.psiscontainer -and $_.lastwritetime -le (get-date).adddays(-2)} |% {remove-item $_ -Recurse -Confirm:$false}
7za a -r "$ArchiveDir\$Date\$BackupDir.7z" $BackupDir

我使用 Win 8 创建了它,当我尝试在 win2008r2 服务器上应用它时,它失败并出现以下错误:

错误的数字常量:7。在 E:\xxxxx\xxxxx\xxxx\Afterbackup.ps1:9 char:2 + 7 <<<< za a -r "$ArchiveDir\$Date\$BackupDir.7z" $BackupDir + CategoryInfo : ParserError: (7:String) [], ParseException + FullyQualifiedErrorId : BadNumericConstant

当我像这样输入 7za.exe 的完整路径时,它可以工作: \Destination_Servername\Folder1\Folder2\7za a -r "$ArchiveDir\$Date\$BackupDir.7z" $BackupDir

我是powershell的新手,所以我会提供任何帮助:)

4

1 回答 1

2

PowerShell v1 & v2 不喜欢以数字开头的命令。该问题似乎已在 v3 中得到解决,这可能就是它在您的工作站上运行的原因。您可以通过在执行时在别名前面放置一个反引号来解决此问题:

`7za a -r "$ArchiveDir\$Date\$BackupDir.7z" $BackupDir

或者,您可以将别名更改为不以数字开头。

于 2013-07-19T15:44:51.847 回答