Come Creare File e Cartelle con PowerShell

Quando hai bisogno di creare file e cartelle su un PC Windows, utilizzare l’interfaccia grafica sembra il modo più intuitivo per farlo. Tuttavia, PowerShell può creare in modo intelligente file e cartelle multiplo in blocco. Questo è un compito abbastanza comune per quasi ogni professionista IT, e in questa guida ti mostreremo come creare i tuoi file e cartelle utilizzando il cmdlet PowerShell New-Item.

Come creare un file in PowerShell

Una volta capito come utilizzare PowerShell, la velocità con cui puoi creare le cose rende molto più semplici i compiti noiosi. Diamo un’occhiata su come creare file e cartelle utilizzando i cmdlet New-Item, Add-Content e Test-Path.

Pubblicità

Come creare un file con il comando New-item

Creare un nuovo file con PowerShell può essere fatto con il cmdlet New-Item. Se volessi creare un nuovo file di testo chiamato MyTextFile.txt, la sintassi sarebbe la seguente:

New-Item MyTextFile.txt
Creating a file using the New-Item cmdlet

Nell’esempio sopra, PowerShell ha creato un file nella directory c:. Tuttavia, posso specificare una posizione diversa semplicemente aggiungendo il percorso al nome del file. Ecco un esempio qui sotto:

New-Item c:\tools\MyNewFile.txt
Creating a file in a different folder

Si noti che nella schermata catturata sopra, mi trovavo nella directory temp, ma ho creato il file nella directory tools. Una volta che si è familiarizzati con la creazione di un nuovo file, basta una riga di codice in più da aggiungere per iniziare a creare file in blocco.

Ecco un esempio di come utilizzare un semplice ciclo ForEach per creare 10 file, tutti con un nome simile.

Pubblicità

(1..10) | ForEach-Object {New-item “MyNewFile$_.txt”}
Create multiple files with a simple loop

Se necessario, è possibile utilizzare anche il cmdlet Get-ChildItem per elencare tutti i file in quella directory.

Crea un file dopo aver verificato che non esista già

È possibile utilizzare anche PowerShell per verificare se i file esistono già prima di tentare di crearli. Ci sono diversi modi per verificare se i file esistono già con PowerShell, ma il più semplice è utilizzare il cmdlet Test-Path.

Come suggerisce il nome, il cmdlet Test-Path può verificare se un percorso esiste. È possibile verificare i percorsi dei file e/o delle cartelle. Il cmdlet restituisce Vero se un file o una cartella esiste e Falso se non esiste.

Nell’esempio seguente, sto verificando se il file di nome MyTextFile.txt esiste. Poiché il file esiste, il cmdlet Test-Path ha restituito Vero:

Pubblicità

Test-Path MyTextFile.txt
Using test-Path to see if a file exists

Una volta appresa la logica per verificare se un file esiste, è possibile utilizzare il comando Test-Path con un istruzione If per creare un file quando Test-Path restituisce falso. Ti mostrerò come fare nell’esempio seguente:

  • Qui, sto utilizzando una variabile chiamata $NomeFile per il nome del file per rendere il mio codice più leggibile e evitare la ripetitività della digitazione.
  • Successivamente, ho aggiunto un’ istruzione If per verificare l’esistenza di un file. Le parentesi tonde contengono la condizione da testare. Le parentesi graffe contengono il codice che desidero eseguire se il test è vero. Nota che l’operatore -not è utilizzato nel mio esempio.
  • Il codice dice che se il file di nome MyTextFile.txt non esiste, allora il file dovrebbe essere creato. Un’ istruzione If si esegue solo se la condizione è vera.
  • I have added the -not parameter to change the condition to match on False instead of True.
$Filename = "MyTextFile.txt"
if (-not(test-path $Filename)){new-item $FileName}
Checking if a file exists and creating a new file if it doesn’t exist

Andiamo insieme attraverso l’output così sappiamo esattamente cosa è successo: Nell’esempio 1 ho eseguito il mio codice e non è successo nulla; nota che non c’è output. Questo perché nella mia cartella c:, un file di nome MyTextFile.txt esiste già. Poiché esiste, l’ istruzione if non ha eseguito il codice.

Nell’esempio 2, tuttavia, è possibile notare che ho cambiato la directory dalla directory temporanea alla directory degli strumenti. Poiché non c’è alcun file chiamato MyTextFile.txt in quest’ultima, quando eseguo il codice una seconda volta, l’istruzione if esegue il cmdlet New-Item e crea un nuovo file.

Come scrivere dati in un file nuovo o esistente

Abbiamo già visto come creare nuovi file con PowerShell. Tuttavia, se guardi le schermate precedenti, noterai che la dimensione del file di tutti i nuovi file è 0 byte. Questo perché il cmdlet New-Item crea effettivamente file vuoti.

