en utilisant powershell; à partir d'un location donné a du dossier que je souhaite valider et afficher le nombre de types de files spécifiques du dossier respectif

En utilisant powershell à partir d'un location donné a du dossier que je souhaite valider et afficher le nombre de types de files spécifiques, le dossier respectif. J'ai essayé d'utiliser la command pour countr le nombre de files dans un dossier. Je peux get un nombre total de files disponibles dans l'location spécifié. J'ai essayé ceci:

Write-Host ( Get-ChildItem -filter '*cab' 'C:\Users\praveen\Desktop\Package _Sprint04\Sprint04\lfp\Niagara\hpgl2\win2k_xp_vista').Count if (Get-Process | ?{ $Count -eq "13"}) { Write-Host "Number of CAB files are right!" } else { Write-Host "Incorrect!! number of CAB file" } 

Get-Process ne vous amènera nulle part. Affectez le Count à une variable et testez si la valeur de cette variable est alors 13:

 $cabFileCount = (Get-ChildItem -Filter "*.cab" "C:\path\to\folder").Count Write-Host $cabFileCount if($cabFileCount -eq 13){ # Success! Write-Host "$cabFileCount files found, perfect!" } else { # Failure! Write-Host "$cabFileCount files found, incorrect!" } 

Essaye ça. Vous pouvez append n'importe quelle quantité de dossiers, types de files et counts de files à la variable $FoldersToCheck :

 # File to store log $LogFile = '.\FileCount.log' $FoldersToCheck = @( @{ Path = 'C:\path\to\folder' FileType = '*.cab' FileCount = 13 }, @{ Path = 'C:\path\to\folder\subfolder' FileType = '*.txt' FileCount = 14 }, @{ Path = 'D:\path\to\some\other\folder' FileType = '*.log' FileCount = 15 } # ... etc, add more hashtables for other folders ) $FoldersToCheck | ForEach-Object { $FileCount = (Get-ChildItem -LiteralPath $_.Path -Filter $_.FileType | Where-Object {!($_.PSIsContainer)}).Count if ($FileCount -eq $_.FileCount) { $Result = "Success! Expected $($_.FileCount) file(s) of type $($_.FileType) in folder $($_.Path), found $FileCount files" } else { $Result = "Failure! Expected $($_.FileCount) file(s) of type $($_.FileType) in folder $($_.Path), found $FileCount files" } # Output result to file and pipeline $Result | Tee-Object -LiteralPath $LogFile } 

Exemple de sortie:

 Success! Expected 13 file(s) of type *.cab in folder C:\path\to\folder, found 13 files Failure! Expected 14 file(s) of type *.txt in folder C:\path\to\folder\subfolder, found 10 files Failure! Expected 15 file(s) of type *.log in folder D:\path\to\some\other\folder, found 18 files