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 function
war 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 .bashrc
oder setzen .profile
und es würde geladen werden.
Ich habe die profile.ps1
Datei mit dem function
in 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 regedit
lä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.