Se desideri aggiungere dati a un file esistente, puoi utilizzare il cmdlet Add-Content. La sintassi è facile da comprendere, proprio come per il comando New-Item. Ecco un esempio sotto:

Add-Content mytextfile.txt -Value "Here's some sample text written via PowerShell"

In seguito, posso controllare il mio file utilizzando il cmdlet Get-Content.

get-content .\mytextfile.txt
Adding content to an existing file

I can also open the file in PowerShell using the Invoke-Item cmdlet.

Invoke-Item .\mytextfile.txt
Opening a file with the Invoke-Item cmdlet

Come sovrascrivere un file esistente

Se PowerShell può essere utilizzato per creare nuovi file, possiamo anche usarlo per sostituire file esistenti in una cartella. PowerShell ti avviserà se cerchi di creare un file mentre ne esiste già uno con lo stesso nome.

Puoi vedere nell’esempio qui sotto il messaggio di errore che PowerShell visualizza quando cerco di creare un file chiamato MyNewFile3.txt.

New-item .\MyNewFile3.txt
PowerShell warns of an existing file with the same name

Tuttavia, se desidero sostituire quel file, posso farlo aggiungendo il parametro -force, che sovrascriverà eventuali file esistenti con lo stesso nome.

new-item .\MyNewFile3.txt -Force
Overwriting a file using the -force parameter

Come creare una cartella in PowerShell

Abbiamo appena esaminato i diversi modi per creare file in PowerShell. Ora, vediamo come creare cartelle con i comandi New-item e md.

Crea una cartella con il comando New-item

Creare cartelle con PowerShell è anche un compito facile con lo stesso cmdlet New-Item che abbiamo usato in precedenza per creare file. Tutto ciò di cui abbiamo bisogno è specificare il parametro -ItemType.

Il parametro -ItemType controlla se il cmdlet New-Item crea un file, una directory (cartella), un collegamento simbolico, un punto di giunzione o un collegamento rigido. Puoi scoprire di più su queste opzioni sulla pagina Microsoft Docs per New-Item.

Creare una nuova cartella con PowerShell è simile a creare un nuovo file. Ecco un esempio con il comando qui sotto:

new-item TestFolder1 -ItemType Directory
Creating a folder using the New-Item cmdlet

Crea una cartella con il comando md

PowerShell è ora un linguaggio multi-piattaforma, il che significa che può essere eseguito su Windows, macOS o Linux. Il processo di creazione di file e cartelle da riga di comando in Windows, Linux e macOS è simile.

Tuttavia, ogni sistema operativo ha i propri comandi con nomi diversi per svolgere le stesse attività. Ad esempio, per creare una nuova cartella chiamata NewDirectory, ogni sistema operativo ha una sintassi simile con nomi di cmdlets diversi: In DOS, la sintassi è ‘MD NewDirectory’, ma in Linux è ‘MKDIR NewDirectory’.

Microsoft ha preso molti dei nomi popolari dei cmdlets da altri linguaggi e li ha inclusi in PowerShell. Comandi come MKDIR o MD non esistono effettivamente in PowerShell: Invece, sono alias dei rispettivi comandi di PowerShell che svolgono la stessa funzione.

In PowerShell, MD è un alias di MKDIR. Inoltre, MKDIR è un alias del cmdlet New-Item. Quindi se si digita MD, MKDIR o New-Item in PowerShell, tutti quei comandi hanno lo stesso effetto: eseguire il cmdlet New-Item.

Ecco un esempio rapido per evidenziare questa funzionalità.

md Demofile1.txt
mkdir demofile2.txt
new-item demofile 3.txt
Creating new files with PowerShell aliases

Negli esempi sopra, si può vedere che ho creato tre file utilizzando vari alias e nomi di cmdlet per il New-Item. Gli alias funzionano esattamente come digitare New-Item.

Conclusion

PowerShell consente di creare file e cartelle in molteplici modi. Il cmdlet New-Item rende estremamente facile creare file e cartelle.

Microsoft ha incluso alias che fanno riferimento a comandi di sistemi operativi popolari come DOS e Linux in PowerShell per aiutare gli amministratori a sentirsi come a casa. Possiamo anche utilizzare cicli per creare file e cartelle su larga scala e istruzioni logiche come If per assicurarci di creare solo file che non esistono già.

Possiamo inoltre garantire che i file già esistenti non vengano sovrascritti dal codice a meno che non vogliamo che lo siano. Tutte queste opzioni ci consentono di creare script per automatizzare il noioso processo di gestione di file e cartelle.

PowerShell è uno strumento molto versatile e ora che hai imparato come creare file e cartelle con esso, puoi consultare la nostra guida precedente su come utilizzare PowerShell per eliminare file e cartelle.

Source:
https://petri.com/powershell-how-to-create-files-folders/