Ci sono diverse cause molto comuni per cui un `.ps1` “al doppio clic non fa nulla”. In genere non significa che lo script non sia valido: spesso Windows non lo esegue (o lo esegue in modo diverso) e l’errore non viene mostrato.
Ecco le cause più frequenti (in ordine):
1) Execution Policy: PowerShell non consente l’esecuzione degli script
Windows può bloccare i file `.ps1` per policy di sicurezza. Quando fai doppio clic, non vedi il messaggio e “sembra” non succedere nulla.
Controlla / prova:
1. Apri
PowerShell come Amministratore
2. Verifica policy:
3. Prova (temporaneo e solo per la sessione corrente):
Codice: Seleziona tutto
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
4. Poi esegui lo script da PowerShell:
Nota: la soluzione “corretta” dipende dall’ambiente (azienda, domain, ecc.). Spesso l’approccio migliore è usare `-Scope Process` o firmare lo script.
---
2) Lo script è bloccato perché scaricato da Internet (“Mark of the Web”)
Se il file è stato scaricato (browser/email), Windows lo può bloccare.
Verifica e sblocca:
- Tasto destro sul file `.ps1` →
Proprietà
- In basso vedi “
Sblocca ” (o “Unblock”)
- Spunta
Sblocca → Applica → OK
In alternativa via PowerShell:
---
3) Doppio clic non mostra errori (e lo script fallisce subito)
Molti script lanciano errori ma senza finestra/visualizzazione (soprattutto se PowerShell parte e chiude).
Prova ad avviarlo manualmente:
1. Apri PowerShell nella cartella dello script
2. Esegui:
3. Guarda eventuali errori nel console.
---
4) Lo script dipende da percorsi/modi d’uso (es. assume la “current directory”)
Quando lo fai con doppio clic,
la “cartella di lavoro” (current directory) può essere diversa da quella in cui pensavi. Molti script fanno cose tipo:
- `Get-ChildItem` senza percorso assoluto
- riferimento a file relativi
- logging su percorsi relativi
Risultato: trova 0 file o non trova input.
Test rapido: lancia manualmente da quella cartella e vedi se cambia.
---
5) Mancano permessi sui file/cartelle (o sono in uso)
Se lo script rinomina file che:
- non hanno permessi,
- sono in uso (ad es. Excel/Word),
- sono protetti da “Controllo accesso”,
può fallire senza che tu lo veda (o con errore non visualizzato).
---
6) “Non fa nulla” perché i criteri per rinominare non matchano
Se lo script filtra per estensione/nome tipo `*.jpg`, `^old_`, ecc., e nella cartella non ci sono file che rispettano i criteri, non succede nulla.
---
Cosa mi serve per dirti il motivo esatto
Incollami qui
l’inizio dello script (prime ~30 righe) e/o la parte dove:
- prende la lista dei file (es. `Get-ChildItem`)
- fa il `Rename-Item`
- imposta il percorso
Oppure dimmi:
1) Come si chiamano i file e che tipo di ordinamento/rinominazione vuoi?
2) Lo script è stato scaricato da Internet o creato localmente?
3) Che Windows usi?
Se vuoi, puoi anche incollare l’output quando lo esegui da PowerShell con (se supporta `-Verbose`):
.