Que fait single quote dans les fichiers Windows batch?

j'ai récemment lancé une commande dans Windows cmd avec des guillemets simples et j'ai découvert qu'elle ne se comportait pas comme je l'espérais.

From trying to google "Windows batch simple quote vs double quote" j'ai trouvé quelques articles où les gens ont demandé à propos de windows traiter les guillemets simples comme les guillemets doubles, et sur la façon dont bash traite les guillemets simples et les guillemets doubles différemment. Cependant, je n'ai pas pu trouver facilement une explication explicite de ce que font les guillemets simples dans Windows batch commande.

Alors, que font les guillemets simples dans windows fichiers batch? - Ils effectuer toute sorte de citer la fonctionnalité?

25
demandé sur math4tots 2014-06-12 02:42:52
la source

1 ответов

apostrophes ne sont pas utilisés par le cmd.processeur de commandes exe sauf pour enfermer la commande à exécuter dans une instruction FOR /F:

for /f %%A in ('someCommand') do ...

ou pour spécifier une chaîne à traiter par FOR / F si L'option USEBACKQ est utilisée:

for /f "usebackq" %%A in ('some string') do ...

toutes les autres citations traitées par le cmd.exe est fait avec des guillemets doubles. Cependant, il y a des utilitaires Windows (commandes externes) comme WMIC qui utilisent des guillemets simples pour leurs propres fins de citation. Mais il n'y a pas de norme - chaque l'utilitaire est libre d'avoir sa propre interprétation de guillemets simples.

les règles incohérentes d'évasion et de citation utilisées par le cmd.exe vs. divers utilitaires en ligne de commande rend souvent difficile de découvrir la syntaxe correcte nécessaire pour une situation donnée.

Voici quelques remarques importantes sur l'utilisation des guillemets " avec cmd.EXE.

  • les guillemets sont une simple machine d'état. Le premier " s'allume en citant, le suivant s'allume hors.

  • Tous les caractères spéciaux sont traités comme des valeurs littérales quand cité, sauf pour les % et <newLine> les caractères toujours, et le ! caractère si l'extension retardée est activée, et le ^ caractère si l'extension retardée est activée et ! apparaît aussi quelque part à l'intérieur de la ligne.

  • si la citation est désactivée, alors vous pouvez échapper à un "^" pour éviter qu'il ne s'allume. Mais une fois que la citation est en marche, vous ne pouvez pas échapper à la fermeture ". La très prochaine " va toujours arrêter de citer.

31
répondu dbenham 2014-07-03 15:56:33
la source

Autres questions sur