C'è un modo per modificare la posizione predefinita di PowerShell?
Come si imposta la directory di lavoro predefinita di PowerShell?
C'è un modo per modificare la posizione predefinita di PowerShell?
Come si imposta la directory di lavoro predefinita di PowerShell?
Risposte:
È possibile specificare la directory da aprire all'avvio di PowerShell:
powershell.exe -NoExit -command "& {Set-Location $env:systemroot}"
Basta usarlo nella tua scorciatoia.
Oppure utilizza un profilo per impostare una directory di avvio.
pwsh.exe -WorkingDirectory C:\YourLocation\Goes\Here
Crea un profilo PowerShell come segue.
Esegui PowerShell come amministratore ed esegui il comando seguente:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Ciò consentirà a PowerShell di eseguire script locali e script scaricati da Internet che sono stati firmati. Maggiori informazioni su questo comando nella documentazione .
Nella Documents
cartella, trova una cartella denominata WindowsPowerShell
per PowerShell classico o PowerShell
per PowerShell Core più recente. Se non esiste, va bene; crealo e basta.
profile.ps1
nella WindowsPowerShell
cartella (o PowerShell
per PowerShell Core).Apri profile.ps1
e aggiungi il seguente comando per impostare la directory di lavoro predefinita:
Set-Location C:\my\default\working\directory
Apri una nuova finestra di PowerShell ... le modifiche dovrebbero avere effetto.
powershell -File "myscript.ps1"
powershel -NoProfile -File "myscript.ps1"
Avevo provato le risposte di cui sopra in Windows Server 2016 senza successo.
Ma ho trovato questo approccio (dovrebbe essere lo stesso per Windows 10) funzionante per me.
Fatto!
Nella stessa finestra di dialogo Proprietà puoi anche modificare molte altre impostazioni come caratteri, colori, dimensioni e nella scheda Collegamento lì tramite il pulsante Advanced. È possibile selezionare se quella sessione di PowerShell deve essere eseguita con privilegi di amministratore.
Run as administrator
nel .lnk
menu avanzato. La soluzione sembra essere qui stackoverflow.com/questions/31622469/...
Run as aministrator
casella di controllo avanti e indietro.
Un modo più semplice per impostare la directory predefinita è il seguente:
Fare clic con il pulsante destro del mouse sull'icona di Windows PowerShell in Start, quindi fare nuovamente clic con il pulsante destro del mouse su Windows PowerShell e selezionare Proprietà (non Esegui come amministratore e non Windows PowerShell ISE )
Inserendo il Set-Location
tuo profilo cambierà incondizionatamente la directory di lavoro corrente, il che potrebbe avere conseguenze indesiderate per quanto riguarda la directory di lavoro per gli script che esegui tramite "run with PowerShell".
Una soluzione alternativa consiste nel modificare la directory di lavoro per i .lnk
file in PowerShell che di solito si trova in %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
. Fare clic con il pulsante destro del mouse su un collegamento e modificare la directory di lavoro da %HOMEDRIVE%%HOMEPATH%
alla directory desiderata.
Run as administrator
nel .lnk
menu avanzato. La soluzione sembra essere qui stackoverflow.com/questions/31622469/...
-NoProfile
opzione come powershell -NoProfile -File "myscript.ps1"
Digita questo in PowerShell:
New-Item -path $profile -type file –force
Crea un file .ps1 nella cartella PowerShell. Aprilo e modificalo come:
Set-location C:\files
Fatto
Fare riferimento a questo collegamento. Funziona bene.
Invece di modificare incondizionatamente la directory di lavoro come indicato nelle risposte precedenti, è possibile scrivere una semplice funzione nel profilo di PowerShell da utilizzare Set-Location
per modificare rapidamente la directory di lavoro ogni volta che è necessario.
Controlla la risposta di Jeremy Danyow per creare / modificare un profilo PowerShell.
Aggiungi una o più funzioni al tuo profilo PowerShell:
function goto_this {set-location 'your\path\to\some\dir'}
function goto_that {set-location 'your\path to some\dir with space'}
Basta cambiare il nome della funzione e la directory a cui punta. L'utilizzo delle virgolette sul percorso è obbligatorio se contiene spazi. Cerco di mantenere il prefisso goto_
in quanto aiuta a ricordare i nomi delle funzioni.
Puoi iniziare a digitare, goto_
quindi premere TAB per scorrere tutte le funzioni aggiunte (ricordati di avviare una nuova finestra di PowerShell dopo aver aggiunto / modificato le funzioni).
Usando solo la riga di comando, se un file esiste già, verrà aggiunto ad esso:
$(if (-Not (Test-Path ~\Documents\WindowsPowerShell\)){ mkdir ~\Documents\WindowsPowerShell\}) ; echo "Set-Location c:\THELOCATIONYOUWANT" >> ~\Documents\WindowsPowerShell\profile.ps1
Con ciò, sembra esserci un po 'di confusione sulla "directory di lavoro" e sulla "posizione" di PowerShell. Quello che la maggior parte delle persone qui sta facendo e dice di fare è cambiare la "posizione" di PowerShell. La "directory di lavoro" è effettivamente diversa. Ecco un articolo che lo spiega.
Per coloro che non vogliono leggere l'articolo: apri PowerShell e usa ciò che altri hanno detto di fare Set-Location "C:\some\directory"
. Si noti che la "directory di lavoro" è ancora quella in cui è stato aperto PowerShell. In entrambi i casi "~"
o a "%SYSTEMROOT%\system32"
seconda che tu abbia eseguito come amministratore o meno. Per controllare la directory di lavoro, usa [Environment]::CurrentDirectory
.
Nota: nell'articolo l'autore dice di controllare la "directory di lavoro" utilizzando questo comando:
\[Environment\]::CurrentDirectory
Non sono sicuro che funzioni con le versioni precedenti di PowerShell, ma con PowerShell 5 (e versioni successive) devi usare [Environment]::CurrentDirectory
.
Questa soluzione imposta la cartella di lavoro corrente nella posizione in cui si trova lo script. Assicurati di posizionarlo all'inizio del tuo script, o almeno prima di provare a utilizzare il comando che si basa sul percorso della posizione.
Set-Location (Split-Path $MyInvocation.MyCommand.Path)