Batch ou VBS extraction de donnée sur un fich
Fermé
admininfo
Messages postés
333
Date d'inscription
lundi 27 juillet 2009
Statut
Membre
Dernière intervention
1 avril 2014
-
19 avril 2012 à 13:46
admininfo Messages postés 333 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 1 avril 2014 - 24 avril 2012 à 12:45
admininfo Messages postés 333 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 1 avril 2014 - 24 avril 2012 à 12:45
A voir également:
- Batch ou VBS extraction de donnée sur un fich
- Fichier batch - Guide
- Vbs windows - Guide
- Fiche de pointage - Télécharger - Tableur
- Logiciel de recuperation de donnée - Guide
- Effacer les données de navigation - Guide
8 réponses
admininfo
Messages postés
333
Date d'inscription
lundi 27 juillet 2009
Statut
Membre
Dernière intervention
1 avril 2014
16
19 avril 2012 à 14:54
19 avril 2012 à 14:54
en cherchant sur le net je suis tomber sur ça c'est presque bon mais il me manque encore quelque truc car ça ne m'affiche pas tous les logiciel qui ce trouve sur le pc
pouvez vous m'aider ??
Function inventaire
Set oShell = CreateObject("wscript.Shell")
Set env = oShell.environment("Process")
strComputer = env.Item("Computername")
Const HKEY_LOCAL_MACHINE = &H80000002
Const UnInstPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
".\root\default:StdRegProv")
oReg.EnumKey HKEY_LOCAL_MACHINE, UnInstPath, arrSubKeys
software = "*******************************" & Now & "****************************" & vbCrLf
software = software & "*******************************Logiciels installés******************************" & vbCrLf
For Each subkey In arrSubKeys
'MsgBox subkey
If Left (subkey, 1) <> "{" Then
software = software & subkey & vbCrLf
End If
Next
software = software & "*********************************************************" & vbCrLf
Set fso = CreateObject("Scripting.FileSystemObject")
'Détermine si le fichier csv existe déjà ou s'il doit le créer
If Not fso.FileExists("inventaire " & strComputer & ".csv") Then
set ts = fso.CreateTextFile("Inventaire " & strComputer & ".csv", True)
Else
set ts = fso.OpenTextFile("Inventaire " & strComputer & ".csv", 2, True)
End If
ts.write software
inventaire=software
call Explorer("Inventaire " & strComputer & ".csv")
end function
Function Explorer(File)
' Ouverture du Dossier par l'explorateur windows
If Err.Number = vbEmpty Then
Set objShell = CreateObject("WScript.Shell")
objShell.Run ("Explorer" & " " & File & "\")
Else
MsgBox "VBScript Error: " & Error(Err.Number)
End If
end Function
Call inventaire
pouvez vous m'aider ??
Function inventaire
Set oShell = CreateObject("wscript.Shell")
Set env = oShell.environment("Process")
strComputer = env.Item("Computername")
Const HKEY_LOCAL_MACHINE = &H80000002
Const UnInstPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
".\root\default:StdRegProv")
oReg.EnumKey HKEY_LOCAL_MACHINE, UnInstPath, arrSubKeys
software = "*******************************" & Now & "****************************" & vbCrLf
software = software & "*******************************Logiciels installés******************************" & vbCrLf
For Each subkey In arrSubKeys
'MsgBox subkey
If Left (subkey, 1) <> "{" Then
software = software & subkey & vbCrLf
End If
Next
software = software & "*********************************************************" & vbCrLf
Set fso = CreateObject("Scripting.FileSystemObject")
'Détermine si le fichier csv existe déjà ou s'il doit le créer
If Not fso.FileExists("inventaire " & strComputer & ".csv") Then
set ts = fso.CreateTextFile("Inventaire " & strComputer & ".csv", True)
Else
set ts = fso.OpenTextFile("Inventaire " & strComputer & ".csv", 2, True)
End If
ts.write software
inventaire=software
call Explorer("Inventaire " & strComputer & ".csv")
end function
Function Explorer(File)
' Ouverture du Dossier par l'explorateur windows
If Err.Number = vbEmpty Then
Set objShell = CreateObject("WScript.Shell")
objShell.Run ("Explorer" & " " & File & "\")
Else
MsgBox "VBScript Error: " & Error(Err.Number)
End If
end Function
Call inventaire
admininfo
Messages postés
333
Date d'inscription
lundi 27 juillet 2009
Statut
Membre
Dernière intervention
1 avril 2014
16
19 avril 2012 à 15:33
19 avril 2012 à 15:33
donc pour info ça me liste dans un excel les nom qui se trouve dans la clé de registre software sauf que dans cette même clée j'ai par exemple un truc qui s'appel microsoft et ça ne m'indique pas le contenu de cette clé qui contien des masse de logiciel
je cherche à les extraire
merci
je cherche à les extraire
merci
admininfo
Messages postés
333
Date d'inscription
lundi 27 juillet 2009
Statut
Membre
Dernière intervention
1 avril 2014
16
20 avril 2012 à 10:59
20 avril 2012 à 10:59
up svp merci
admininfo
Messages postés
333
Date d'inscription
lundi 27 juillet 2009
Statut
Membre
Dernière intervention
1 avril 2014
16
23 avril 2012 à 08:36
23 avril 2012 à 08:36
rup
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
23 avril 2012 à 10:09
23 avril 2012 à 10:09
Bonjour,
Ta boucle subkey ne liste que les clés du root et pas les sous-clés.
Tu dois faire une fonction récursive pour lire toutes les clés.
Et autre remarque, si tu met ton code directement en VBA dans un classeur Excel il n'y aurait pas besoin de passer par un fichier CSV
A+
Ta boucle subkey ne liste que les clés du root et pas les sous-clés.
Tu dois faire une fonction récursive pour lire toutes les clés.
Et autre remarque, si tu met ton code directement en VBA dans un classeur Excel il n'y aurait pas besoin de passer par un fichier CSV
A+
admininfo
Messages postés
333
Date d'inscription
lundi 27 juillet 2009
Statut
Membre
Dernière intervention
1 avril 2014
16
23 avril 2012 à 12:20
23 avril 2012 à 12:20
oula merci je vais me documenter un peu sur les fonctions récursive alors, car je ne les connais pas du tout, mais en tout cas dans l'idée c'est ce que je cherche à faire
si tu a des info je suis preuneuse
merci de ton aide en tout cas
si tu a des info je suis preuneuse
merci de ton aide en tout cas
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
130
23 avril 2012 à 12:14
23 avril 2012 à 12:14
Salut admininfo,
Je ne connais pas le langage batch mais, d'après ce que j'en ai lu, ce n'est pas un langage très puissant et il demande des contorsions dès qu'il s'agit de faire des choses un peu élaborées. De plus, les scripts batch que j'ai vus ont un aspect rébarbatif dans lequel on ne perçoit pas de façon aisée et rapide le principe du programme.
De ce fait, je trouve assez inadapté l'emploi de script batch pour faire ce que tu veux faire.
VBS semble plus puissant que batch mais il ne me parait pas terrible non plus:
"Un inconvénient de VBSCRIPT est qu'il n'est pas portable sur un système autre que Windows, par exemple Unix. Ses concurrents Javascript, Perl, Python eux le sont. Si on doit travailler sur des systèmes hétérogènes, il peut être intéressant voire indispensable d'utiliser le même langage sur les différents systèmes."
https://tahe.developpez.com/web/vbscript/?page=page_2
Cela ne pose peut être pas de problème pour ton application actuellement, mais je ne trouverais pas très judicieux d'utiliser un programme qui ne pourrait pas s'adapter aux conditions dans lesquelles il opère si elles venaient à changer.
Bon, ce n'est pas le cas puisque tu as choisi batch.
En fait, perso j'utilise Python, qui est puissant, polyvalent, clair. De ce fait, je ne comprends pas pourquoi il y a encore des programmeurs qui s'échinent à utiliser des outils peu performants et vieillots alors qu'il en existe d'utilisation plus agréable et puissante. Je ne comprends pas pourquoi tu rames avec un programme batch, alors que la même application en Python tiendrait en quelques lignes plus lisibles, et serait surtout plus facilement évoluable: lermite222 dit qu'il faut que tu ajoutes maintenant une fonction récursive. Tout ça me parait bien compliqué alors que le projet que tu exposes parait bien simple.
Je ne connais pas le langage batch mais, d'après ce que j'en ai lu, ce n'est pas un langage très puissant et il demande des contorsions dès qu'il s'agit de faire des choses un peu élaborées. De plus, les scripts batch que j'ai vus ont un aspect rébarbatif dans lequel on ne perçoit pas de façon aisée et rapide le principe du programme.
De ce fait, je trouve assez inadapté l'emploi de script batch pour faire ce que tu veux faire.
VBS semble plus puissant que batch mais il ne me parait pas terrible non plus:
"Un inconvénient de VBSCRIPT est qu'il n'est pas portable sur un système autre que Windows, par exemple Unix. Ses concurrents Javascript, Perl, Python eux le sont. Si on doit travailler sur des systèmes hétérogènes, il peut être intéressant voire indispensable d'utiliser le même langage sur les différents systèmes."
https://tahe.developpez.com/web/vbscript/?page=page_2
Cela ne pose peut être pas de problème pour ton application actuellement, mais je ne trouverais pas très judicieux d'utiliser un programme qui ne pourrait pas s'adapter aux conditions dans lesquelles il opère si elles venaient à changer.
Bon, ce n'est pas le cas puisque tu as choisi batch.
En fait, perso j'utilise Python, qui est puissant, polyvalent, clair. De ce fait, je ne comprends pas pourquoi il y a encore des programmeurs qui s'échinent à utiliser des outils peu performants et vieillots alors qu'il en existe d'utilisation plus agréable et puissante. Je ne comprends pas pourquoi tu rames avec un programme batch, alors que la même application en Python tiendrait en quelques lignes plus lisibles, et serait surtout plus facilement évoluable: lermite222 dit qu'il faut que tu ajoutes maintenant une fonction récursive. Tout ça me parait bien compliqué alors que le projet que tu exposes parait bien simple.
admininfo
Messages postés
333
Date d'inscription
lundi 27 juillet 2009
Statut
Membre
Dernière intervention
1 avril 2014
16
Modifié par admininfo le 23/04/2012 à 12:23
Modifié par admininfo le 23/04/2012 à 12:23
oui sauf que dans ce cas je n'ai pas le choix le VBS ou le batch m'est imposé je ne peux que choisir l'un ou l'autre j'avais dèjà choisis le vbs pour ça plus grande souplesse plus qu'à trouver la solution d'exploiter les sous cléf donc la solution de lermitte 222 me semble pas mal je vais essayer enfin tenté, car je ne connais pas trop le vbs
en tout cas merci pour ta réponse
en tout cas merci pour ta réponse
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
130
23 avril 2012 à 12:35
23 avril 2012 à 12:35
Oui, j'ai bien vu ceci:
"les scripts qui gèrent la montée des lecteurs réseaux qui sont en vbs et en batch "
Je vois souvent de ces cas où un développeur est coincé sur des langages ringards parce que le logiciel à développer doit s'intégrer dans un ensemble lui-même ringard que les responsables ne veulent pas changer.
C'est étonnant de voir que dans un domaine comme l'informatique qui est perçu comme de pointe et en évolution constante, il y ait autant d'inertie. Bien sûr, ce n'est pas de ta faute. Je suppose que ton entreprise n'est pas une grosse entreprise habituée à traiter correctement les questions d'informatique.
Qu'est-ce que tu entends par "la montée des lecteurs réseaux" ?
Je me pose aussi une question: est-ce qu'un programme batch peut déclencher l'exécution d'un programme écrit en Python ? Sachant que les programmes Python se présentent sous forme de scripts aussi, ou d'exécutables si on fait ce qu'il faut pour (et que je ne sais pas faire personnellement)
"les scripts qui gèrent la montée des lecteurs réseaux qui sont en vbs et en batch "
Je vois souvent de ces cas où un développeur est coincé sur des langages ringards parce que le logiciel à développer doit s'intégrer dans un ensemble lui-même ringard que les responsables ne veulent pas changer.
C'est étonnant de voir que dans un domaine comme l'informatique qui est perçu comme de pointe et en évolution constante, il y ait autant d'inertie. Bien sûr, ce n'est pas de ta faute. Je suppose que ton entreprise n'est pas une grosse entreprise habituée à traiter correctement les questions d'informatique.
Qu'est-ce que tu entends par "la montée des lecteurs réseaux" ?
Je me pose aussi une question: est-ce qu'un programme batch peut déclencher l'exécution d'un programme écrit en Python ? Sachant que les programmes Python se présentent sous forme de scripts aussi, ou d'exécutables si on fait ce qu'il faut pour (et que je ne sais pas faire personnellement)
admininfo
Messages postés
333
Date d'inscription
lundi 27 juillet 2009
Statut
Membre
Dernière intervention
1 avril 2014
16
24 avril 2012 à 12:44
24 avril 2012 à 12:44
justement je bosse dans une entreprise international ^^
alors pour la question du langage on m'a demandé de le réaliser en VBS ou en Batch, car les employée qui vont s'en occuper derrière ne connaissent pas les nouveaux langages donc à mon départ pour suivre les scriptes ça leur sera plus facile de les comprendre pour la monter des lecteurs réseaux ça c'est ok je les lancent via un bat ce qui analyse via les groupes de l'ad les lecteurs à monter et les monte en vbs ça pas de soucie ça fonctionne.
là on m'a demandé de faire une liste des logiciels installés sur les postes du réseau et de les mettre dans excel en gros je dois récupérer dans le registre les logiciels installé et les mettre dans un excel..
j'ai trouvé un scripte sur le net permettant de faire cela en fessant remonter les unistall des logiciels mais seulement dans la boite tous les logiciels ne sont pas forcement installé avec leurs outils de désinstallation
donc, en gros je dois récupérer les sous clée des clée et c'est là que je coince car à la base moi et le développement ça ne fait pas deux je commence juste!! pas cool
alors pour la question du langage on m'a demandé de le réaliser en VBS ou en Batch, car les employée qui vont s'en occuper derrière ne connaissent pas les nouveaux langages donc à mon départ pour suivre les scriptes ça leur sera plus facile de les comprendre pour la monter des lecteurs réseaux ça c'est ok je les lancent via un bat ce qui analyse via les groupes de l'ad les lecteurs à monter et les monte en vbs ça pas de soucie ça fonctionne.
là on m'a demandé de faire une liste des logiciels installés sur les postes du réseau et de les mettre dans excel en gros je dois récupérer dans le registre les logiciels installé et les mettre dans un excel..
j'ai trouvé un scripte sur le net permettant de faire cela en fessant remonter les unistall des logiciels mais seulement dans la boite tous les logiciels ne sont pas forcement installé avec leurs outils de désinstallation
donc, en gros je dois récupérer les sous clée des clée et c'est là que je coince car à la base moi et le développement ça ne fait pas deux je commence juste!! pas cool
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
23 avril 2012 à 23:19
23 avril 2012 à 23:19
Bonjour,
Pour compléter mon poste précédant je pourrais éventuellement te donner quelque directive mas malheureusement pour le moment j'ai quelque soucis familiaux et ne pourais te répondre que dans huitaine, si pas de solution d'ici là je reviendrais.
A+
Pour compléter mon poste précédant je pourrais éventuellement te donner quelque directive mas malheureusement pour le moment j'ai quelque soucis familiaux et ne pourais te répondre que dans huitaine, si pas de solution d'ici là je reviendrais.
A+
admininfo
Messages postés
333
Date d'inscription
lundi 27 juillet 2009
Statut
Membre
Dernière intervention
1 avril 2014
16
24 avril 2012 à 12:45
24 avril 2012 à 12:45
je vais essayé d'avancer et de mettre au fur est à mesure se que je réussit à faire je doit le finir pour la 2éme semaine de juin donc ya un peu de temps
merci pour t'on aide et courage pour tes soucies
merci pour t'on aide et courage pour tes soucies