簡體   English   中英

復制過去 2 天內修改過的文件

[英]Copy files modified in last 2 days

我想在文件夾之間復制文件。 在當天和前一天剛剛修改(帶有新條目的 CSV 文件)。

這是我的代碼:

foreach ($file in (Get-ChildItem "D:\Shares\WinCAP Data\DAYPROT\OFS-222_2")) {
    if ($file.LastWriteTime = (Get-Date).AddDays(-1)) {
        Copy-Item -Path "D:\Shares\WinCAP Data\DAYPROT\OFS-222_2\*.csv" -Destination "\\Oracle\MP"
        "copying $file"
    } else {
        "not copying $file"
    }
}

有什么問題 - 有什么建議嗎?

您需要將日期與-gt進行比較,否則您正在尋找在該確切時間復制的文件。

請注意,執行(Get-Date).AddDays(-1)是完全有效的,但會為您提供過去 24 小時內修改的任何內容。

$DestinationFolder = "\\Oracle\MP\"
$EarliestModifiedTime = (Get-date).AddDays(-1)
$Files = Get-ChildItem "D:\Shares\WinCAP Data\DAYPROT\OFS-222_2\*.csv" 
foreach ($File in $Files) {
    if ($File.LastWriteTime -gt $EarliestModifiedTime)
    {
        Copy-Item $File -Destination $DestinationFolder
        Write-Host "Copying $File"
    }
    else 
    {
        Write-Host "Not copying $File"
    }
}

如果您不想寫出“復制...”和“不復制...”,那么您可以將其簡化很多。

$DestingationFolder = "\\Oracle\MP\"
$EarliestModifiedTime = (Get-date).AddDays(-1) 
Get-ChildItem -File |? { $_.LastWriteTime -gt $EarliestModifiedTime } | Copy-Item -Destination $DestingationFolder

最后,如果您想從昨天開始(例如午夜開始)復制任何內容,請更改以下行:

$EarliestModifiedTime = (Get-date).AddDays(-1).Date

@Mr Tree 我還有一個相關的問題。

我每天在 D:\\Shares\\WinCAP Data\\DAYPROT\\OFS-HT(位置 1)位置有幾次新文件,固定名稱為 abcDD.MM.YYYY.csv(abc03.09.2015.csv),我有一項服務每 10 分鍾調用一次下面的我的 powershell 腳本。 我按照你之前在上層帖子中的建議做了。 我的目標是: 1. 檢查是否有名為 abcDD.MM.YYYY.csv 的新文件 | 2. 將其重命名為 abcDD.MM.YYYYHT.csv 並將其移動到“\\Oracle\\MP\\PURO\\”(位置 2)文件夾中,我需要在其中使用當天的現有內容重寫它。

問題是如果文件已經存在於位置2,腳本不想移動它並重寫它? 謝謝你的提示。

$DestingationFolder = "\\Oracle\MP\PURO\"
$EarliestModifiedTime = (Get-date).AddDays(-1)

Get-ChildItem "D:\Shares\WinCAP Data\DAYPROT\OFS-HT\*.csv" | ?{!($_.fullname -match "HT\.csv")} | Rename-Item -NewName { $_.Name -replace "\.csv", "HT.csv" }

$Files = Get-ChildItem "D:\Shares\WinCAP Data\DAYPROT\OFS-HT\*.csv" -File

foreach ($File in $Files) {
    if ($File.LastWriteTime -gt $EarliestModifiedTime)
    {
        Move-Item $File -Destination $DestingationFolder
        Write-Host "Moving $File"
    }
    else 
    {
        Write-Host "Not moving $File"
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM