我正在使用 powershell 创建一个存根脚本。我对这个脚本的意图是将过去 x 时间段内未写入的任何数据复制到新位置,检查文件是否已复制,在其原始位置创建“存档”文件的快捷方式,并最终删除旧文件(我还没有写这部分)。以下是我到目前为止所拥有的。我现在遇到的问题是创建了一个快捷方式,但是所有快捷方式都保存到 C:\Temp 目录而不是任何子文件夹中;如果那是原始文件的存储位置。我认为我的问题在于 $link,我需要拆分路径并加入它们,但我不确定。非常感谢任何帮助!
# Variables
$Original = "C:\Temp"
$Archive = "\\data\users\Temp"
Get-ChildItem -Path $Original -Recurse |
Where-Object {
$_.LastWriteTime -lt [datetime]::Now.AddMinutes(-1)
} | Copy-Item -Destination $Archive -Recurse -force
$sourceFiles = Get-ChildItem $Original -Recurse | Where-Object { $_.LastWriteTime -lt [datetime]::Now.AddMinutes(-1) } | Select Name, Fullname
$destFiles = Get-ChildItem $Archive -Recurse | Select Name, Fullname
$Comparison = Compare-Object $sourceFiles.name $destFiles.name
If ($comparison.sideindicator -ne "<=") {
get-childitem $Archive -Recurse | where { $_.PsIsContainer -eq $false } | ForEach-Object {
$path = '"' + $_.FullName + '"'
$link = $Original + '\' + $_.Basename + '.lnk'
$wshell = New-Object -ComObject WScript.Shell
$shortcut = $wshell.CreateShortcut($link)
$shortcut.TargetPath = $path
$shortcut.Save()
}
}
If ($comparison.sideindicator -eq "<=") {
$comparison.inputobject, $sourceFiles.fullname | Out-File 'C:\ScriptLogs\stubbing.csv' -Force
}