Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

redirection cmd dans fichier puis exploitation de celui-ci

6 réponses
Avatar
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

6 réponses

Avatar
jbongran
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 ?

Avatar
Trax
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 ?






Avatar
Trax
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 ?






Avatar
Trax
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 ?






Avatar
jbongran
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")



Avatar
Trax
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")