2017-06-12 35 views
-3

我有一个目录,看起来像这样:使用powershell抓取目录中的特定文件并遍历它们?

20171206PAFile.txt 
20171206PBFile.txt 
20171206PCFile.txt 
20171106PAFile.txt 
20171106PBFile.txt 
20171006PAFile.txt 
20171006PBFile.txt  

等等

我要抢名为20171006的文件,然后做这些文件的东西,并移动到下一组的文件与名称20171106等,以迭代的方式。

并在此过程中将日期部分存储在变量中。

$date = 20171106 

有没有办法做到这一点?

[string]$FolderName = "C:\Users\Test\Desktop\TestDirectory" 

$Item = Get-ChildItem *.txt -Path $FolderName|Sort CreationTime| select -First 1 

$test = $Item.Name.Substring(0,8) 

我将在处理它们时将文件移出该目录,因此20171006文件将在第一次迭代后消失。然后是20171106文件等。

+3

你到目前为止尝试过什么?你可以发布你的代码,以便我们可以看到你有什么问题。 –

回答

1

PowerShell的方式是按日期对文件进行分组。所以

  • 得到文件
  • 检查有8个领先位数
  • 构建从第8位计算的属性由新的物业
  • 组由新的物业
  • 排序
  • 进一步处理取决于您计划的步骤。

Get-ChildItem *.txt| 
    Where-Object {$_.Name -match '^\d{8}'}| 
    Select-Object *,@{Name='DT';Expression={$_.Name.Substring(0,8)}}| 
    Sort-Object DT| 
    Group-Object DT|Format-Table -auto 

或者以别名作为一个内衬相同的:

gci *.txt|?{$_.Name -match '^\d{8}'}|select *,@{N='DT';E={$_.Name.Substring(0,8)}}|sort DT|Group DT|ft -auto 

示例输出,下一步可能是重复的组和扩展到文件名。

Count Name  Group 
----- ----  ----- 
    2 20171006 {@{PSPath=Microsoft.PowerShell.Core\FileSystem::X:\Test\20171006PBFile.txt; PSParent... 
    2 20171106 {@{PSPath=Microsoft.PowerShell.Core\FileSystem::X:\Test\20171106PAFile.txt; PSParent... 
    3 20171206 {@{PSPath=Microsoft.PowerShell.Core\FileSystem::X:\Test\20171206PCFile.txt; PSParent... 
0

你可以使用类似:

dir | findstr "20171106" | Foreach-object { $_ } 

干杯,

0

尝试这个

$FileNames [email protected]("20171106","20171006") 
$Path = "C:\" 
foreach($FileName in $FileNames){ 
    $Files = Get-ChildItem -Path $Path -file -Recurse -Include $FileName* 
    foreach($File in $Files){ 
     $File 
    } 
} 

或试试这个

$Files = @("win", "cmd") | foreach-object{ dir "C:\windows\system32" -Recurse -Include "$_*"} | ?{!$_.psiscontainer} 
Foreach($File in $Files){ 
    $File.FullName 
} 
0
Get-ChildItem \folder\to\loop -Recurse -Include *.<filetype> | Foreach-Object{ 

# stuff to do 
} 
+0

这通过'\ foldertoloop'循环并执行文件上的'stuff to do'* .filetype –

相关问题