Bonjour à tous
J'ai développé un script en VBS qui balaye des répertoires pour en supprimer des fichiers.
Ce script dure en moyenne une quarantaine de secondes, mais je n'ai pas trouvé le moyen d'éviter son
arrêt par le temps hors le paramètre externe //T:100
Les modifications des propriétés du script :
Click droit sur nom du fichier Suplang.vbs
Propriétés
Script
case coché ou non : arrêter le script après un nb déterminé de secondes
300 secondes
Ou celle du fichier paramètre associé Suplang.wsh
n'ont strictement aucun effet, mon script est toujours coupé environ au bout de 10 sec.
Il y a t il un autre moyen (dans le code ) de donner un temps maxi pour exécution de ce script hors
le paramètre externe //T:
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
Gilles LAURENT [MVP]
"testeur" <olivier; a écrit dans le message de news: | Bonjour à tous
Bonjour,
| J'ai développé un script en VBS qui balaye des répertoires pour en | supprimer des fichiers. | Ce script dure en moyenne une quarantaine de secondes, mais je n'ai | pas trouvé le moyen d'éviter son arrêt par le temps hors le paramètre | externe //T:100 [...]
Normalement les scripts ont par défaut un temps d'exécution illimité. Quoi qu'il en soit, vous pouvez ajuster le temps d'exécution en runtime avec la propriété Timeout de l'objet WScript.
Pour une durée de 100 secondes : WScript.Timeout0
Pour une durée illimitée : WScript.Timeout=0
Note: L'argument //T: est prioritaire sur la propriété Timeout
"testeur" <olivier;gonnet@club-internet.fr> a écrit dans le message de
news:eZcEMD8zJHA.6004@TK2MSFTNGP02.phx.gbl
| Bonjour à tous
Bonjour,
| J'ai développé un script en VBS qui balaye des répertoires pour en
| supprimer des fichiers.
| Ce script dure en moyenne une quarantaine de secondes, mais je n'ai
| pas trouvé le moyen d'éviter son arrêt par le temps hors le paramètre
| externe //T:100
[...]
Normalement les scripts ont par défaut un temps d'exécution illimité.
Quoi qu'il en soit, vous pouvez ajuster le temps d'exécution en runtime
avec la propriété Timeout de l'objet WScript.
Pour une durée de 100 secondes :
WScript.Timeout0
Pour une durée illimitée :
WScript.Timeout=0
Note: L'argument //T: est prioritaire sur la propriété Timeout
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"testeur" <olivier; a écrit dans le message de news: | Bonjour à tous
Bonjour,
| J'ai développé un script en VBS qui balaye des répertoires pour en | supprimer des fichiers. | Ce script dure en moyenne une quarantaine de secondes, mais je n'ai | pas trouvé le moyen d'éviter son arrêt par le temps hors le paramètre | externe //T:100 [...]
Normalement les scripts ont par défaut un temps d'exécution illimité. Quoi qu'il en soit, vous pouvez ajuster le temps d'exécution en runtime avec la propriété Timeout de l'objet WScript.
Pour une durée de 100 secondes : WScript.Timeout0
Pour une durée illimitée : WScript.Timeout=0
Note: L'argument //T: est prioritaire sur la propriété Timeout
Merci pour cette réponse, mais cette action n'a pas plus d'effet sur mon script que le paramétrage dans les propriétés du fichier VBS. J'ai mis en tête de script WScript.Timeout00 et je me fait toujours couper au bout de quelques dizaines de secondes. Seul le paramètre //T:300 me permet d'exécuter mon script jusqu'au bout.
Merci pour cette réponse, mais cette action n'a pas plus d'effet sur mon script que le paramétrage
dans les propriétés du fichier VBS.
J'ai mis en tête de script WScript.Timeout00
et je me fait toujours couper au bout de quelques dizaines de secondes.
Seul le paramètre //T:300 me permet d'exécuter mon script jusqu'au bout.
De plus je n'ai pas trouvé dans la documentation sur MSDN de description de cette méthode
http://msdn.microsoft.com/en-us/library/2x3w20xf(VS.85).aspx
ou de cette propriété
http://msdn.microsoft.com/en-us/library/30cszkt9(VS.85).aspx
Merci pour cette réponse, mais cette action n'a pas plus d'effet sur mon script que le paramétrage dans les propriétés du fichier VBS. J'ai mis en tête de script WScript.Timeout00 et je me fait toujours couper au bout de quelques dizaines de secondes. Seul le paramètre //T:300 me permet d'exécuter mon script jusqu'au bout.
"testeur" <olivier; a écrit dans le message de news:% | Merci pour cette réponse, mais cette action n'a pas plus d'effet sur | mon script que le paramétrage dans les propriétés du fichier VBS. | J'ai mis en tête de script WScript.Timeout00 | et je me fait toujours couper au bout de quelques dizaines de | secondes. | Seul le paramètre //T:300 me permet d'exécuter mon script jusqu'au | bout.
Pouvez-vous exécuter le script VBScript ci-dessous dans une invite de commande avec le moteur CScript. Celui-ci va permettre de déterminer la durée d'exécution fixée par défaut :
Note: Le script devrait alors s'arrêter automatiquement avec le message "Le temps d'exécution du script a été dépassé pour le script <ScriptName>. L'exécution du script a pris fin.". Si c'est bien la cas alors un paramètre de configuration du timeout est présent dans le registre : HKCUSoftwareMicrosoftWindows Script HostSettings Timeout (REG_DWORD)
"testeur" <olivier;gonnet@club-internet.fr> a écrit dans le message de
news:%23UyPlPK0JHA.1096@TK2MSFTNGP06.phx.gbl
| Merci pour cette réponse, mais cette action n'a pas plus d'effet sur
| mon script que le paramétrage dans les propriétés du fichier VBS.
| J'ai mis en tête de script WScript.Timeout00
| et je me fait toujours couper au bout de quelques dizaines de
| secondes.
| Seul le paramètre //T:300 me permet d'exécuter mon script jusqu'au
| bout.
Pouvez-vous exécuter le script VBScript ci-dessous dans une invite de
commande avec le moteur CScript. Celui-ci va permettre de déterminer la
durée d'exécution fixée par défaut :
Note: Le script devrait alors s'arrêter automatiquement avec le message
"Le temps d'exécution du script a été dépassé pour le script
<ScriptName>. L'exécution du script a pris fin.". Si c'est bien la cas
alors un paramètre de configuration du timeout est présent dans le
registre :
HKCUSoftwareMicrosoftWindows Script HostSettings
Timeout (REG_DWORD)
| De plus je n'ai pas trouvé dans la documentation sur MSDN de
| description de cette méthode
| http://msdn.microsoft.com/en-us/library/2x3w20xf(VS.85).aspx
| ou de cette propriété
| http://msdn.microsoft.com/en-us/library/30cszkt9(VS.85).aspx
|
| Ou peut on en avoir la description ?
Cette propriété n'est pas documentée sur MSDN. Vous pouvez toutefois
obtenir sa description dans le Scripting Guide (Listing 3.13 : Setting
the Time-out Value of a Script) :
http://www.microsoft.com/technet/scriptcenter/guide/sas_wsh_gkyu.mspx
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"testeur" <olivier; a écrit dans le message de news:% | Merci pour cette réponse, mais cette action n'a pas plus d'effet sur | mon script que le paramétrage dans les propriétés du fichier VBS. | J'ai mis en tête de script WScript.Timeout00 | et je me fait toujours couper au bout de quelques dizaines de | secondes. | Seul le paramètre //T:300 me permet d'exécuter mon script jusqu'au | bout.
Pouvez-vous exécuter le script VBScript ci-dessous dans une invite de commande avec le moteur CScript. Celui-ci va permettre de déterminer la durée d'exécution fixée par défaut :
Note: Le script devrait alors s'arrêter automatiquement avec le message "Le temps d'exécution du script a été dépassé pour le script <ScriptName>. L'exécution du script a pris fin.". Si c'est bien la cas alors un paramètre de configuration du timeout est présent dans le registre : HKCUSoftwareMicrosoftWindows Script HostSettings Timeout (REG_DWORD)
"testeur" <olivier;gonnet@club-internet.fr> a écrit dans le message de
news:eBpFtQK0JHA.2656@TK2MSFTNGP05.phx.gbl
| pardon, la page des propriétés est celle la :
| http://msdn.microsoft.com/en-us/library/5ahda31z(VS.85).aspx
| Olivier
Voir message précédent.
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
J'ai fait le test : T:Script>cscript test.vbs Microsoft (R) Windows Script Host Version 5.7 Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
Timeout:10 Le temps d'exécution du script a été dépassé pour le script "T:Scripttest.vbs" . L'exécution du script a pris fin. T:Script>
J'ai donc bien une coupure par défaut à 10 sec J'ai vérifié dans le registre de ma machine XP, j'ai bien cette valeur 10, je ne sais pas comment elle est arrivé là, puisque j'avais cru comprendre que le défaut était 0. Sur une machine Vista, la valeur n'est pas définie.
Merci pour l'info, mais je ne comprends pas pourquoi la directive WScript.Timeout00, n'override pas la valeur mise dans le registre.
Olivier
J'ai fait le test :
T:Script>cscript test.vbs
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
Timeout:10
Le temps d'exécution du script a été dépassé pour le script "T:Scripttest.vbs"
.
L'exécution du script a pris fin.
T:Script>
J'ai donc bien une coupure par défaut à 10 sec
J'ai vérifié dans le registre de ma machine XP, j'ai bien cette valeur 10, je ne sais pas comment
elle est arrivé là, puisque j'avais cru comprendre que le défaut était 0.
Sur une machine Vista, la valeur n'est pas définie.
Merci pour l'info, mais je ne comprends pas pourquoi la directive WScript.Timeout00, n'override
pas la valeur mise dans le registre.
J'ai fait le test : T:Script>cscript test.vbs Microsoft (R) Windows Script Host Version 5.7 Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
Timeout:10 Le temps d'exécution du script a été dépassé pour le script "T:Scripttest.vbs" . L'exécution du script a pris fin. T:Script>
J'ai donc bien une coupure par défaut à 10 sec J'ai vérifié dans le registre de ma machine XP, j'ai bien cette valeur 10, je ne sais pas comment elle est arrivé là, puisque j'avais cru comprendre que le défaut était 0. Sur une machine Vista, la valeur n'est pas définie.
Merci pour l'info, mais je ne comprends pas pourquoi la directive WScript.Timeout00, n'override pas la valeur mise dans le registre.
Olivier
Gilles LAURENT [MVP]
"testeur" <olivier; a écrit dans le message de news: | J'ai fait le test : | T:Script>cscript test.vbs | Microsoft (R) Windows Script Host Version 5.7 | Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés. | | Timeout:10 | Le temps d'exécution du script a été dépassé pour le script | "T:Scripttest.vbs" . | L'exécution du script a pris fin. | T:Script> | | J'ai donc bien une coupure par défaut à 10 sec | J'ai vérifié dans le registre de ma machine XP, j'ai bien cette | valeur 10, je ne sais pas comment elle est arrivé là, puisque j'avais | cru comprendre que le défaut était 0. | Sur une machine Vista, la valeur n'est pas définie.
Sous XP également cette valeur n'est pas définie par défaut. Peut-être avez-vous exécuté un jour la commande CScript //S //T:10 ce qui a pour effet de sauvegarder les paramètres dans le registre ?
| Merci pour l'info, mais je ne comprends pas pourquoi la directive | WScript.Timeout00, n'override pas la valeur mise dans le registre.
Dans l'ordre des priorités : 1- L'argument //T 2- Le registre 3- La propriété Timeout
Note: La propriété Timeout doit être considérée en lecture seule si la durée d'exécution est spécifiée par l'argument //T et/ou alors par le registre. Dans ce cas l'affectation ne provoque pas d'erreur à l'exécution mais la valeur spécifiée est simplement ignorée.
"testeur" <olivier;gonnet@club-internet.fr> a écrit dans le message de
news:Ora1LCL0JHA.2480@TK2MSFTNGP06.phx.gbl
| J'ai fait le test :
| T:Script>cscript test.vbs
| Microsoft (R) Windows Script Host Version 5.7
| Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
|
| Timeout:10
| Le temps d'exécution du script a été dépassé pour le script
| "T:Scripttest.vbs" .
| L'exécution du script a pris fin.
| T:Script>
|
| J'ai donc bien une coupure par défaut à 10 sec
| J'ai vérifié dans le registre de ma machine XP, j'ai bien cette
| valeur 10, je ne sais pas comment elle est arrivé là, puisque j'avais
| cru comprendre que le défaut était 0.
| Sur une machine Vista, la valeur n'est pas définie.
Sous XP également cette valeur n'est pas définie par défaut. Peut-être
avez-vous exécuté un jour la commande CScript //S //T:10 ce qui a pour
effet de sauvegarder les paramètres dans le registre ?
| Merci pour l'info, mais je ne comprends pas pourquoi la directive
| WScript.Timeout00, n'override pas la valeur mise dans le registre.
Dans l'ordre des priorités :
1- L'argument //T
2- Le registre
3- La propriété Timeout
Note: La propriété Timeout doit être considérée en lecture seule si la
durée d'exécution est spécifiée par l'argument //T et/ou alors par le
registre. Dans ce cas l'affectation ne provoque pas d'erreur à
l'exécution mais la valeur spécifiée est simplement ignorée.
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"testeur" <olivier; a écrit dans le message de news: | J'ai fait le test : | T:Script>cscript test.vbs | Microsoft (R) Windows Script Host Version 5.7 | Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés. | | Timeout:10 | Le temps d'exécution du script a été dépassé pour le script | "T:Scripttest.vbs" . | L'exécution du script a pris fin. | T:Script> | | J'ai donc bien une coupure par défaut à 10 sec | J'ai vérifié dans le registre de ma machine XP, j'ai bien cette | valeur 10, je ne sais pas comment elle est arrivé là, puisque j'avais | cru comprendre que le défaut était 0. | Sur une machine Vista, la valeur n'est pas définie.
Sous XP également cette valeur n'est pas définie par défaut. Peut-être avez-vous exécuté un jour la commande CScript //S //T:10 ce qui a pour effet de sauvegarder les paramètres dans le registre ?
| Merci pour l'info, mais je ne comprends pas pourquoi la directive | WScript.Timeout00, n'override pas la valeur mise dans le registre.
Dans l'ordre des priorités : 1- L'argument //T 2- Le registre 3- La propriété Timeout
Note: La propriété Timeout doit être considérée en lecture seule si la durée d'exécution est spécifiée par l'argument //T et/ou alors par le registre. Dans ce cas l'affectation ne provoque pas d'erreur à l'exécution mais la valeur spécifiée est simplement ignorée.