scripting
Powershell
Microsoft macht einem das Scripten mit Powershell schon mal ziemlich schwer:
PS C:\tmp> .\test.ps1 Die Datei "C:\tmp\test.ps1" kann nicht geladen werden, da die Ausführung von Sk ripts auf diesem System deaktiviert ist. Weitere Informationen erhalten Sie mit "get-help about_signing". Bei Zeile:1 Zeichen:11 + .\test.ps1 <<<< + CategoryInfo : NotSpecified: (:) [], PSSecurityException + FullyQualifiedErrorId : RuntimeException
So soll man das Ausführen von Scripten erlauben können:
Set-ExecutionPolicy Unrestricted
Das hilft aber auch nicht immer:
Set-ExecutionPolicy : Der Zugriff auf den Registrierungsschlüssel "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\Shel lIds\Microsoft.PowerShell" wurde verweigert. Bei Zeile:1 Zeichen:20 + Set-ExecutionPolicy <<<< Unrestricted + CategoryInfo : NotSpecified: (:) [Set-ExecutionPolicy], UnauthorizedAccessException + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand
Um das zu lösen, müssen wir den Registrierungseditor bemühen:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell] "ExecutionPolicy"="Unrestricted"
Update: Quelle
Die Bash austricksen
Folgende Problemstellung: In einem Shellscript soll eine Variable unter einfachen Hochkomma eingefügt werden. Von Haus aus geht das nicht, weil das einfache Hochkomma die Variable vor dem Auflösen durch die Shell schützt. Durch doppelte Hochkomma ersetzen geht auch nicht, weil die ebenfalls schon vorkommen und erhalten bleiben sollen weil diese Syntax noch vom nächsten Tool an diesen Stellen nötig sind.
> X=xy > echo '"ab" "cd" "$X"' "ab" "cd" "$X"
So klappt es schon mal nicht. Statt $X hätten wir gerne „xy“ da stehen. Was liegt also näher, als mit dem gut alten sed zu ersetzen?
echo $(echo '"ab" "cd" "$X"' | sed s/\$X/$X/g) "ab" "cd" "xy"
Schon klappt die Ersetzung.
Wie funktioniert das jetzt genau? Im sed wird der String „$X“ mit dem Inhalt von $X ersetzt. Wichtig ist dabei das $-Zeichen mit einem \ zu quoten.