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.
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

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

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.
(1..10) | ForEach-Object {New-item “MyNewFile$_.txt”}

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:
Test-Path MyTextFile.txt

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}

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

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

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

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

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

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

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/