Windows script batch pour lire un .fichier ini
Je suis en train de lire un .ini
fichier avec le format suivant:
[SectionName]
total=4
[AnotherSectionName]
total=7
[OtherSectionName]
total=12
Fondamentalement, je veux imprimer certaines valeurs de la .ini
fichier, par exemple le total des sous OtherSectionName
suivie par le total de AnotherSectionName
.
Vous devez vous connecter pour publier un commentaire.
Voici un fichier de commande (
ini.cmd
) vous pouvez utiliser pour extraire les valeurs pertinentes:Et voici une transcription montrant en action (j'ai manuellement en retrait à la sortie pour le rendre plus facile à lire):
Afin de les utiliser dans un autre
cmd
fichier, il suffit de remplacer leecho %val%
ligne ci-dessous avec tout ce que vous voulez faire avec elle):Je sais que je suis un peu en retard à la fête, mais j'ai décidé d'écrire un objectif général de fichier ini de l'utilitaire de script batch pour répondre à cette question.
Le script va vous permettre de récupérer ou de modifier des valeurs dans un fichier ini fichier de style. Ses recherches sont insensibles à la casse, et il conserve les lignes vides dans le fichier ini. En substance, elle vous permet d'interagir avec un fichier ini comme une sorte de très rudimentaire de la base de données.
Ce script fonctionnera bien si vous êtes en train de lire /écrire uniquement de valeurs alphanumériques ou symboles qui n'ont pas de signification particulière à l'
cmd
interprète. Si vous avez besoin de quelque chose capable de gérer des valeurs contenant des arobases, pourcentage, etc, voir le mise à Jour section ci-dessous.Exemple
Contenu de
example.ini
:Session de Test:
Mise à jour
Apparemment le pure lot de solution étouffe lorsqu'il rencontre des personnages comme
&
(et probablement%
et autres). Donc, ici, est plus robuste lot + JScript hybride script qui répond à ce problème. La syntaxe et de sortie sont les mêmes (mais avec un/d
commutateur pour supprimeritem=value
paires).Ce script définit
%ERRORLEVEL%=0
pour la réussite, et%ERRORLEVEL%=1
sur erreur.if !next!==/i set item=%%~I
J'ai court proposition pour lire config.fichier ini dans le répertoire actuel en forme de commandes windows (.chauve-souris):
Près de la fin de fichier de commandes nous coller ce code:
Et à proximité de début de fichier de commandes que nous appeler par:
config.ini
windows_batch.cmd
foo="C:/Program Files/Test/"
)Une vieille question, mais je viens de besoin et trouvé @paxdiablo réponse.
J'ai besoin de quelque chose de plus, donc j'ai enrichi sa réponse et je suis maintenant à donner en retour.
Ce que j'ai aussi besoin était de trouver ce qui touche à une valeur spécifique.
Aussi, explicitement le soutien de la racine de la section (pas de nom de la section).
Voici mon code, une fonction que j'ai mis dans une bibliothèque (CMDLib variable) je l'appelle quand j'en ai besoin (entre autres fonctions).
Pas de la syntaxe de la commande CMD? C'est une honte.. 😉
Espère que cela aide les autres ainsi.
Hmm, peut-être que cela aide quelqu'un.. A dû le construire depuis inifile.exe couru hors de trucs et semble every damn ini analyseur sur le web a besoin, "la CLÉ" quand j'ai besoin de toutes les valeurs vertu de [l'article]. Donc, voici la section impression..
Ouais, ouais, je sais, on dirait que c'est à partir de l'arrière, mais ça fonctionne bien, pas sûr que ça va fonctionner avec des espaces dans le dossier ou des espaces dans des fichiers. Construit fondamentalement juste .fichier ini dans le même dossier et a couru à partir de la ligne de commande.
Utilisation: genetix_ini.cmd section d'entrée.sortie en ext.ext
Mise à JOUR #2:
Semble, j'ai fait une erreur sur le pas de mise à zéro du 2 set de vars. Qui a commencé à cause d'un problème au deuxième passage du script.