PowerShell Get-Date записывает неверные даты на перемещенные файлы - PullRequest
0 голосов
/ 21 мая 2018

Я создаю цикл PowerShell, который будет отслеживать и регистрировать «новые» файлы в определенной папке.Я разделяю часть имени файла и записываю эту часть и дату файла в текстовый документ, когда в папке обнаруживается новый файл.На втором проходе сценарий должен прочитать журнал, и если имя и дата файла уже существуют, запись следует пропустить.

Моя проблема заключается в том, что, когда новый файл попадает в папку, сценарий записываетимя файла и текущая дата / время.На втором проходе записывается разделенное имя файла и дата изменения, чего я и хочу.Я попытался использовать Get-Date ($file).LastWriteTime и $file | Get-Date (см. Строки 25 и 26).Оба командлета предоставляют текущую дату на первом проходе и фактическую дату изменения / создания на втором проходе.

Возможно, это не лучший способ отслеживать папку.Я открыт для предложений такого рода.Любой совет приветствуется!

#start loop
while($true){
    #clear $asin
    $asin = ""

    #address $outputFolder and identify $outputFiles
    $outputFiles = GCI -Path $outputFolder -Filter *.jpg -Recurse

    #isolate the $asin from each $outputFile
    foreach($file in $outputFiles){
        $asin = $file.name
        $asin = $asin.split('.')[0]
        Write-Host 'this is the asin'
        echo $asin

        #isolate the $asin + $variant from each $outputFile
        $variant = $file.name
        $variant = $variant.split('.')[1]
        $variant = $asin + '.' + $variant
        Write-Host 'this is the variant'
        echo $variant

        #get file $creation (reads 'Date modified' not 'Date created' as 'Date created' changes when files move)
        $creation = Get-Date ($file).LastWriteTime
        #$creation = $file | Get-Date
        echo $creation

        #read if $list contains $asin or not
        $listContents = Get-Content $list
        if($listContents -notcontains $asin + ' ' + $creation){
            Write-Host "Preparing to log $asin"
            $asin + ' ' + $creation | Add-Content $list
            #log asin at this point

        } elseif ($listContents -contains $asin + ' ' + $creation){
            Write-Host "$asin has already been logged"
        }

    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...