redirection cmd dans fichier puis exploitation de celui-ci

Le
Trax
Bonjour,

J'utilise une redirection de commande msdos dans un fichier texte,
typiquement :

ipconfig > c:toto.txt

Ensuite j'ai besoin de lire toto.txt ligne par ligne, seulement il semble y
avoir un problème de format de fichier lors de readline.file il m'indique une
erreur "impossible car fin avant le début" ou un truc du genre.
qd je créé le txt à la mani celà fonctionne sans problème

need help ! :)

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jbongran
Le #676630
Trax wrote:
Bonjour,

J'utilise une redirection de commande msdos dans un fichier texte,
typiquement :

ipconfig > c:toto.txt

Ensuite j'ai besoin de lire toto.txt ligne par ligne, seulement il
semble y avoir un problème de format de fichier lors de readline.file
il m'indique une erreur "impossible car fin avant le début..." ou un
truc du genre.
qd je créé le txt à la mani celà fonctionne sans problème...

need help ! :)

Merci


Code ?

Trax
Le #676628
J'ai finalement eu une illumination hier soir :


Set PrinterList = fso.GetFile(PrinterList)
Set objPrinterList = PrinterList.OpenAsTextStream(1, -2)
Do while objPrinterList.AtEndOfStream <> True
ReadLine = objPrinterList.ReadLine

;)


Trax wrote:
Bonjour,

J'utilise une redirection de commande msdos dans un fichier texte,
typiquement :

ipconfig > c:toto.txt

Ensuite j'ai besoin de lire toto.txt ligne par ligne, seulement il
semble y avoir un problème de format de fichier lors de readline.file
il m'indique une erreur "impossible car fin avant le début..." ou un
truc du genre.
qd je créé le txt à la mani celà fonctionne sans problème...

need help ! :)

Merci


Code ?






Trax
Le #676627
hum... finalement l'illumination n'a pas été suffisante...
voici le code des 2 vbs. Les dim sont bien définis

==== CODE ===
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(Exe)) Then
Set objShell = createobject("wscript.shell")
ToRun = Exe & " > " & List
objShell.exec "cmd /k " & Torun

==== /CODE ===
==== CODE 2===
'' Analyse du fichier liste d'imprimantes

Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(ListFile)) Then

' Ecriture Log
objLogFile.WriteLine Now & " : File Exist : " & ListFile & " - Ouverture
de celui-ci"

Set objList = fso.GetFile(PrinterList)
Set objList = objListFile.OpenAsTextStream(1, -2)
Do while objList.AtEndOfStream <> True
ReadLine = objList.ReadLine

' Ecriture Log
objLogFile.WriteLine Now & " : Ligne lue : " & Readline

==== CODE 2===

J'y ai cru hier soir... mais apparemment non.
je ne vois pas ce qui peut bloquer la dessus :s







Trax wrote:
Bonjour,

J'utilise une redirection de commande msdos dans un fichier texte,
typiquement :

ipconfig > c:toto.txt

Ensuite j'ai besoin de lire toto.txt ligne par ligne, seulement il
semble y avoir un problème de format de fichier lors de readline.file
il m'indique une erreur "impossible car fin avant le début..." ou un
truc du genre.
qd je créé le txt à la mani celà fonctionne sans problème...

need help ! :)

Merci


Code ?






Trax
Le #676626
Bon, je sature!
la script semblait correct, mais je suis maintenant confronté à des
problèmes d'hétérogénéité du parc... saleté de nt4 ;)

Je vais remonté au probème initial : migrer des imprimantes sur un parc de
machine (migrer toutes les imprimantes \srv1* vers \srv2* )

Il me semblait que celà était faisable facilemnt par script, mais je dois me
résoudre...je ne suis pas fait pour ca! lol

Je vais poser ma question sur le forum adequat.

Merci!




Trax wrote:
Bonjour,

J'utilise une redirection de commande msdos dans un fichier texte,
typiquement :

ipconfig > c:toto.txt

Ensuite j'ai besoin de lire toto.txt ligne par ligne, seulement il
semble y avoir un problème de format de fichier lors de readline.file
il m'indique une erreur "impossible car fin avant le début..." ou un
truc du genre.
qd je créé le txt à la mani celà fonctionne sans problème...

need help ! :)

Merci


Code ?






jbongran
Le #676331
Trax wrote:
hum... finalement l'illumination n'a pas été suffisante...
voici le code des 2 vbs. Les dim sont bien définis

==== CODE === >
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(Exe)) Then
Set objShell = createobject("wscript.shell")
ToRun = Exe & " > " & List
objShell.exec "cmd /k " & Torun

==== /CODE === >
==== CODE 2=== >
'' Analyse du fichier liste d'imprimantes

Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(ListFile)) Then

' Ecriture Log
objLogFile.WriteLine Now & " : File Exist : " & ListFile & " -
Ouverture de celui-ci"

