powershell - 如何使用powershell根据丢失的文件获取以前的文件
问题描述
我想比较我的数组列表(文件夹内每个文件的文件名)和包含丢失文件的日志文件。(例如,在文件夹内我们有 24 个文件,假设我们有 01.csv、03.csv、04.csv 和 06.csv,而缺少的文件是 02.csv 和 05.csv 我想要复制 01 .csv 或 03.csv 如果缺少的文件是 02.csv 等等)如果你有任何想法可以让它变得简单。请帮忙!这是我的脚本,到目前为止我所做的是随机获取文件夹中的可用文件以提供丢失的文件。
$folder="D:\ERM\Dump_files\Hourly\RTDEG"
$RTDEG = @("rtdeg_$RTDEG_01", "rtdeg_$RTDEG_02", "rtdeg_$RTDEG_03",
"rtdeg_$RTDEG_04", "rtdeg_$RTDEG_05", "rtdeg_$RTDEG_06",
"rtdeg_$RTDEG_07", "rtdeg_$RTDEG_08", "rtdeg_$RTDEG_09",
"rtdeg_$RTDEG_10", "rtdeg_$RTDEG_11", "rtdeg_$RTDEG_12",
"rtdeg_$RTDEG_13", "rtdeg_$RTDEG_14",
"rtdeg_$RTDEG_15","rtdeg_$RTDEG_16",
"rtdeg_$RTDEG_17", "rtdeg_$RTDEG_18", "rtdeg_$RTDEG_19",
"rtdeg_$RTDEG_20", "rtdeg_$RTDEG_21", "rtdeg_$RTDEG_22",
"rtdeg_$RTDEG_23", "rtdeg_$RTDEG_24")
$files = Get-ChildItem $folder -recurse -Exclude "*.txt", "*.log" |
Where-Object {($_.CreationTime -gt (Get-Date).adddays(-4))}
if((Get-ChildItem "D:\ERM\Dump_files\Hourly\RTDEG" -Exclude "*.txt",
"*.log" | Measure-Object -line).lines -ge 24){
echo "Viola! No missing files."
}else{
echo "Validating the missing files."
$files.Basename | Out-File $folder\validation.txt
$fileRTDEG = $files | ForEach-Object { ($_.BaseName) }
set-Content $folder\validated.txt -value "Missing"
Compare-Object $RTDEG $fileRTDEG | select -ExpandProperty InputObject |
Out- File $folder\validated.txt -Append ascii
$compare = import-csv $folder\validated.txt
foreach($missed in $compare){
$data = $missed.Missing
$random = gci $folder -Exclude "*.txt", "*.log" | where {$_.psIsContainer -
eq $false}| Resolve-Path | Get-Random -Count 1
Copy-Item $random -Destination $folder\$data.csv
}}
另外我想制作一个循环来提供数组。但我不认为我做得对。这是我的代码:
$RTDEG = @()
for ($i = 01; $i -le 24; $i ++){
$date = (Get-Date).adddays(-4).ToString("yyyyMMdd")
$list = "rtdeg_" + "" + $date + "" + $i.ToString("00")
Write-Output $RTDEG
}
解决方案
推荐阅读
- r - 素食主义者中的 R cca 和 predict.cca
- mysql - 遍历MYSQL中的数组
- matlab - MATLAB - 查找位于嵌套单元格数组中的条目的多维索引
- merge - 根据查找表中的值创建 SAS 变量
- arrays - 如何在 Swift 4 中通过另一个 Ints 数组对字符串数组进行排序
- vba - MS Access VBA:将字符串拆分为预定义的宽度
- excel - 将单元格中的值与数组进行比较,如果为真则添加值
- macos - karabiner 元素(和 xmodmap):使用左命令作为 ctrl 和右命令作为 alt 不适用于键盘上的 zxcv 行
- python - 为什么相同正则表达式的 python re.findall() 会为两个等效的输入字符串产生不同的结果?
- c - C中原子变量的比较