我是PowerShell脚本的新手,我无法弄清楚为什么我的脚本会复制 所有文件并没有似乎检查日期,然后复制所有文件 无论如何。我也想做几天和几分钟,但我不太确定 如何做到这一点。任何帮助都会很棒!
see my script below.
$RemotePath = "\\eb-pc\E$\testlocation\*.txt"
$LocalPath = "C:\testlocation"
$Max_days = "-1"
#Max_mins = "-5"
$Curr_date = get-date
#Checking date and then copying file from RemotePath to LocalPath
Foreach($file in (Get-ChildItem $RemotePath))
{
if($file.LastWriteTime -gt ($Curr_date).adddays($Max_days))
{
Copy-Item -Path $file.fullname -Destination $LocalPath
#Move-Item -Path $file.fullname -Destination $LocalPath
}
}
答案 0 :(得分:3)
如果您想使用小时和分钟而不是AddDays,只需使用.AddMinutes(),. AddHours()或.AddSeconds()方法。
为了它的价值,我做了一个小修改,在脚本中添加了一个Else {Scriptblock}来回显未复制的文件。如上所述,您的代码只会复制过去24小时内写的文件。
$RemotePath = "t:\"
$LocalPath = "C:\temp"
$Max_days = "-1"
#Max_mins = "-5"
$Curr_date = get-date
#Checking date and then copying file from RemotePath to LocalPath
Foreach($file in (Get-ChildItem $RemotePath))
{
if($file.LastWriteTime -gt ($Curr_date).adddays($Max_days))
{
Copy-Item -Path $file.fullname -Destination $LocalPath -WhatIf
#Move-Item -Path $file.fullname -Destination $LocalPath
}
ELSE
{"not copying $file"
}
}
>What if: Performing the operation "Copy File" on target "Item: T:\file.htm Destination: C:\temp\file.ht
m".
not copying ListOfSacredVMs.txt
not copying newUser_01.png
not copying newUser_015.png
not copying newUser_02.png
not copying newUser_03.png
What if: Performing the operation "Copy File" on target "Item: T:\values.csv Destination: C:\temp\values.csv".
答案 1 :(得分:0)
我在PowerShell中做过一段时间以来已经有一段时间了。但是,您可能希望尝试回显您正在比较的值,以查看它们实际返回的内容。
Echo“LastWrite:”& $ file.LastWriteTime
Echo“Copy After:”& ($ Curr_date).adddays($ MAX_DAYS)
这有助于确定您要比较的内容。 希望这至少有一点点。