In Powershell elencare tutti i file in una directory è un compito molto facile. Dobbiamo solo usare il seguente comando per elencare tutti i file solo in una directory.

Tabella dei contenuti:

  • PowerShell List files in a Directory.
  • gci alias per get-chiltitem.
  • dir alias per get-childitem.
  • PowerShell elenca solo le directory.
  • PowerShell elenca solo le directory usando uno script più breve.
  • PowerShell elenca i file in modo ricorsivo.
  • PowerShell elenca le directory in modo ricorsivo.
  • Lista i file di un certo tipo di estensione.
  • PowerShell elenca i file di un certo tipo di estensione in modo ricorsivo.
  • Elenca i file fino a una profondità nelle sottodirectory.
  • Verdict.

La gente cerca anche:

Snippet di lavoro per Start-Job PowerShell 2020

gci -file

Lo script sopra è mostrato è eseguito e l’output è mostrato nell’immagine qui sotto.

ottenere tutti i file in una directory

Ci sono molte varianti e ne visitiamo alcune in questo post. Vedremo come nasce l’alias gci e vedremo anche alcuni alias diversi. Ci sono modi per ottenere solo le directory all’interno delle directory e anche fino a una certa profondità.

Visiteremo il maggior numero possibile di funzioni per elencare i file in una directory.

PowerShell List Files in a Directory:

Gli sviluppatori di PowerShell hanno reso ingiustificatamente facile trattare con file e cartelle in PowerShell. A differenza dello scripting tradizionale, non dobbiamo pensare troppo alla strutturazione dello script in PowerShell. Questo perché PowerShell è un input e output basato su oggetti. Se qualcuno è bravo in un linguaggio di programmazione orientato agli oggetti, lo scripting su PowerShell gli viene naturale.

Per iniziare, ottenendo solo i file in una directory, possiamo usare il cmdlet get-childitem. Aggiungeremo lo switch -file al cmdlet per recuperare solo i file in una specifica directory.

get-childitem -file

get child item file

Chiaro che questo risolve il nostro problema. Ma possiamo rendere lo script più efficiente? In effetti, possiamo.

gci Alias per Get-ChildItem:

Il cmdlet get-childitem ha un alias chiamato gci. Diminuisce lo sforzo di scrivere l’intero script. Lo script seguente produrrà l’output di cui abbiamo bisogno.

gci -file

gci -file

dir alias per Get-ChildItem:

Anche get-childitem ha un alias piuttosto popolare. Può essere sostituito con dir per ottenere gli stessi risultati.

dir -file

Lo script precedente produrrà l’output come segue.

dir file

PowerShell list only directories:

Abbiamo imparato come elencare solo i file in una directory specifica. Ora vedremo come elencare solo le directory da una directory. Possiamo farlo con l’aiuto dello switch -directory invece dello switch -file.

gci -directory

gci -directory

PowerShell list only directories short script:

Possiamo semplificare lo script con l’aiuto dello switch -di. È disponibile in quanto è sufficiente per identificare lo switch -directory senza alcuna ambiguità. Usate il seguente script per elencare solo le directory nella directory.

gci -di

Questo darà agli utenti il seguente output.

gci -di

PowerShell elenca solo i file in tutte le cartelle o directory:

Ora che abbiamo visto come elencare solo i file o solo le cartelle, non abbiamo ancora imparato come elencare solo i file nella directory. Possiamo fare proprio questo con l’aiuto dello switch -recurse. Lo script è dato qui sotto.

gci -file -recurse

get files recursively

Chiaro che questo è un ottimo script per arrivare solo ai file nella directory o nella cartella.

PowerShell elenca solo le cartelle in tutte le cartelle o directory:

Possiamo elencare solo i file nella directory e anche la successiva directory figlia utilizzando il seguente script.

gci -di -recurse

recursive directories

PowerShell elenca i file di un’estensione:

Se vogliamo possiamo elencare solo un certo tipo di file in una directory. Possiamo elencare solo i file PDF in una directory usando il seguente script.

gci -file *.pdf

solo i pdf

PowerShell elenca i file di un’estensione ricorsivamente:

Possiamo portare l’elenco dei file a un nuovo livello elencando solo i file di un’estensione ricorsivamente. L’esempio seguente dimostra proprio questo.

gci -file -r *.pdf

tipo di file ricorsivamente

Nota come usiamo lo switch -r invece dello switch -recurse poiché diminuisce la quantità di battitura che deve essere fatta.

PowerShell elenca i file di un’estensione in modo ricorsivo con profondità:

Possiamo elencare tutti i file in una directory e successive sottodirectory usando lo switch -recurse. Possiamo anche restringere la ricerca usando l’estensione del file. Ma cosa succede se non vogliamo cercare nelle cartelle che sono più profonde di 2 sottodirectory. Possiamo usare l’opzione -depth. Lo script qui sotto lo usa.

gci -file -d 1 -r *.pdf

con profondità

Lo script di cui sopra avrà get-childitem di tipo file, recupererà fino alle directory figlio 1, lo farà ricorsivamente e infine, si assicurerà di recuperare solo i pdf.

Verdict:

In questo post, abbiamo imparato a conoscere PowerShell List all files in a Directory. Lo abbiamo fatto usando l’alias get-childitem chiamato gci. Il gci accoppiato con lo switch -file fa quello che ci serve. Abbiamo anche recuperato i file di una certa estensione. Abbiamo ottenuto i file di una certa estensione in modo ricorsivo e anche fino a una profondità limitata.

Se volete altri fantastici post, rimanete sintonizzati su TecKangaroo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.