我有这些文件每天用于CCTV的录制,它们是基于每天日期的默认输出。我只希望脚本将它们与特定通道文件夹一起转移到NAS存储中。
01_20190515_135255
02_20190515_135315
03_20190515_135317
04_20190515_135317
我需要一个脚本根据其频道将其移动到其特定文件夹
N:\Rover\CH1
N:\Rover\CH2
N:\Rover\CH3
N:\Rover\CH4
换句话说,我只想将它们组织到各自的文件夹中,放入我的NAS存储中。我下面的脚本可以进行基本传输。我想我只需要添加一些内容即可将它们组织到NAS存储中。
Get-ChildItem -Path "default path" -Recurse |
Where-Object {$_.LastWriteTime -lt (Get-date).AddDays(-31)} |
Move-Item -destination "destination"
我在网上进行了很多搜索,发现脚本将使用正则表达式进行此类处理。任何帮助表示赞赏。
答案 0 :(得分:0)
$DestinationPath = 'N:\Rover'
Get-ChildItem -Path "MyPath" -Recurse -File | Where-Object {$_.LastWriteTime -lt (Get-date).AddDays(-31)} | ForEach-Object {
$Channel = ('CH' + $_.BaseName.Split("_")[0].TrimStart('0'))
$DestinationFolder = Join-Path -Path $DestinationPath -ChildPath $Channel
Move-Item -Path $_.FullName -Destination $DestinationFolder
}
答案 1 :(得分:0)
$files = Get-ChildItem -Path "default path" -Recurse | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-31) }
foreach ($file in $files)
{
$channel = ($file.BaseName -replace '^([0-9]+)_.*','$1').TrimStart("0")
$destination = "N:\Rover\CH$channel"
$file | Move-Item -destination $destination
}
答案 2 :(得分:0)
主题的变化。
-match
运算符与(捕获组)一起使用,以将前两位数字存储在自动变量$Matches[1]
中,-Destination
中构建{script block}
。## Q:\Test\2019\05\23\SO_56270164.ps1
$Source = "A:\Test" # "X:\What\ever"
$Target = "A:\Rover" # "N:\Rover"
$DaysOld = (Get-date).Date.AddDays(-31)
Get-ChildItem -Path "$Source\[0-9][0-9]_*_*" -File -Recurse |
Where-Object {($_.LastWritetime -lt $DaysOld) -and
($_.BaseName -match '^(\d{2})_\d{8}_\d{6}') } |
Move-Item -Destination {'{0}\CH{1}' -f $Target,([int]$Matches[1]) } -WhatIf
# Remove -WhatIf if the output looks OK
样品运行:
> gci A:\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2019-04-15 00:00 0 01_20190415_135255.ext
-a---- 2019-05-15 00:00 0 01_20190515_135255.ext
-a---- 2019-04-15 00:00 0 02_20190415_135315.ext
-a---- 2019-05-15 00:00 0 02_20190515_135315.ext
-a---- 2019-04-15 00:00 0 03_20190415_135317.ext
-a---- 2019-05-15 00:00 0 03_20190515_135317.ext
-a---- 2019-04-15 00:00 0 04_20190415_135317.ext
-a---- 2019-05-15 00:00 0 04_20190515_135317.ext
> Q:\Test\2019\05\23\SO_56270164.ps1
> tree A:\ /F
A:\
├───Rover
│ ├───CH1
│ │ 01_20190415_135255.ext
│ │
│ ├───CH2
│ │ 02_20190415_135315.ext
│ │
│ ├───CH3
│ │ 03_20190415_135317.ext
│ │
│ └───CH4
│ 04_20190415_135317.ext
│
└───Test
01_20190515_135255.ext
02_20190515_135315.ext
03_20190515_135317.ext
04_20190515_135317.ext