Wenn ich mit der rechten Maustaste auf einen Ordner oder eine Leerstelle innerhalb eines Ordners klicke, möchte ich eine Menüoption haben, die PowerShell an diesem Ort startet. Anschließend möchte ich eine Funktion / einen Alias ausführen, mit der das Verzeichnis reduziert und überschrieben wird, wenn Datei mit dem gleichen Namen existiert.
Update: Mit dem Cmdlet get-help in Powershell konnte ich diesen Befehl hacken, der das Arbeitsverzeichnis vereinfacht und überschreibt, wenn eine Datei vorhanden ist.
gci -r -file | move -force -destination $PWD
Update: Ich habe "Open with PowerShell" zum Kontextmenü von hinzugefügt regedit
[HKEY_CLASSES_ROOT\Directory\Background\shell\Open with PowerShell]
[HKEY_CLASSES_ROOT\Directory\Background\shell\Open with PowerShell\command]
@="powershell.exe -noexit -command Set-Location '%V'"
[HKEY_CLASSES_ROOT\Directory\shell\Open with PowerShell]
[HKEY_CLASSES_ROOT\Directory\shell\Open with PowerShell\command]
@="powershell.exe -noexit -command Set-Location '%V'"
Das Hinzufügen von a functionwar vielen anderen Sprachen ähnlich:
function flatten { gci -r -file | move -force -destination $PWD }
Aber ich kann nicht scheinen, dieses zu erhalten, um automatisch zu laden, wenn ich Powershell öffne. In Bash würde ich dies in .bashrcoder setzen .profileund es würde geladen werden.
Ich habe die profile.ps1Datei mit dem functionin hinzugefügt $pshome, jetzt bekomme ich diese Fehlermeldung:
. : File C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 cannot be loaded because running scripts is disabled
on this system. For more information, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:3
+ . 'C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
Ich bin mir nicht sicher, ob das Ändern der Sicherheitseinstellungen der einzige Weg ist, dies zu umgehen.
Wie kann ich zulassen, dass Skripte / Alias so sicher wie möglich geladen werden?
Aktualisieren:
Das Ändern des Befehls in den Eintrag unten in regeditlädt die Funktion, die ich benötige:
powershell.exe -noexit -command Set-Location '%V'; function flatten { gci -r -file | move -destination $PWD -force }
Dies ist eine Problemumgehung. Ich bin immer noch daran interessiert zu wissen, wie man ein Profil lädt, ohne riskante Änderungen an der Sicherheit des Betriebssystems vorzunehmen.