Codierung und Decodierung von SQL Server-Bezeichnern
Begrenzungsbezeichner von SQL Server können Zeichen enthalten, die in Windows PowerShell-Pfaden nicht unterstützt werden. Diese Zeichen können angegeben werden, indem ihre Hexadezimalwerte codiert werden.
Vorbereitungen: Einschränkungen
Zum Verarbeiten von Sonderzeichen: Codieren eines Bezeichners, Decodieren eines Bezeichners
Vorbereitungen
Zeichen, die nicht in Windows PowerShell-Pfadnamen unterstützt werden, können als "%"-Zeichen gefolgt vom Hexadezimalwert des Bitmusters, das das Zeichen darstellt, dargestellt oder codiert werden (Beispiel: **%**xx). Codierung kann immer zur Verarbeitung von Zeichen verwendet werden, die in Windows PowerShell-Pfaden nicht unterstützt werden.
Das Cmdlet Encode-SqlName nimmt einen SQL Server-Bezeichner als Eingabe auf. Es gibt eine Zeichenfolge mit allen nicht von der Windows PowerShell-Sprache unterstützten Zeichen, die mit "%xx" codiert sind, aus. Das Cmdlet Decode-SqlName nimmt einen codierten SQL Server-Bezeichner als Eingabe auf und gibt den ursprünglichen Bezeichner zurück.
Einschränkungen
Das Encode-Sqlname-Cmdlet und das Decode-Sqlname-Cmdlet codieren oder decodieren nur die Zeichen, die in SQL Server-Begrenzungsbezeichnern zulässig sind, jedoch nicht in PowerShell-Pfaden unterstützt werden. Dies sind die von Encode-SqlName codierten und von Decode-SqlName decodierten Zeichen:
Zeichen |
\ |
/ |
: |
% |
< |
> |
* |
? |
[ |
] |
| |
Hexadezimale Codierung |
%5C |
%2F |
%3A |
%25 |
%3C |
%3E |
%2A |
%3F |
%5B |
%5D |
%7C |
[Nach oben]
Codieren eines Bezeichners
So codieren Sie einen SQL Server-Bezeichner in einem PowerShell-Pfad
Codieren Sie mithilfe einer der folgenden beiden Methoden einen SQL Server-Bezeichner:
Geben Sie den Hexadezimalcode für das nicht unterstützte Zeichen an, indem Sie die Syntax % XX verwenden, wobei XX der Hexadezimalcode ist.
Übergeben Sie den Bezeichners als Zeichenfolge in Anführungszeichen an das Encode-Sqlname-Cmdlet.
Beispiele (Codierung)
In diesem Beispiel wird die codierte Version des Zeichens ":" (%3A) dargestellt:
Set-Location Table%3ATest
Alternativ können Sie Encode-SqlName verwenden, um einen von Windows PowerShell unterstützten Namen zu erstellen:
Set-Location (Encode-SqlName "Table:Test")
[Nach oben]
Decodieren eines Bezeichners
So decodieren Sie einen SQL Server-Bezeichner aus einem PowerShell-Pfad
Verwenden Sie das Decode-Sqlname-Cmdlet, um die Hexadezimalcodierungen durch die von der Codierung dargestellten Zeichen zu ersetzen.
Beispiele (Decodierung)
Dieses Beispiel gibt “Table:Test” zurück:
Decode-SqlName "Table%3ATest"
[Nach oben]
Siehe auch
Konzepte
SQL Server-Bezeichnern in PowerShell