我有一个简单的 powershell 脚本,当我从 powershell 编辑器执行它时运行良好,但是当我从 Windows 任务计划程序运行它时会产生完全不同的结果。
原始代码如下...只是想从 m: 驱动器复制最新的文件。
$OriginalDir = "M:"
$BackupDir = "c:\downloads\db"
$LatestFile = Get-ChildItem -path m: -Name -ErrorAction SilentlyContinue |
Sort-Object LastWriteDate -descending | select -last 1
Write-OutPut $LatestFile
write-output $LatestFile | add-content C:\Scripts\Log.txt
#Copy-Item -path $OriginalDir\$LatestFile $BackupDir\$LatestFile
针对“M”驱动器中的内容进行测试:
从 powershell 编辑器运行时,我获取最新文件 (20170720 (星期四).bak)。从 Windows 任务计划程序运行时,我获取 20170717 (星期一).bak。我使用同一个帐户运行,不知道发生了什么。
有任何想法吗?
拉里
答案1
(由于某种原因无法访问其他帐户...原始发帖者在这里)。我检查了映射驱动器,两者上都一样。尝试使用不同的权限运行,结果相同。最终匹配文件名的前 8 个字符(以下示例):
$filedate = (get-date).AddDays(-1).tostring('MMddyyyy')
$LatestFile = Get-ChildItem -Path $OriginalDir -Name "$filedate*.bak" | Sort LastWriteTime | Select -First 1
(从任务计划程序和通过 PS 编辑器运行时有效)
感谢大家的帮助!现在仍然是/曾经是奇怪的行为。