Soustraction de nombres dans un fichier txt (batch)

Résolu/Fermé
NkRedoxx Messages postés 63 Date d'inscription mercredi 8 juin 2016 Statut Membre Dernière intervention 20 juin 2016 - 14 juin 2016 à 16:52
NkRedoxx Messages postés 63 Date d'inscription mercredi 8 juin 2016 Statut Membre Dernière intervention 20 juin 2016 - 17 juin 2016 à 11:23
Bonjour, j'ai un fichier .txt qui reçoit des valeurs par rapport à un script à la suite j'aimerais savoir si c'est possible de créer un autre script capable de soustraire la première valeur avec la deuxième, la troisieme avec la quatrieme , la 5eme par la 6ème et ainsi de suite et renvoie a chaque fois le résultat dans un fichier excel avec la date et l'heure sachant qu'il ne faut pas à chaque fois supprimer les valeurs il faut les garder


voici un exemple de mon fichier txt :
4 982 701 020"
4 884 062 208"
4 982 701 052"
4 884 062 208"
4 982 701 084"
4 884 062 208"


voici ce que j'aimerais que cela rende c'est un exemple:

Le 14/06/2016 à 16h50 :

98638812

Le 15/06/2016 à 15h30 :
98638844 ........etc

Merci à vous,
A voir également:

1 réponse

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
15 juin 2016 à 09:14
hello
DOS ne peut pas traiter des grands nombres, il faut envisager un autre outil
C:> set /a x=4982701020-4884062208
Nombre non valide. Les nombres sont limités à une précision de 32 bits
0
NkRedoxx Messages postés 63 Date d'inscription mercredi 8 juin 2016 Statut Membre Dernière intervention 20 juin 2016
Modifié par NkRedoxx le 15/06/2016 à 09:22
okay d'accord je pourrais utilisé quel type d'outil ? une macro dans un fichier excel ?
Merci
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
15 juin 2016 à 10:07
powershell, vbs que je ne connais pas
sinon awk, commande Unix, pour DOS
C:> awk "BEGIN {print 4982701020-4884062208}"
98638812

http://gnuwin32.sourceforge.net/packages/gawk.htm
0
NkRedoxx Messages postés 63 Date d'inscription mercredi 8 juin 2016 Statut Membre Dernière intervention 20 juin 2016
Modifié par NkRedoxx le 15/06/2016 à 10:53
j'ai crée un troisième script dans lequel j'ai inscris tout ça et installer gawk :

@echo off
echo.
echo.
echo.>d:\script\awk.exe
awk "BEGIN {print 4982701020-4884062208}"


Mais awk n'est pas reconnu en tant que commande interne pourtant je viens de rajouter le chemin PATH !

Le deuxième problème étant que les chiffres présent dans le fichier txt ne seront a chaque fois pas les mêmes en fait ce ne sera pas à chaque fois 4982701020-4884062208 qu'il faudra effectué
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
15 juin 2016 à 12:27
mettre le chemin devant : \chemin\awk ...
il faut du code awk pour faire ce qu'on veut
C:> awk -f code.awk  fichier.txt
98638812
98638844
98638876
C:> type code.awk
{gsub("[ \"]", "")} ## on supprime espaces et "
NR%2 {a=$0; next} ## on stocke les lignes impaires dans la variable a
{print a-$0} ## on soustrait la ligne courante avec la ligne précédente
0
NkRedoxx Messages postés 63 Date d'inscription mercredi 8 juin 2016 Statut Membre Dernière intervention 20 juin 2016
15 juin 2016 à 14:14
J'ai toujours le même problème voici ce que j'ai ecris -->


awk -f c:\Program Files\GnuWin32\bin\awk.exe FINAL.txt

Mais rien à faire, awk n'est pas reconnu
0