【发布时间】:2017-03-01 23:44:03
【问题描述】:
我正在尝试根据Get-Date 的时间戳复制文件,以将其与filename_10_00.ext 结构中从不同来源保存的文件相匹配。如果我使用 24 小时制,我可以使用 Get-Date 的小时数来确定我要查找的文件。 (这是运行每小时备份)
这就是我所拥有的:
$current_time = Get-Date
$hour_var = $current_time.Hour
Get-ChildItem -Path \\Path\To\Source | Where-Object {
$_.Name -match "$hour_var"
} | Copy-Item -Destination \\Path\To\Destination
有人可以告诉我为什么它似乎与我提供的 PowerShell 不匹配吗?
我正在寻找理想情况下没有导入模块的纯 PowerShell。
【问题讨论】:
-
请显示
Get-ChildItem -Path \\Path\To\Source的示例输出以及Get-ChildItem -Path \\Path\To\Source | Where-Object {$_.Name -match "$hour_var"}的期望和实际输出。 -
很遗憾,没有样本输出。所需的输出是它使用 $hour_var 作为正则表达式来扫描“filename_hh_mm_ss.ext”的所有文件,以比较从 $hour_var 返回的小时与文件名中的 hh 小时。
-
如果
Get-ChildItem -Path \\Path\To\Source没有产生任何输出,为什么你会惊讶于没有被复制? -
我很抱歉。我将 Get-ChildItem -Path \\Path\To\Source 的输出误解为副本的输出。将 Get-ChildItem 命令分配给 $test 后,当我写入主机 $test 时,我可以看到该文件夹中的文件
标签: powershell copy copy-item