Assigner la sortie de la commande à la variable dans le fichier de commandes
Je suis en train d'affecter la sortie d'une commande à une variable - comme dans, je suis en train d'essayer de régler le courant de la version de flash à une variable. Je sais que c'est mal, mais c'est ce que j'ai essayé:
set var=reg query hklm\SOFTWARE\Macromedia\FlashPlayer\CurrentVersion>
ou
reg query hklm\SOFTWARE\Macromedia\FlashPlayer\CurrentVersion >> set var
Oui, comme vous pouvez le voir, je suis un peu perdu. Toute aide est appréciée!
- Si le ci-dessous les réponses n'ont pas les aider, de recherche de redirection sur google.
- double possible de Lot équivalent de Bash backticks
- En fait, la origine semble être de Comment puis-je obtenir le résultat d'une commande dans une variable dans windows?.
- double possible de Lot de Fichiers - Comment régler les commandes de sortie comme une variable
Vous devez vous connecter pour publier un commentaire.
Une méthode a déjà été conçu, cependant, de cette façon, vous n'avez pas besoin d'un fichier temp.
Cependant, je suis sûr que cela a de ses propres exceptions et limitations.
%%i was unexpected at this time.
comme résultat quand j'execute la commande ci-dessus. Je ne sais pas pourquoi.for /f "delims=" %i in ('command') do set output=%i
command
a un pipe ( | ), puis il les erreurs avec: "| était inattendu en ce moment." Quelqu'un peut-il aider à la syntaxe, s'il vous plaît?Ce post a une méthode pour y parvenir
Vous ne pouvez pas affecter un processus de sortie directement dans le var, vous devez analyser la sortie avec un For /F en boucle:
http://ss64.com/nt/for_f.html
PS: Changer la clé de registre utilisé si nécessaire.
Bien ici d'autres plus complexes de l'échantillon pour l'utilisation de Pour /F
Je l'ai rangé dans la sous-fonction :EXEC donc tous ses détails désagréables de mise en œuvre n'est pas portées au script principal.
Donc c'est un peu certains certains lots tutoriel.
Notes 'bout le code:
La décoration de Numéro deux est invite -$G. Il est là pour faire de l'invite de commande ressemble à ceci ->
echo %1 -^>...
donc là ^ rend possible la sortie d'une "> " par l'écho de ce que d'autre n'aurait pas été possible.@if not "%output%"==""
ressemble dans la plupart des langages de programmation - c'est peut-être différent de ce que vous attend (si vous n'êtes pas utilisé pour MS-lot). Bien enlever le '@' au début. L'étude de la sortie. Changer denot %output%==""
relancer et se demander pourquoi cela ne fonctionne pas. 😉Ce travail est pour moi