J'ai un fichier JSON, nommé "config.json", qui ressemble à ceci: p>
Dans un fichier de commandes sous le même répertoire, je tiens à lire la valeur de l'élément "Runnvironment".
Mon script de lot ressemblerait à: p>
Quelqu'un peut-il me montrer comment faire cela? P> {"runenvironment": "dev"} code> p>
si [JSONELement] == 'dev' (
:: faire quelque chose
) code> p>
3 Réponses :
YO peut faire de cette manière
Serait-il possible de lire directement à partir du fichier JSON plutôt que de la ligne "Set String = ..."?
dans PowerShell Par exemple, vous pouvez faire:
@Echo off for /f "tokens=1,2 delims=:{} " %%A in (Config.json) do ( If "%%~B"=="Dev" Echo (%%~A=%%~B^) )
Juste une note pour ajouter que le ConvertFrom-JSON CODE> CMDLET a été introduit dans PowerShell-v3.0 , donc ne peut pas être disponible dans des systèmes d'exploitation antérieurs tels que Windows-7 , sans installer spécifiquement une mise à jour version PowerShell .
Si tout ce que vous avez à faire est d'effectuer une commande spécifique uniquement si la valeur de vous remplaceriez simplement runenvironment code> est
dev code> alors cela doit être tout ce dont vous avez besoin, (à partir d'un Fichier de lots ou le ligne de commande ) em>:
echo votre commande ici code> avec votre commande prévue. EM> P> P> P> P> P> P>
Mieux vaut utiliser une langue de script avec des outils pour la gestion des fichiers JSON. Pour un démarrage dans la ligne CMD
pour / f "jetons = 1,2 delims =: {}"% a in (fichier.json) do @if "% ~ b" == "dev" @echo% ~ a =% ~ B code> dans un fichier de parquet double les signes en pourcentage.
Si vous souhaitez toujours utiliser une langue de script sans spécificité JSON Traitement des outils de traitement, il est important de noter que le
.json code> Fichier peut transporter plusieurs
[JSONELYMENT] 'S code> avec la valeur code> S sur la même ligne et que ces lignes peuvent ou non contenir des accolades d'ouverture ni de fermeture. avoir des virgules traînant. Cela signifierait que vous auriez besoin d'isoler les lignes contenant la chaîne d'abord, puis d'analyser cette ligne pour déterminer votre élément et votre valeur spécifiques. la réponse que j'ai fournie utilise des utilisations
FindStr code> pour isoler les lignes, de sorte que cela puisse aider si ma réponse n'était pas exactement ce dont vous aviez besoin. I>
Parfois, il vous suffit de dire arrêter, vous utilisez le mauvais outil. Les fichiers de lots ne sont tout simplement pas le meilleur choix pour cela, leur tranchant est inférieure à la subpar et à écrire un analyseur robuste n'est tout simplement pas possible. Votre seul espoir est d'obtenir quelque chose qui peut lire votre valeur en supposant qu'il n'y ait pas de caractères étranges dans le fichier, mais cela ne sera jamais un véritable analyseur JSON.