Freigeben über


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.

  1. Vorbereitungen:Einschränkungen

  2. Zum Verarbeiten von Sonderzeichen:Codieren eines Bezeichners, Decodieren eines Bezeichners

Vorbereitungen

Zeichen, die in Windows PowerShell-Pfadnamen nicht unterstützt werden, können als „%“-Zeichen gefolgt vom Hexadezimalwert des Bitmusters, das das Zeichen darstellt, dargestellt bzw. 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 akzeptiert als Eingabe einen SQL Server-Bezeichner. 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 akzeptiert einen codierten SQL Server-Bezeichner als Eingabe 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 Zeichen, die von Encode-SqlName codiert und von Decode-SqlNamedecodiert werden:

Zeichen \ / : % < > * ? [ ] |
Hexadezimale Codierung %5C %2F %3A %25 %3C %3E %2A %3F %5B %5D %7C

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")  

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"  

Weitere Informationen

SQL Server-Bezeichnern in PowerShell
SQL Server PowerShell-Anbieter
SQL Server-PowerShell