ARGOMENTO
    about_Quoting_Rules

DESCRIZIONE BREVE
    Descrive le regole per l'utilizzo delle virgolette singole e 
    doppie in Windows PowerShell.


DESCRIZIONE DETTAGLIATA
    Le virgolette sono utilizzate per specificare una stringa 
    letterale. Una stringa può essere racchiusa tra virgolette 
    singole (') o doppie (").
 

    Le virgolette sono utilizzate anche per creare una stringa here. 
    Una stringa here è una stringa racchiuse tra virgolette singole o 
    doppie in cui le virgolette sono interpretate letteralmente. Una 
    stringa here si può estendere su più righe. Tutte le righe di una 
    stringa here vengono interpretate come stringhe, anche se non 
    sono racchiuse tra virgolette.


    Nei comandi ai computer remoti, le virgolette definiscono le 
    parti del comando che vengono eseguite nel computer remoto. In 
    una sessione remota, le virgolette determinano anche se le 
    variabili in un comando sono interpretate prima nel computer 
    locale o nel computer remoto.


 Stringhe racchiuse tra virgolette semplici e doppie

      Se si racchiude una stringa tra virgolette doppie, i nomi di 
      variabile preceduti dal simbolo del dollaro ($) vengono 
      sostituiti con il valore della variabile prima che la stringa 
      venga passata al comando per essere elaborata.
 

      Ad esempio:

          $i = 5
          "Il valore di $i è $i."


      L'output di questo comando è il seguente: 

          Il valore di 5 è 5


      Inoltre, in una stringa racchiusa tra virgolette doppie, 
      vengono valutate le espressioni e il risultato viene inserito 
      nella stringa. Ad esempio:

	  "Il valore di $(2+3) è 5."


      L'output di questo comando è il seguente:

	  Il valore di 5 è 5


      Se si racchiude una stringa tra virgolette semplici, la stringa 
      viene passata al comando esattamente come la si digita. Non 
      viene eseguita alcuna sostituzione. Ad esempio:

          $i = 5
          'Il valore di $i è $i.'


      L'output di questo comando è il seguente: 

          Il valore di $i è $i.


      Analogamente, le espressioni in stringhe racchiuse tra 
      virgolette singole non sono valutate. Vengono interpretati come 
      valori letterali. Ad esempio:

	  'Il valore di $(2+3) è 5.'


      L'output di questo comando è il seguente:

	  Il valore di $(2+3) è 5.


      Per impedire la sostituzione di un valore di variabile in una 
      stringa racchiusa tra virgolette doppie, utilizzare il 
      carattere di apice inverso (`)(ASCII 96) che rappresenta il 
      carattere di escape di Windows PowerShell.


      Nell'esempio seguente, il carattere di apice inverso che 
      precede la prima variabile $i impedisce che il nome della 
      variabile venga sostituito con il suo valore in Windows 
      PowerShell. Ad esempio:

          $i = 5
          "Il valore di `$i è $i."


      L'output di questo comando è il seguente: 

          Il valore di $i è 5.
     
    
      Per fare sì che le virgolette doppie vengano visualizzate in 
      una stringa, racchiudere l'intera stringa tra virgolette 
      semplici. Ad esempio:

          'Dice il detto: "Vivi e lascia vivere".'


      L'output di questo comando è il seguente:

          Dice il detto: "Vivi e lascia vivere".


      È anche possibile includere una stringa racchiusa tra 
      virgolette singole in una stringa racchiusa tra virgolette 
      doppie. Ad esempio:

          "Dice il detto: 'Vivi e lascia vivere'."


      L'output di questo comando è il seguente:

          Dice il detto: 'Vivi e lascia vivere'.


      In alternativa, raddoppiare le virgolette attorno a una frase 
      racchiusa tra virgolette doppie. Ad esempio:

          "Dice il detto: ""Vivi e lascia vivere""."


      L'output di questo comando è il seguente:

          Dice il detto: "Vivi e lascia vivere".


      Per includere una virgoletta singola in una stringa racchiusa 
      tra virgolette singole, utilizzare una seconda virgoletta 
      singola consecutiva. Ad esempio:

          'l''esempio'


      L'output di questo comando è il seguente:

          l'esempio


      Per forzare Windows PowerShell a interpretare letteralmente una 
      virgoletta doppia, utilizzare un carattere di apice inverso. In 
      questo modo si impedisce a Windows PowerShell di interpretare 
      le virgolette come un delimitatore di stringa. Ad esempio:

          "Utilizzare le virgolette (`") per iniziare una stringa."


      Poiché il contenuto delle stringhe racchiuse tra virgolette 
      singole è interpretato letteralmente, non è possibile 
      utilizzare il carattere di apice inverso per forzare 
      l'interpretazione di un carattere letterale in una stringa 
      racchiusa tra virgolette singole.

 
      Ad esempio, il comando seguente genera un errore poiché Windows 
      PowerShell non riconosce il carattere di escape. La seconda 
      virgoletta viene, viceversa, interpretata come la fine della 
      stringa.


	  PS C:\> 'Utilizzare una virgoletta (`') per iniziare una stringa.'
          Token ')' imprevisto nell'espressione o nell'istruzione.
          At line:1 char:27
          + 'Utilizzare una virgoletta (`') <<<< per iniziare una 
          stringa.'


 Stringhe here racchiuse tra virgolette semplici e doppie

      Le regole di uso delle virgolette per le stringe here sono 
      leggermente diverse.


      Una stringa here è una stringa racchiuse tra virgolette singole 
      o doppie in cui le virgolette sono interpretate letteralmente. 
      Una stringa here si può estendere su più righe. Tutte le righe 
      di una stringa here vengono interpretate come stringhe, anche 
      se non sono racchiuse tra virgolette.


      Come nelle stringhe normali, le variabili sono sostituite dal 
      loro valore nelle stringhe here racchiuse tra virgolette 
      doppie. Nelle stringhe here racchiuse tra virgolette singole, 
      le variabili non sono sostituite dal loro valore.

 
      È possibile utilizzare stringhe here per qualsiasi testo, ma sono 
      particolarmente utili per i tipi di testo seguenti:

          - testo che contiene virgolette letterali; 
          - più righe di testo, ad esempio il testo in un documento HTML o XML; 
          - il testo della Guida per uno script o funzione.


      Una stringa here può presentare qualsiasi dei formati seguenti, 
      dove <Invio> rappresenta il carattere nascosto di avanzamento 
      di riga o di nuova riga che viene aggiunto quando si preme il 
      tasto INVIO.
 

      Formato 1:

	  @"<Invio>
          <string> [string] ...<Invio>
          "@


      Formato 2:
 
	  @'<Invio>
          <string> [string] ...<Invio>
          '@


      In entrambi i formati, la virgoletta di chiusura deve essere il 
      primo carattere nella riga. 

   
      Una stringa here contiene tutto il testo tra i due caratteri 
      nascosti.
      Nella stringa here, tutte le virgolette sono interpretate 
      letteralmente.
      Ad esempio:

	  @"
	  Per accedere alla Guida, digitare "get-help"
	  "@

    
      L'output di questo comando è il seguente:

	  Per accedere alla Guida, digitare "get-help"


      L'utilizzo di una stringa here può semplificare l'utilizzo di 
      una stringa in un comando. Ad esempio:

	  @"
          Utilizzare una virgoletta (') per iniziare una stringa.
          "@

	    
      L'output di questo comando è il seguente:

          Utilizzare una virgoletta (') per iniziare una stringa.


      Nelle stringhe here racchiuse tra virgolette singole, le 
      variabili sono interpretate letteralmente e vengono riprodotte 
      esattamente. Ad esempio:

          @'
	  La variabile $profile contiene il percorso
          del profilo di Windows PowerShell.
          '@


      L'output di questo comando è il seguente:

	  La variabile $profile contiene il percorso
          del profilo di Windows PowerShell.


      Nelle stringhe here racchiuse tra virgolette doppie, le 
      variabili sono sostituite dai loro valori. Ad esempio:

	  @" 
          Anche se non è stato creato un profilo, il percorso del 
          file di profilo è:
          $profile.
          "@

    
      L'output di questo comando è il seguente:

	  Anche se non è stato creato un profilo
	  il percorso del file di profilo è:
	  C:\Users\User01\Documenti\WindowsPowerShell\Microsoft.PowerShell_profile.ps1.


      Le stringhe here sono utilizzate in genere per assegnare più 
      righe a una variabile. Ad esempio, la stringa here seguente 
      assegna una pagina di XML alla variabile $page.


        $page = [XML] @"
        <command:command xmlns:maml="https://schemas.microsoft.com/maml/2004/10" 
        xmlns:command="https://schemas.microsoft.com/maml/dev/command/2004/10" 
        xmlns:dev="https://schemas.microsoft.com/maml/dev/2004/10">
 	    <command:details>
	    	    <command:name>
                       Format-Table
		    </command:name>
		    <maml:description>
			<maml:para>Formats the output as a table.</maml:para> 
		    </maml:description>
		    <command:verb>format</command:verb>
		    <command:noun>table</command:noun>
		    <dev:version></dev:version>
 	    </command:details>
        ...
        </command:command>
        "@
   

      Le stringhe here rappresentano inoltre un formato pratico per 
      l'input nel cmdlet ConvertFrom-StringData che converte le 
      stringhe here in tabelle hash. Per ulteriori informazioni, 
      vedere ConvertFrom-StringData.


VEDERE ANCHE
    about_Escape_Characters
    ConvertFrom-StringData




Argomenti della Guida