2017-06-12 34 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 –

相關問題