Set objList = fso.GetFile(PrinterList)
Set objList = objListFile.OpenAsTextStream(1, -2)
Do while objList.AtEndOfStream <> True
ReadLine = objList.ReadLine

' Ecriture Log
objLogFile.WriteLine Now & " : Ligne lue : " & Readline

==== CODE 2=== >

J'y ai cru hier soir... mais apparemment non.
je ne vois pas ce qui peut bloquer la dessus :s







Trax wrote:
Bonjour,

J'utilise une redirection de commande msdos dans un fichier texte,
typiquement :

ipconfig > c:toto.txt

Ensuite j'ai besoin de lire toto.txt ligne par ligne, seulement il
semble y avoir un problème de format de fichier lors de
readline.file il m'indique une erreur "impossible car fin avant le
début..." ou un truc du genre.
qd je créé le txt à la mani celà fonctionne sans problème...

need help ! :)

Merci


Code ?



Ci-dessous un exemple pour lire le fichier généré par ipconfig;
A noter que les retours lignes sont des retours chariot (vbCr) et non des
retours chariot suivis d'un saut de ligne (VBCrLf).
Voir aussi ces deux scripts de notre gourou JCB, qui aident souvent dans les
cas comme celui-ci
http://bellamyjc.org/fr/vbsdownload.html#ansi2oem
http://bellamyjc.org/fr/vbsdownload.html#oem2ansi

Sub RunRedirect(strExeName, strOutFile)
Dim WShell, fso, f, strLine, strTemp, sep
Set WShell = CreateObject("WScript.Shell")
WShell.Run "%COMSPEC% /C " & strExeName & " > " & strOutFile, 1, 0
Set WShell = Nothing
sep = ""
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(strOutFile, 1, False, -2)
Do While Not f.AtEndOfStream
strLine = Replace( Trim(f.ReadLine()), VbCr, "")
If Len(strLine) > 0 Then
strTemp = strTemp & sep & strLine
sep = VbCrLf
End If
Loop
WScript.Echo strTemp
f.Close
Set f = Nothing
fso.DeleteFile strOutFile
Set fso = Nothing
End Sub

Call RunRedirect("ipconfig", "d:testtoto.txt")



Trax
Le #676327
Merci pour l'info :)


Trax wrote:
hum... finalement l'illumination n'a pas été suffisante...
voici le code des 2 vbs. Les dim sont bien définis

==== CODE === > >
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(Exe)) Then
Set objShell = createobject("wscript.shell")
ToRun = Exe & " > " & List
objShell.exec "cmd /k " & Torun

==== /CODE === > >
==== CODE 2=== > >
'' Analyse du fichier liste d'imprimantes

Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(ListFile)) Then

' Ecriture Log
objLogFile.WriteLine Now & " : File Exist : " & ListFile & " -
Ouverture de celui-ci"

Set objList = fso.GetFile(PrinterList)
Set objList = objListFile.OpenAsTextStream(1, -2)
Do while objList.AtEndOfStream <> True
ReadLine = objList.ReadLine

' Ecriture Log
objLogFile.WriteLine Now & " : Ligne lue : " & Readline

==== CODE 2=== > >

J'y ai cru hier soir... mais apparemment non.
je ne vois pas ce qui peut bloquer la dessus :s







Trax wrote:
Bonjour,

J'utilise une redirection de commande msdos dans un fichier texte,
typiquement :

ipconfig > c:toto.txt

Ensuite j'ai besoin de lire toto.txt ligne par ligne, seulement il
semble y avoir un problème de format de fichier lors de
readline.file il m'indique une erreur "impossible car fin avant le
début..." ou un truc du genre.
qd je créé le txt à la mani celà fonctionne sans problème...

need help ! :)

Merci


Code ?



Ci-dessous un exemple pour lire le fichier généré par ipconfig;
A noter que les retours lignes sont des retours chariot (vbCr) et non des
retours chariot suivis d'un saut de ligne (VBCrLf).
Voir aussi ces deux scripts de notre gourou JCB, qui aident souvent dans les
cas comme celui-ci
http://bellamyjc.org/fr/vbsdownload.html#ansi2oem
http://bellamyjc.org/fr/vbsdownload.html#oem2ansi

Sub RunRedirect(strExeName, strOutFile)
Dim WShell, fso, f, strLine, strTemp, sep
Set WShell = CreateObject("WScript.Shell")
WShell.Run "%COMSPEC% /C " & strExeName & " > " & strOutFile, 1, 0
Set WShell = Nothing
sep = ""
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(strOutFile, 1, False, -2)
Do While Not f.AtEndOfStream
strLine = Replace( Trim(f.ReadLine()), VbCr, "")
If Len(strLine) > 0 Then
strTemp = strTemp & sep & strLine
sep = VbCrLf
End If
Loop
WScript.Echo strTemp
f.Close
Set f = Nothing
fso.DeleteFile strOutFile
Set fso = Nothing
End Sub

Call RunRedirect("ipconfig", "d:testtoto.txt")








Publicité
Poster une réponse
Anonyme