Задача:
Каталог, в который будут загружены различные файлы .csv. Это могут быть такие как file1.csv, file2.csv и т. Д.
Проблема:
Просмотрите файлы и переименуйте один в стандартизированный newfilename.csv. Затем этот файл будет обработан внешней программой, переименован и перемещен из каталога. У меня есть сценарий PowerShell, который делает это до определенного момента:
ent## Set the file location where the log files are
$file = "C:\logs"
$new = "newfilename.csv"
$chkFile = "C:\logs\newfilename.csv"
$fileExists = Test-Path $chkFile
## Loop through all the .csv files in the log folder
foreach ($file in gci $file -include *.csv -recurse){
if($fileExists -eq $True){
Write-Host "that file exists!"
Start-Sleep -s 60
} else{
Write-Host "file doesn't exist, renaming..."
rename-item -path $file -newname ("$new")}
Start-Sleep -s 10
}
Проблема в том, что, учитывая 5 файлов в каталоге, он переходит, переименовывает первый файл, а затем, возвращаясь по списку файлов, возвращает «false» для «-eq $ True» для $ fileExists. Список файлов просто не обновляется при повторном запуске (IE: создается ли какой-то массив в начале foreach)? На самом деле я никогда не писал скрипт PowerShell. Должен ли я использовать какую-то другую процедуру для просмотра файлов? Есть ли «обновление» списка, которое я должен выполнить?