WSH - Fichier texte en écriture additionnel simultané ou presque
5 réponses
GOWAP
Bonjour,
sous Dos, avec un "echo text>>fichier.txt", j'ajoute à un fichier ascii
séquentiel un message.
Cela peut être fait plus ou moins simultanément de plusieurs ordinateur à la
fois, dans le cas d'un script d'ouverture de session utilisant un fichier
log par exemple.
Sous WSH/VBS, pouvez vous me dire comment je peux posséder pour effectuer le
même (ou équivalente) ajout de texte dans un fichier ascii acceptant
l'écriture plus ou moins simultané. Quand je demande en WSH, je n'attend pas
un Shell.run ("cmd /c echo text>>fch.txt) mais bien des commandes VBS ou WMI
digne de ce nom. Car d'après MS, dans Vista, adieu le cmd.exe (c'est pas
encore fait, il faudra attendre le SP1 de vista voir peut être le SP2).
L'idée est de pouvoir écris dans un log Ascii à partir d'un script wsh/vbs
exécuter dans un script de session ou de connexion afin de remonter des
informations d'erreur.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Georges MAUREL
Bonjour, Voici un exemple tiré de la documentation wscript
Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:testfile.txt", ForAppending, True) f.Write "Bonjour !" f.Close
Cordialement Georges
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
Bonjour,
sous Dos, avec un "echo text>>fichier.txt", j'ajoute à un fichier ascii séquentiel un message. Cela peut être fait plus ou moins simultanément de plusieurs ordinateur à la fois, dans le cas d'un script d'ouverture de session utilisant un fichier log par exemple.
Sous WSH/VBS, pouvez vous me dire comment je peux posséder pour effectuer le même (ou équivalente) ajout de texte dans un fichier ascii acceptant l'écriture plus ou moins simultané. Quand je demande en WSH, je n'attend pas un Shell.run ("cmd /c echo text>>fch.txt) mais bien des commandes VBS ou WMI digne de ce nom. Car d'après MS, dans Vista, adieu le cmd.exe (c'est pas encore fait, il faudra attendre le SP1 de vista voir peut être le SP2).
L'idée est de pouvoir écris dans un log Ascii à partir d'un script wsh/vbs exécuter dans un script de session ou de connexion afin de remonter des informations d'erreur.
Merci de vos suggestions, GOWAP
Bonjour,
Voici un exemple tiré de la documentation wscript
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:testfile.txt", ForAppending, True)
f.Write "Bonjour !"
f.Close
Cordialement
Georges
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
e6tDU5u0FHA.404@TK2MSFTNGP09.phx.gbl...
Bonjour,
sous Dos, avec un "echo text>>fichier.txt", j'ajoute à un fichier ascii
séquentiel un message.
Cela peut être fait plus ou moins simultanément de plusieurs ordinateur à
la fois, dans le cas d'un script d'ouverture de session utilisant un
fichier log par exemple.
Sous WSH/VBS, pouvez vous me dire comment je peux posséder pour effectuer
le même (ou équivalente) ajout de texte dans un fichier ascii acceptant
l'écriture plus ou moins simultané. Quand je demande en WSH, je n'attend
pas un Shell.run ("cmd /c echo text>>fch.txt) mais bien des commandes VBS
ou WMI digne de ce nom. Car d'après MS, dans Vista, adieu le cmd.exe
(c'est pas encore fait, il faudra attendre le SP1 de vista voir peut être
le SP2).
L'idée est de pouvoir écris dans un log Ascii à partir d'un script wsh/vbs
exécuter dans un script de session ou de connexion afin de remonter des
informations d'erreur.
Bonjour, Voici un exemple tiré de la documentation wscript
Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:testfile.txt", ForAppending, True) f.Write "Bonjour !" f.Close
Cordialement Georges
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
Bonjour,
sous Dos, avec un "echo text>>fichier.txt", j'ajoute à un fichier ascii séquentiel un message. Cela peut être fait plus ou moins simultanément de plusieurs ordinateur à la fois, dans le cas d'un script d'ouverture de session utilisant un fichier log par exemple.
Sous WSH/VBS, pouvez vous me dire comment je peux posséder pour effectuer le même (ou équivalente) ajout de texte dans un fichier ascii acceptant l'écriture plus ou moins simultané. Quand je demande en WSH, je n'attend pas un Shell.run ("cmd /c echo text>>fch.txt) mais bien des commandes VBS ou WMI digne de ce nom. Car d'après MS, dans Vista, adieu le cmd.exe (c'est pas encore fait, il faudra attendre le SP1 de vista voir peut être le SP2).
L'idée est de pouvoir écris dans un log Ascii à partir d'un script wsh/vbs exécuter dans un script de session ou de connexion afin de remonter des informations d'erreur.
Merci de vos suggestions, GOWAP
GOWAP
Merci, mais...
Que ce passe-t-il si je fais un "Set f = fso.OpenTextFile("svrpatagefch.txtt", ForAppending, True)" en début de traitement sans "close" alors que j'ai 50 script en cours sur le réseau ? Est-ce que chaque "f.Write "Bonjour !"" s'ajouter bien à la fin du fichier ou est-ce qu'il va y avoir un problème ?
Dois-je faire un f.close et un f.OpenTextFile("svrpatagefch.txtt", ForAppending, True) sans arrêt à chaque écriture ? Que se passe-t-il si deux script sont en "open" en même temps ? (qui gagne ?) Est-ce que le "ForAppending" gére ce mode d'écriture simultané ?
Merci de m'expliquer le fonctionnement GOWAP
"Georges MAUREL" <georges.maurel_at_free.fr> a écrit dans le message de news: %23AI2$
Bonjour, Voici un exemple tiré de la documentation wscript
Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:testfile.txt", ForAppending, True) f.Write "Bonjour !" f.Close
Cordialement Georges
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
Bonjour,
sous Dos, avec un "echo text>>fichier.txt", j'ajoute à un fichier ascii séquentiel un message. Cela peut être fait plus ou moins simultanément de plusieurs ordinateur à la fois, dans le cas d'un script d'ouverture de session utilisant un fichier log par exemple.
Sous WSH/VBS, pouvez vous me dire comment je peux posséder pour effectuer le même (ou équivalente) ajout de texte dans un fichier ascii acceptant l'écriture plus ou moins simultané. Quand je demande en WSH, je n'attend pas un Shell.run ("cmd /c echo text>>fch.txt) mais bien des commandes VBS ou WMI digne de ce nom. Car d'après MS, dans Vista, adieu le cmd.exe (c'est pas encore fait, il faudra attendre le SP1 de vista voir peut être le SP2).
L'idée est de pouvoir écris dans un log Ascii à partir d'un script wsh/vbs exécuter dans un script de session ou de connexion afin de remonter des informations d'erreur.
Merci de vos suggestions, GOWAP
Merci, mais...
Que ce passe-t-il si je fais un "Set f =
fso.OpenTextFile("\svrpatagefch.txtt", ForAppending, True)" en début de
traitement sans "close" alors que j'ai 50 script en cours sur le réseau ?
Est-ce que chaque "f.Write "Bonjour !"" s'ajouter bien à la fin du fichier
ou est-ce qu'il va y avoir un problème ?
Dois-je faire un f.close et un f.OpenTextFile("\svrpatagefch.txtt",
ForAppending, True) sans arrêt à chaque écriture ?
Que se passe-t-il si deux script sont en "open" en même temps ? (qui gagne
?)
Est-ce que le "ForAppending" gére ce mode d'écriture simultané ?
Merci de m'expliquer le fonctionnement
GOWAP
"Georges MAUREL" <georges.maurel_at_free.fr> a écrit dans le message de
news: %23AI2$Sv0FHA.404@TK2MSFTNGP09.phx.gbl...
Bonjour,
Voici un exemple tiré de la documentation wscript
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:testfile.txt", ForAppending, True)
f.Write "Bonjour !"
f.Close
Cordialement
Georges
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
e6tDU5u0FHA.404@TK2MSFTNGP09.phx.gbl...
Bonjour,
sous Dos, avec un "echo text>>fichier.txt", j'ajoute à un fichier ascii
séquentiel un message.
Cela peut être fait plus ou moins simultanément de plusieurs ordinateur à
la fois, dans le cas d'un script d'ouverture de session utilisant un
fichier log par exemple.
Sous WSH/VBS, pouvez vous me dire comment je peux posséder pour effectuer
le même (ou équivalente) ajout de texte dans un fichier ascii acceptant
l'écriture plus ou moins simultané. Quand je demande en WSH, je n'attend
pas un Shell.run ("cmd /c echo text>>fch.txt) mais bien des commandes VBS
ou WMI digne de ce nom. Car d'après MS, dans Vista, adieu le cmd.exe
(c'est pas encore fait, il faudra attendre le SP1 de vista voir peut être
le SP2).
L'idée est de pouvoir écris dans un log Ascii à partir d'un script
wsh/vbs exécuter dans un script de session ou de connexion afin de
remonter des informations d'erreur.
Que ce passe-t-il si je fais un "Set f = fso.OpenTextFile("svrpatagefch.txtt", ForAppending, True)" en début de traitement sans "close" alors que j'ai 50 script en cours sur le réseau ? Est-ce que chaque "f.Write "Bonjour !"" s'ajouter bien à la fin du fichier ou est-ce qu'il va y avoir un problème ?
Dois-je faire un f.close et un f.OpenTextFile("svrpatagefch.txtt", ForAppending, True) sans arrêt à chaque écriture ? Que se passe-t-il si deux script sont en "open" en même temps ? (qui gagne ?) Est-ce que le "ForAppending" gére ce mode d'écriture simultané ?
Merci de m'expliquer le fonctionnement GOWAP
"Georges MAUREL" <georges.maurel_at_free.fr> a écrit dans le message de news: %23AI2$
Bonjour, Voici un exemple tiré de la documentation wscript
Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:testfile.txt", ForAppending, True) f.Write "Bonjour !" f.Close
Cordialement Georges
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
Bonjour,
sous Dos, avec un "echo text>>fichier.txt", j'ajoute à un fichier ascii séquentiel un message. Cela peut être fait plus ou moins simultanément de plusieurs ordinateur à la fois, dans le cas d'un script d'ouverture de session utilisant un fichier log par exemple.
Sous WSH/VBS, pouvez vous me dire comment je peux posséder pour effectuer le même (ou équivalente) ajout de texte dans un fichier ascii acceptant l'écriture plus ou moins simultané. Quand je demande en WSH, je n'attend pas un Shell.run ("cmd /c echo text>>fch.txt) mais bien des commandes VBS ou WMI digne de ce nom. Car d'après MS, dans Vista, adieu le cmd.exe (c'est pas encore fait, il faudra attendre le SP1 de vista voir peut être le SP2).
L'idée est de pouvoir écris dans un log Ascii à partir d'un script wsh/vbs exécuter dans un script de session ou de connexion afin de remonter des informations d'erreur.
Merci de vos suggestions, GOWAP
Do Re Mi chel La Si Do
Salut !
Es-tu sûr de l'abandon de cmd.exe (et command.com) ? Ce n'est pas parce que des journalistes ont écrit que Monad allait remplacer cmd, que ce dernier va disparaître. D'ailleurs, peut-on appeler "journaliste", qui ne fait que du "copié/collé" ?
Vu le nombre de logiciels, d'outils, et de langages qui fonctionnent sous ce mode, je doute de la disparition de l'invite de commande.
Ceux qui ont testé Windows-Vista bêta pourront peut-être nous en dire plus.
@-salutations
Michel Claveau
Salut !
Es-tu sûr de l'abandon de cmd.exe (et command.com) ? Ce n'est pas parce que
des journalistes ont écrit que Monad allait remplacer cmd, que ce dernier va
disparaître. D'ailleurs, peut-on appeler "journaliste", qui ne fait que du
"copié/collé" ?
Vu le nombre de logiciels, d'outils, et de langages qui fonctionnent sous ce
mode, je doute de la disparition de l'invite de commande.
Ceux qui ont testé Windows-Vista bêta pourront peut-être nous en dire plus.
Es-tu sûr de l'abandon de cmd.exe (et command.com) ? Ce n'est pas parce que des journalistes ont écrit que Monad allait remplacer cmd, que ce dernier va disparaître. D'ailleurs, peut-on appeler "journaliste", qui ne fait que du "copié/collé" ?
Vu le nombre de logiciels, d'outils, et de langages qui fonctionnent sous ce mode, je doute de la disparition de l'invite de commande.
Ceux qui ont testé Windows-Vista bêta pourront peut-être nous en dire plus.
@-salutations
Michel Claveau
Georges MAUREL
Re bonjour, A priori, forappending bloque le fichier. Il faut donc bien faire un close après écriture pour le débloquer Et il faut transformer l'exemple d'origine pour utiliser une boucle du style suivant permettant d'attendre la libération du fichier :
Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") On Error Resume Next Do Err.Clear set f =fso.OpenTextFile("c:testfile.txt",ForAppending,True) If Err Then WScript.Sleep 50 end if Loop While Err On Error GoTo 0 f.Write "Bonjour !" f.Close
Il en va de même pour forwriting. Par contre for reading ne bloque pas le fichier
Cordialement Georges
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
Merci, mais...
Que ce passe-t-il si je fais un "Set f = fso.OpenTextFile("svrpatagefch.txtt", ForAppending, True)" en début de traitement sans "close" alors que j'ai 50 script en cours sur le réseau ? Est-ce que chaque "f.Write "Bonjour !"" s'ajouter bien à la fin du fichier ou est-ce qu'il va y avoir un problème ?
Dois-je faire un f.close et un f.OpenTextFile("svrpatagefch.txtt", ForAppending, True) sans arrêt à chaque écriture ? Que se passe-t-il si deux script sont en "open" en même temps ? (qui gagne ?) Est-ce que le "ForAppending" gére ce mode d'écriture simultané ?
Merci de m'expliquer le fonctionnement GOWAP
"Georges MAUREL" <georges.maurel_at_free.fr> a écrit dans le message de news: %23AI2$
Bonjour, Voici un exemple tiré de la documentation wscript
Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:testfile.txt", ForAppending, True) f.Write "Bonjour !" f.Close
Cordialement Georges
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
Bonjour,
sous Dos, avec un "echo text>>fichier.txt", j'ajoute à un fichier ascii séquentiel un message. Cela peut être fait plus ou moins simultanément de plusieurs ordinateur à la fois, dans le cas d'un script d'ouverture de session utilisant un fichier log par exemple.
Sous WSH/VBS, pouvez vous me dire comment je peux posséder pour effectuer le même (ou équivalente) ajout de texte dans un fichier ascii acceptant l'écriture plus ou moins simultané. Quand je demande en WSH, je n'attend pas un Shell.run ("cmd /c echo text>>fch.txt) mais bien des commandes VBS ou WMI digne de ce nom. Car d'après MS, dans Vista, adieu le cmd.exe (c'est pas encore fait, il faudra attendre le SP1 de vista voir peut être le SP2).
L'idée est de pouvoir écris dans un log Ascii à partir d'un script wsh/vbs exécuter dans un script de session ou de connexion afin de remonter des informations d'erreur.
Merci de vos suggestions, GOWAP
Re bonjour,
A priori, forappending bloque le fichier.
Il faut donc bien faire un close après écriture pour le débloquer
Et il faut transformer l'exemple d'origine pour utiliser une boucle du style
suivant permettant d'attendre la libération du fichier :
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Do
Err.Clear
set f =fso.OpenTextFile("c:testfile.txt",ForAppending,True)
If Err Then
WScript.Sleep 50
end if
Loop While Err
On Error GoTo 0
f.Write "Bonjour !"
f.Close
Il en va de même pour forwriting.
Par contre for reading ne bloque pas le fichier
Cordialement
Georges
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
eEcHOVw0FHA.560@TK2MSFTNGP12.phx.gbl...
Merci, mais...
Que ce passe-t-il si je fais un "Set f =
fso.OpenTextFile("\svrpatagefch.txtt", ForAppending, True)" en début de
traitement sans "close" alors que j'ai 50 script en cours sur le réseau ?
Est-ce que chaque "f.Write "Bonjour !"" s'ajouter bien à la fin du fichier
ou est-ce qu'il va y avoir un problème ?
Dois-je faire un f.close et un f.OpenTextFile("\svrpatagefch.txtt",
ForAppending, True) sans arrêt à chaque écriture ?
Que se passe-t-il si deux script sont en "open" en même temps ? (qui gagne
?)
Est-ce que le "ForAppending" gére ce mode d'écriture simultané ?
Merci de m'expliquer le fonctionnement
GOWAP
"Georges MAUREL" <georges.maurel_at_free.fr> a écrit dans le message de
news: %23AI2$Sv0FHA.404@TK2MSFTNGP09.phx.gbl...
Bonjour,
Voici un exemple tiré de la documentation wscript
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:testfile.txt", ForAppending, True)
f.Write "Bonjour !"
f.Close
Cordialement
Georges
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
e6tDU5u0FHA.404@TK2MSFTNGP09.phx.gbl...
Bonjour,
sous Dos, avec un "echo text>>fichier.txt", j'ajoute à un fichier ascii
séquentiel un message.
Cela peut être fait plus ou moins simultanément de plusieurs ordinateur
à la fois, dans le cas d'un script d'ouverture de session utilisant un
fichier log par exemple.
Sous WSH/VBS, pouvez vous me dire comment je peux posséder pour
effectuer le même (ou équivalente) ajout de texte dans un fichier ascii
acceptant l'écriture plus ou moins simultané. Quand je demande en WSH,
je n'attend pas un Shell.run ("cmd /c echo text>>fch.txt) mais bien des
commandes VBS ou WMI digne de ce nom. Car d'après MS, dans Vista, adieu
le cmd.exe (c'est pas encore fait, il faudra attendre le SP1 de vista
voir peut être le SP2).
L'idée est de pouvoir écris dans un log Ascii à partir d'un script
wsh/vbs exécuter dans un script de session ou de connexion afin de
remonter des informations d'erreur.
Re bonjour, A priori, forappending bloque le fichier. Il faut donc bien faire un close après écriture pour le débloquer Et il faut transformer l'exemple d'origine pour utiliser une boucle du style suivant permettant d'attendre la libération du fichier :
Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") On Error Resume Next Do Err.Clear set f =fso.OpenTextFile("c:testfile.txt",ForAppending,True) If Err Then WScript.Sleep 50 end if Loop While Err On Error GoTo 0 f.Write "Bonjour !" f.Close
Il en va de même pour forwriting. Par contre for reading ne bloque pas le fichier
Cordialement Georges
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
Merci, mais...
Que ce passe-t-il si je fais un "Set f = fso.OpenTextFile("svrpatagefch.txtt", ForAppending, True)" en début de traitement sans "close" alors que j'ai 50 script en cours sur le réseau ? Est-ce que chaque "f.Write "Bonjour !"" s'ajouter bien à la fin du fichier ou est-ce qu'il va y avoir un problème ?
Dois-je faire un f.close et un f.OpenTextFile("svrpatagefch.txtt", ForAppending, True) sans arrêt à chaque écriture ? Que se passe-t-il si deux script sont en "open" en même temps ? (qui gagne ?) Est-ce que le "ForAppending" gére ce mode d'écriture simultané ?
Merci de m'expliquer le fonctionnement GOWAP
"Georges MAUREL" <georges.maurel_at_free.fr> a écrit dans le message de news: %23AI2$
Bonjour, Voici un exemple tiré de la documentation wscript
Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:testfile.txt", ForAppending, True) f.Write "Bonjour !" f.Close
Cordialement Georges
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
Bonjour,
sous Dos, avec un "echo text>>fichier.txt", j'ajoute à un fichier ascii séquentiel un message. Cela peut être fait plus ou moins simultanément de plusieurs ordinateur à la fois, dans le cas d'un script d'ouverture de session utilisant un fichier log par exemple.
Sous WSH/VBS, pouvez vous me dire comment je peux posséder pour effectuer le même (ou équivalente) ajout de texte dans un fichier ascii acceptant l'écriture plus ou moins simultané. Quand je demande en WSH, je n'attend pas un Shell.run ("cmd /c echo text>>fch.txt) mais bien des commandes VBS ou WMI digne de ce nom. Car d'après MS, dans Vista, adieu le cmd.exe (c'est pas encore fait, il faudra attendre le SP1 de vista voir peut être le SP2).
L'idée est de pouvoir écris dans un log Ascii à partir d'un script wsh/vbs exécuter dans un script de session ou de connexion afin de remonter des informations d'erreur.
Merci de vos suggestions, GOWAP
Michel Claveau
Bonjour !
J'ai vu qq infos sur windows vista, là : http://msdn.microsoft.com/windowsvista/support/faq/default.aspx
Et, notamment, cette QR :
Will my MS-DOS applications continue to run under Windows Vista without modification?
Yes, they will.
Bonjour !
J'ai vu qq infos sur windows vista, là :
http://msdn.microsoft.com/windowsvista/support/faq/default.aspx
Et, notamment, cette QR :
Will my MS-DOS applications continue to run under Windows Vista without
modification?