Après avoir torturer Excel en long en large et en travers, je passe au
"vraies" base de données (c...gnos pour ne pas le citer)
J'ai besoin de faire un script qui va enregistrer un fichier en excel (avec
la date du jour), à un endroit précis, puis l'envoyer par mail.
Je sais faire ça dans Excel, donc, en VBA, mais, afin de ne pas avoir à lire
des pages et des pages de documentation, je me demandais s'il était possible
de "convertir" (automatiquement s'entend) du VBA en VBS ?
Je sais, question de feignasse... Je vais me mettre au VBS, mais si je
pouvais avoir un peu d'aide pour démarrer...
J'ai installé un petit plug-in qui évite le warning Outlook, donc, ça
fonctionne.
Sauf que je ne peux pas conserver ça en VBA puisqu'il faut que la macro
(donc le script) tourne avant d'enregistrer le fichier en Excel (puisqu'il
faut que la date soit dans le nom du fichier). C'est possible dans l'outil de
base de données, mais évidement, il ne comprend que le "vrai" script VB, pas
le VBA...
J'espère que mon message est clair, et qu'une (ou plusieures) âme charitable
pourra m'aider.
ça dépend de la version de Windows, et de certaines configurations de locale.
Tente avec ça : %date:~6,4%%date:~3,2%%date:~0,2%
Pour info : echo %date:~6,4%
c'est équivalent à echo %date% (+ à partir du 6e caractère, et pour les 4 caractères qui suivent)
Donc, tu peux essayer (en invite de commande) : echo %date% echo %date:~6,4% echo %date:~6,4%%date:~3,2% echo %date:~6,4%%date:~3,2%%date:~0,2%
Ce qui te permettra de comprendre le fonctionnement (c'est pareil avec SET qu'avec ECHO)
@+
Michel Claveau
vswildcat
Bonjour à tous,
Et Merci JB !! Le renommage fonctionne correctement, par contre, pas l'envoi par mail :-(
Je suis en entreprise, et je ne peux pas me permettre de télécharger, installer ou modifier trop de chose au niveau des sécurités... Je pense d'ailleurs que c'est pour cela que ça ne fonctionne pas, la sécurité... Par contre, aucun message d'erreur, mon Outlook est ouvert, je reçois des mails et j'en envoi normalement...
Une idée ?
Blat est peu être la solution, car j'ai vu d'autres scripts créer par notre admin qui semblent utiliser blat... Reste à obtenir les mots de passe et autorisation pour la connexion au server.
Et pour aller au bout de ma démarche : ce script doit tourner le 1er de chaque mois, ce qui peut tomber un samedi ou un dimache. Est-il possible de compléter le code pour que le script selectionne un profil Outlook spécifique (j'ai deux profils : un "normal", et un sur lequel je reçois de fournisseurs des fichiers que je dois intégégrer dans notre système) ?
Encore merci, (on va y arriver) :-)
vswildcat wrote:
C'est un début :-)
Pour ODBC: à priori pas besoin, j'utilise le scheduler (programmateur de tâches 'intégré') de l'Application pour déclencher et créer mon rapport (en .imr). Le scheduler va jusqu'à l'enregistrement en Excel (en .xls)
Pour EXCEL : Dans l'idéal, j'aimerai carrément me passer d'Excel...
J'aimerai pouvoir mettre le script directement dans l'Application avec laquelle je genère mes rapports.
On m'a donner un exemple de fichier en .bat, avec ces lignes de codes :
- Comme je ne comprend pas la moitié du code, je ne sais pas comment "lier" ces deux scripts
- J'ai un souci au niveau du nom de la pièce jointe puisqu'il va changer tous les jours (je suppose qu'il doit être possible d'utiliser totto_%FileDate%.xls qui a été créé auparavant...)
- Ensuite, il ne me restera plus qu'à trouver où enregistrer ce .bat pour qu'il fonctionne (au fait, .bat, c'est quoi ?)
Voilà, j'espère que ça peut aider... à m'aider :-)
En tout cas merci pour ces quelques exemple de lignes de code, elles pourraient effectivement m'être utiles.
Vswildcat
J'espère que mon message est clair, et qu'une (ou plusieures) âme charitable pourra m'aider.
Vswildcat
Charitable je ne sais pas mais c'est un juste reout des choses que j'ai pu apprendre ici et ailleurs au fil du temps. Ce sont des bouts de programme qui pourront t'aider
Stephane
Pour ODBC: Set odbc = CreateObject("ADODB.Connection") odbc.open "UID=toto;PWD=toto;DSNÚtabase;" Set resultat = odbc.execute("SELECT * ...")
'Fichiers For each oFile In oSubFolder.Files If InStr(UCase(oFile.Name), "RAL_") > 0 Then nomFic = oFile.path oFile.delete
En vbscript, le cumul des deux, à davoir renommer le rapport généré et l'envoyer par mail: Option Explicit ' Ne pas laisser la ligne suivante en commentaire une fois la mise au point terminée ' On Error Resume Next Dim Rapports_Path, Rapport_Name, Rapport_New_Name Dim fs, dtT, dtToday Rapports_Path = "D:test" Rapport_Name = "toto.xls"
If Err.Number = 0 Then Dim objMail Set objMail = CreateObject("CDO.Message") objMail.From = "" objMail.To = "" objMail.Subject = "test" objMail.Textbody = "coucou" objMail.AddAttachment Rapport_New_Name objMail.Send Set objMail=Nothing Else WScript.Echo "Description: " & Err.Description & _ " Source: " & Err.Source & _ " N°: " & Err.Number End If WScript.Quit(ErrNumber)
A noter que tel quel, le code d'envoi de mail nécessite que le serveur smtp de IIS soit installé et configuré sur la machine d'où s'exécute le script. Il est possible en modifiant légèrement le code de faire en sorte qu'il utilise (comme Blat) un serveur smtp "externe" (chercher dans ce newsgroup un post récent de Gilles Laurent ;-)
Bonjour à tous,
Et Merci JB !! Le renommage fonctionne correctement, par contre, pas l'envoi
par mail :-(
Je suis en entreprise, et je ne peux pas me permettre de télécharger,
installer ou modifier trop de chose au niveau des sécurités... Je pense
d'ailleurs que c'est pour cela que ça ne fonctionne pas, la sécurité... Par
contre, aucun message d'erreur, mon Outlook est ouvert, je reçois des mails
et j'en envoi normalement...
Une idée ?
Blat est peu être la solution, car j'ai vu d'autres scripts créer par notre
admin qui semblent utiliser blat... Reste à obtenir les mots de passe et
autorisation pour la connexion au server.
Et pour aller au bout de ma démarche : ce script doit tourner le 1er de
chaque mois, ce qui peut tomber un samedi ou un dimache. Est-il possible de
compléter le code pour que le script selectionne un profil Outlook spécifique
(j'ai deux profils : un "normal", et un sur lequel je reçois de fournisseurs
des fichiers que je dois intégégrer dans notre système) ?
Encore merci, (on va y arriver) :-)
vswildcat wrote:
C'est un début :-)
Pour ODBC: à priori pas besoin, j'utilise le scheduler (programmateur
de tâches 'intégré') de l'Application pour déclencher et créer mon
rapport (en .imr).
Le scheduler va jusqu'à l'enregistrement en Excel (en .xls)
Pour EXCEL :
Dans l'idéal, j'aimerai carrément me passer d'Excel...
J'aimerai pouvoir mettre le script directement dans l'Application avec
laquelle je genère mes rapports.
On m'a donner un exemple de fichier en .bat, avec ces lignes de codes
:
- Comme je ne comprend pas la moitié du code, je ne sais pas comment
"lier" ces deux scripts
- J'ai un souci au niveau du nom de la pièce jointe puisqu'il va
changer tous les jours (je suppose qu'il doit être possible d'utiliser
totto_%FileDate%.xls qui a été créé auparavant...)
- Ensuite, il ne me restera plus qu'à trouver où enregistrer ce .bat
pour qu'il fonctionne (au fait, .bat, c'est quoi ?)
Voilà, j'espère que ça peut aider... à m'aider :-)
En tout cas merci pour ces quelques exemple de lignes de code, elles
pourraient effectivement m'être utiles.
Vswildcat
J'espère que mon message est clair, et qu'une (ou plusieures) âme
charitable pourra m'aider.
Vswildcat
Charitable je ne sais pas mais c'est un juste reout des choses que
j'ai pu apprendre ici et ailleurs au fil du temps. Ce sont des bouts
de programme qui pourront t'aider
Stephane
Pour ODBC:
Set odbc = CreateObject("ADODB.Connection")
odbc.open "UID=toto;PWD=toto;DSNÚtabase;"
Set resultat = odbc.execute("SELECT * ...")
'Fichiers
For each oFile In oSubFolder.Files
If InStr(UCase(oFile.Name), "RAL_") > 0 Then
nomFic = oFile.path
oFile.delete
En vbscript, le cumul des deux, à davoir renommer le rapport généré et
l'envoyer par mail:
Option Explicit
' Ne pas laisser la ligne suivante en commentaire une fois la mise au point
terminée
' On Error Resume Next
Dim Rapports_Path, Rapport_Name, Rapport_New_Name
Dim fs, dtT, dtToday
Rapports_Path = "D:test"
Rapport_Name = "toto.xls"
If Err.Number = 0 Then
Dim objMail
Set objMail = CreateObject("CDO.Message")
objMail.From = "scraper@pasdespam.fr"
objMail.To = "scraper@pasdespam.fr"
objMail.Subject = "test"
objMail.Textbody = "coucou"
objMail.AddAttachment Rapport_New_Name
objMail.Send
Set objMail=Nothing
Else
WScript.Echo "Description: " & Err.Description & _
" Source: " & Err.Source & _
" N°: " & Err.Number
End If
WScript.Quit(ErrNumber)
A noter que tel quel, le code d'envoi de mail nécessite que le serveur smtp
de IIS soit installé et configuré sur la machine d'où s'exécute le script.
Il est possible en modifiant légèrement le code de faire en sorte qu'il
utilise (comme Blat) un serveur smtp "externe" (chercher dans ce newsgroup
un post récent de Gilles Laurent ;-)
Et Merci JB !! Le renommage fonctionne correctement, par contre, pas l'envoi par mail :-(
Je suis en entreprise, et je ne peux pas me permettre de télécharger, installer ou modifier trop de chose au niveau des sécurités... Je pense d'ailleurs que c'est pour cela que ça ne fonctionne pas, la sécurité... Par contre, aucun message d'erreur, mon Outlook est ouvert, je reçois des mails et j'en envoi normalement...
Une idée ?
Blat est peu être la solution, car j'ai vu d'autres scripts créer par notre admin qui semblent utiliser blat... Reste à obtenir les mots de passe et autorisation pour la connexion au server.
Et pour aller au bout de ma démarche : ce script doit tourner le 1er de chaque mois, ce qui peut tomber un samedi ou un dimache. Est-il possible de compléter le code pour que le script selectionne un profil Outlook spécifique (j'ai deux profils : un "normal", et un sur lequel je reçois de fournisseurs des fichiers que je dois intégégrer dans notre système) ?
Encore merci, (on va y arriver) :-)
vswildcat wrote:
C'est un début :-)
Pour ODBC: à priori pas besoin, j'utilise le scheduler (programmateur de tâches 'intégré') de l'Application pour déclencher et créer mon rapport (en .imr). Le scheduler va jusqu'à l'enregistrement en Excel (en .xls)
Pour EXCEL : Dans l'idéal, j'aimerai carrément me passer d'Excel...
J'aimerai pouvoir mettre le script directement dans l'Application avec laquelle je genère mes rapports.
On m'a donner un exemple de fichier en .bat, avec ces lignes de codes :
- Comme je ne comprend pas la moitié du code, je ne sais pas comment "lier" ces deux scripts
- J'ai un souci au niveau du nom de la pièce jointe puisqu'il va changer tous les jours (je suppose qu'il doit être possible d'utiliser totto_%FileDate%.xls qui a été créé auparavant...)
- Ensuite, il ne me restera plus qu'à trouver où enregistrer ce .bat pour qu'il fonctionne (au fait, .bat, c'est quoi ?)
Voilà, j'espère que ça peut aider... à m'aider :-)
En tout cas merci pour ces quelques exemple de lignes de code, elles pourraient effectivement m'être utiles.
Vswildcat
J'espère que mon message est clair, et qu'une (ou plusieures) âme charitable pourra m'aider.
Vswildcat
Charitable je ne sais pas mais c'est un juste reout des choses que j'ai pu apprendre ici et ailleurs au fil du temps. Ce sont des bouts de programme qui pourront t'aider
Stephane
Pour ODBC: Set odbc = CreateObject("ADODB.Connection") odbc.open "UID=toto;PWD=toto;DSNÚtabase;" Set resultat = odbc.execute("SELECT * ...")
'Fichiers For each oFile In oSubFolder.Files If InStr(UCase(oFile.Name), "RAL_") > 0 Then nomFic = oFile.path oFile.delete
En vbscript, le cumul des deux, à davoir renommer le rapport généré et l'envoyer par mail: Option Explicit ' Ne pas laisser la ligne suivante en commentaire une fois la mise au point terminée ' On Error Resume Next Dim Rapports_Path, Rapport_Name, Rapport_New_Name Dim fs, dtT, dtToday Rapports_Path = "D:test" Rapport_Name = "toto.xls"
If Err.Number = 0 Then Dim objMail Set objMail = CreateObject("CDO.Message") objMail.From = "" objMail.To = "" objMail.Subject = "test" objMail.Textbody = "coucou" objMail.AddAttachment Rapport_New_Name objMail.Send Set objMail=Nothing Else WScript.Echo "Description: " & Err.Description & _ " Source: " & Err.Source & _ " N°: " & Err.Number End If WScript.Quit(ErrNumber)
A noter que tel quel, le code d'envoi de mail nécessite que le serveur smtp de IIS soit installé et configuré sur la machine d'où s'exécute le script. Il est possible en modifiant légèrement le code de faire en sorte qu'il utilise (comme Blat) un serveur smtp "externe" (chercher dans ce newsgroup un post récent de Gilles Laurent ;-)
vswildcat
Eh bien, c'est bien ce qui me paraît curieux : j'ai regarder set /? sur les bons conseils de Jacques, et le nombre de caractères (offset) ne me parait pas bon...
Cela dit, je fais genre j'y suis arrivé, mais nada, le script se lance et... ne renomme même pas mon fichier...
Une idée ? Je le place pas au bon endroit (j'ai pourtant tout mis dans un même dossier, changer le chemin d'accès...)
Help...
Bonsoir !
J'arrive un peu après la bataille, pour glisser un complément à ton batch :
set FileDate=%date:~11,4%%date:~8,2%%date:~5,2%
moi quand je fais cà j'ai '/' dans filename et donner un nom de fichier avec '/' j'ai un doute, non ? Ou alors j'ai encore rien compris :-))
@+ Stephane -
Eh bien, c'est bien ce qui me paraît curieux : j'ai regarder set /? sur les
bons conseils de Jacques, et le nombre de caractères (offset) ne me parait
pas bon...
Cela dit, je fais genre j'y suis arrivé, mais nada, le script se lance et...
ne renomme même pas mon fichier...
Une idée ? Je le place pas au bon endroit (j'ai pourtant tout mis dans un
même dossier, changer le chemin d'accès...)
Help...
Bonsoir !
J'arrive un peu après la bataille, pour glisser un complément à ton batch :
set FileDate=%date:~11,4%%date:~8,2%%date:~5,2%
moi quand je fais cà j'ai '/' dans filename et donner un nom de fichier
avec '/' j'ai un doute, non ?
Ou alors j'ai encore rien compris :-))
Eh bien, c'est bien ce qui me paraît curieux : j'ai regarder set /? sur les bons conseils de Jacques, et le nombre de caractères (offset) ne me parait pas bon...
Cela dit, je fais genre j'y suis arrivé, mais nada, le script se lance et... ne renomme même pas mon fichier...
Une idée ? Je le place pas au bon endroit (j'ai pourtant tout mis dans un même dossier, changer le chemin d'accès...)
Help...
Bonsoir !
J'arrive un peu après la bataille, pour glisser un complément à ton batch :
set FileDate=%date:~11,4%%date:~8,2%%date:~5,2%
moi quand je fais cà j'ai '/' dans filename et donner un nom de fichier avec '/' j'ai un doute, non ? Ou alors j'ai encore rien compris :-))
@+ Stephane -
Méta-MCI \(MVP\)
Re !
Outlook d'office peut-être pas mais c'est lié à outlook express.
Je pense que Outlook-Express est lié à MAPI ; or CDO est un autre protocole (de Windows).
D'ailleurs, j'utilise CDO, sur des 2003-servers qui n'ont pas eu Outlook installé, et Outlook-Express jamais configuré, ni utilisé (au passage, IIS non plus).
A noter que CDO n'arrête pas d'évoluer, et je n'ai pas l'historique des changements, mais je crois me souvenir que c'est intégré à Windows depuis 2000, alors que, avant, c'était lié à Outlook/Office.
@+
MCI
Re !
Outlook d'office peut-être pas mais c'est lié à outlook
express.
Je pense que Outlook-Express est lié à MAPI ; or CDO est un
autre protocole (de Windows).
D'ailleurs, j'utilise CDO, sur des 2003-servers qui n'ont
pas eu Outlook installé, et Outlook-Express jamais
configuré, ni utilisé (au passage, IIS non plus).
A noter que CDO n'arrête pas d'évoluer, et je n'ai pas
l'historique des changements, mais je crois me souvenir que
c'est intégré à Windows depuis 2000, alors que, avant,
c'était lié à Outlook/Office.
Outlook d'office peut-être pas mais c'est lié à outlook express.
Je pense que Outlook-Express est lié à MAPI ; or CDO est un autre protocole (de Windows).
D'ailleurs, j'utilise CDO, sur des 2003-servers qui n'ont pas eu Outlook installé, et Outlook-Express jamais configuré, ni utilisé (au passage, IIS non plus).
A noter que CDO n'arrête pas d'évoluer, et je n'ai pas l'historique des changements, mais je crois me souvenir que c'est intégré à Windows depuis 2000, alors que, avant, c'était lié à Outlook/Office.
@+
MCI
Méta-MCI (MVP)
Re !
Exact, les "offset" qui étaient dans ton batch originel n'étaient pas corrects (quoique, selon le windows ou la config...)
Je te conseille d'appliquer les chiffres de mon message de 11h.40
Et, pour une meilleure trace, tu peux utiliser ECHO. Par exemple (pas testé) : set FileDate=%date:~6,4%%date:~3,2%%date:~0,2% echo totto_%FileDate%.xls echo rename c:temptotto.xls totto_%FileDate%.xls echo mailCDO.exe destinataire expediteur "sujet du message" "texte du message" totto_%FileDate%.xls
Ensuite, il faut enlever les ECHO lorsque le batch semble correct.
Bon @ppétit !
Michel Claveau
Re !
Exact, les "offset" qui étaient dans ton batch originel
n'étaient pas corrects (quoique, selon le windows ou la
config...)
Je te conseille d'appliquer les chiffres de mon message de
11h.40
Et, pour une meilleure trace, tu peux utiliser ECHO.
Par exemple (pas testé) :
set FileDate=%date:~6,4%%date:~3,2%%date:~0,2%
echo totto_%FileDate%.xls
echo rename c:temptotto.xls totto_%FileDate%.xls
echo mailCDO.exe destinataire expediteur "sujet du
message" "texte du message" totto_%FileDate%.xls
Ensuite, il faut enlever les ECHO lorsque le batch semble
correct.
Exact, les "offset" qui étaient dans ton batch originel n'étaient pas corrects (quoique, selon le windows ou la config...)
Je te conseille d'appliquer les chiffres de mon message de 11h.40
Et, pour une meilleure trace, tu peux utiliser ECHO. Par exemple (pas testé) : set FileDate=%date:~6,4%%date:~3,2%%date:~0,2% echo totto_%FileDate%.xls echo rename c:temptotto.xls totto_%FileDate%.xls echo mailCDO.exe destinataire expediteur "sujet du message" "texte du message" totto_%FileDate%.xls
Ensuite, il faut enlever les ECHO lorsque le batch semble correct.
Bon @ppétit !
Michel Claveau
Stephane
Re !
D'ailleurs, j'utilise CDO, sur des 2003-servers qui n'ont pas eu Outlook installé, et Outlook-Express jamais configuré, ni utilisé (au passage, IIS non plus).
A noter que CDO n'arrête pas d'évoluer, et je n'ai pas l'historique des changements, mais je crois me souvenir que c'est intégré à Windows depuis 2000, alors que, avant, c'était lié à Outlook/Office.
Ecoute en tout cas le fait de créer un compte dans express, de préciser juste le serveur SMTP, ca fonctionne sur plusieurs postes en XP et sur un serveur en 2000 à jour. J'ai pas de 2003 ni de Vista. Par contre ca ne fonctionne pas si express n'est pas renseigné. A l'époque mon express était renseigné pour le compte Oléane par contre pas les autres postes et ca marchait, j'ai mis un moment avant de me rendre compte de ca. Effectivement l'historique doit être un sacré bordel...
Stephane
Re !
D'ailleurs, j'utilise CDO, sur des 2003-servers qui n'ont pas eu Outlook
installé, et Outlook-Express jamais configuré, ni utilisé (au passage,
IIS non plus).
A noter que CDO n'arrête pas d'évoluer, et je n'ai pas l'historique des
changements, mais je crois me souvenir que c'est intégré à Windows
depuis 2000, alors que, avant, c'était lié à Outlook/Office.
Ecoute en tout cas le fait de créer un compte dans express, de préciser
juste le serveur SMTP, ca fonctionne sur plusieurs postes en XP et sur
un serveur en 2000 à jour. J'ai pas de 2003 ni de Vista.
Par contre ca ne fonctionne pas si express n'est pas renseigné. A
l'époque mon express était renseigné pour le compte Oléane par contre
pas les autres postes et ca marchait, j'ai mis un moment avant de me
rendre compte de ca.
Effectivement l'historique doit être un sacré bordel...
D'ailleurs, j'utilise CDO, sur des 2003-servers qui n'ont pas eu Outlook installé, et Outlook-Express jamais configuré, ni utilisé (au passage, IIS non plus).
A noter que CDO n'arrête pas d'évoluer, et je n'ai pas l'historique des changements, mais je crois me souvenir que c'est intégré à Windows depuis 2000, alors que, avant, c'était lié à Outlook/Office.
Ecoute en tout cas le fait de créer un compte dans express, de préciser juste le serveur SMTP, ca fonctionne sur plusieurs postes en XP et sur un serveur en 2000 à jour. J'ai pas de 2003 ni de Vista. Par contre ca ne fonctionne pas si express n'est pas renseigné. A l'époque mon express était renseigné pour le compte Oléane par contre pas les autres postes et ca marchait, j'ai mis un moment avant de me rendre compte de ca. Effectivement l'historique doit être un sacré bordel...
Stephane
vswildcat
Trop fort Michel !!
En fait, je travaillait sur un "disque" de back up, et je pense qu'il y a des sécurités là dessus. J'ai donc relancer en copiant tout sur C, et ça fonctionne avec %date:~6,4%%date:~3,2%%date:~0,2% !!
Par contre, idem, l'envoi par mail ne fonctionne pas...
Une idée ?
Salut !
ça dépend de la version de Windows, et de certaines configurations de locale.
Tente avec ça : %date:~6,4%%date:~3,2%%date:~0,2%
Pour info : echo %date:~6,4%
c'est équivalent à echo %date% (+ à partir du 6e caractère, et pour les 4 caractères qui suivent)
Donc, tu peux essayer (en invite de commande) : echo %date% echo %date:~6,4% echo %date:~6,4%%date:~3,2% echo %date:~6,4%%date:~3,2%%date:~0,2%
Ce qui te permettra de comprendre le fonctionnement (c'est pareil avec SET qu'avec ECHO)
@+
Michel Claveau
Trop fort Michel !!
En fait, je travaillait sur un "disque" de back up, et je pense qu'il y a
des sécurités là dessus.
J'ai donc relancer en copiant tout sur C, et ça fonctionne avec
%date:~6,4%%date:~3,2%%date:~0,2% !!
Par contre, idem, l'envoi par mail ne fonctionne pas...
Une idée ?
Salut !
ça dépend de la version de Windows, et de certaines
configurations de locale.
Tente avec ça :
%date:~6,4%%date:~3,2%%date:~0,2%
Pour info :
echo %date:~6,4%
c'est équivalent à
echo %date% (+ à partir du 6e caractère, et pour les 4
caractères qui suivent)
Donc, tu peux essayer (en invite de commande) :
echo %date%
echo %date:~6,4%
echo %date:~6,4%%date:~3,2%
echo %date:~6,4%%date:~3,2%%date:~0,2%
Ce qui te permettra de comprendre le fonctionnement (c'est
pareil avec SET qu'avec ECHO)
En fait, je travaillait sur un "disque" de back up, et je pense qu'il y a des sécurités là dessus. J'ai donc relancer en copiant tout sur C, et ça fonctionne avec %date:~6,4%%date:~3,2%%date:~0,2% !!
Par contre, idem, l'envoi par mail ne fonctionne pas...
Une idée ?
Salut !
ça dépend de la version de Windows, et de certaines configurations de locale.
Tente avec ça : %date:~6,4%%date:~3,2%%date:~0,2%
Pour info : echo %date:~6,4%
c'est équivalent à echo %date% (+ à partir du 6e caractère, et pour les 4 caractères qui suivent)
Donc, tu peux essayer (en invite de commande) : echo %date% echo %date:~6,4% echo %date:~6,4%%date:~3,2% echo %date:~6,4%%date:~3,2%%date:~0,2%
Ce qui te permettra de comprendre le fonctionnement (c'est pareil avec SET qu'avec ECHO)
@+
Michel Claveau
vswildcat
C'es tout bon pour le nom !! J'ai reçu ce .bat orignal de Belgique, donc, possible que les différences soient liées à des config différentes.
Par contre, reste le problème de l'envoi du mail. En décortiquant un autre script, j'ai trouvé : l'adresse IP (ainsi que le nom) de mon server exchange, et je connais bien sur mon profil et mon mot de passe.
Par contre, je ne sais pas comment ajouter ces informations dans le .bat
J'ai vu dans un autre script :
smtp_server="xxx.xxx.xxx.xxx.xxx" smtp_user="mon profil" smtp_password="mon mot de passe"
Mais si je ne fais pas d'erreur, ces lignes de code servent à déclarer les valeurs. Comment dois-je faire pour quelles soient prises en compte dans le .bat ?
Une idée ?
Re !
Exact, les "offset" qui étaient dans ton batch originel n'étaient pas corrects (quoique, selon le windows ou la config...)
Je te conseille d'appliquer les chiffres de mon message de 11h.40
Et, pour une meilleure trace, tu peux utiliser ECHO. Par exemple (pas testé) : set FileDate=%date:~6,4%%date:~3,2%%date:~0,2% echo totto_%FileDate%.xls echo rename c:temptotto.xls totto_%FileDate%.xls echo mailCDO.exe destinataire expediteur "sujet du message" "texte du message" totto_%FileDate%.xls
Ensuite, il faut enlever les ECHO lorsque le batch semble correct.
Bon @ppétit !
Michel Claveau
C'es tout bon pour le nom !! J'ai reçu ce .bat orignal de Belgique, donc,
possible que les différences soient liées à des config différentes.
Par contre, reste le problème de l'envoi du mail.
En décortiquant un autre script, j'ai trouvé : l'adresse IP (ainsi que le
nom) de mon server exchange, et je connais bien sur mon profil et mon mot de
passe.
Par contre, je ne sais pas comment ajouter ces informations dans le .bat
J'ai vu dans un autre script :
smtp_server="xxx.xxx.xxx.xxx.xxx"
smtp_user="mon profil"
smtp_password="mon mot de passe"
Mais si je ne fais pas d'erreur, ces lignes de code servent à déclarer les
valeurs. Comment dois-je faire pour quelles soient prises en compte dans le
.bat ?
Une idée ?
Re !
Exact, les "offset" qui étaient dans ton batch originel
n'étaient pas corrects (quoique, selon le windows ou la
config...)
Je te conseille d'appliquer les chiffres de mon message de
11h.40
Et, pour une meilleure trace, tu peux utiliser ECHO.
Par exemple (pas testé) :
set FileDate=%date:~6,4%%date:~3,2%%date:~0,2%
echo totto_%FileDate%.xls
echo rename c:temptotto.xls totto_%FileDate%.xls
echo mailCDO.exe destinataire expediteur "sujet du
message" "texte du message" totto_%FileDate%.xls
Ensuite, il faut enlever les ECHO lorsque le batch semble
correct.
C'es tout bon pour le nom !! J'ai reçu ce .bat orignal de Belgique, donc, possible que les différences soient liées à des config différentes.
Par contre, reste le problème de l'envoi du mail. En décortiquant un autre script, j'ai trouvé : l'adresse IP (ainsi que le nom) de mon server exchange, et je connais bien sur mon profil et mon mot de passe.
Par contre, je ne sais pas comment ajouter ces informations dans le .bat
J'ai vu dans un autre script :
smtp_server="xxx.xxx.xxx.xxx.xxx" smtp_user="mon profil" smtp_password="mon mot de passe"
Mais si je ne fais pas d'erreur, ces lignes de code servent à déclarer les valeurs. Comment dois-je faire pour quelles soient prises en compte dans le .bat ?
Une idée ?
Re !
Exact, les "offset" qui étaient dans ton batch originel n'étaient pas corrects (quoique, selon le windows ou la config...)
Je te conseille d'appliquer les chiffres de mon message de 11h.40
Et, pour une meilleure trace, tu peux utiliser ECHO. Par exemple (pas testé) : set FileDate=%date:~6,4%%date:~3,2%%date:~0,2% echo totto_%FileDate%.xls echo rename c:temptotto.xls totto_%FileDate%.xls echo mailCDO.exe destinataire expediteur "sujet du message" "texte du message" totto_%FileDate%.xls
Ensuite, il faut enlever les ECHO lorsque le batch semble correct.
Bon @ppétit !
Michel Claveau
jbongran
Stephane wrote:
Re !
D'ailleurs, j'utilise CDO, sur des 2003-servers qui n'ont pas eu Outlook installé, et Outlook-Express jamais configuré, ni utilisé (au passage, IIS non plus).
A noter que CDO n'arrête pas d'évoluer, et je n'ai pas l'historique des changements, mais je crois me souvenir que c'est intégré à Windows depuis 2000, alors que, avant, c'était lié à Outlook/Office.
Ecoute en tout cas le fait de créer un compte dans express, de préciser juste le serveur SMTP, ca fonctionne sur plusieurs postes en XP et sur un serveur en 2000 à jour. J'ai pas de 2003 ni de Vista. Par contre ca ne fonctionne pas si express n'est pas renseigné. A l'époque mon express était renseigné pour le compte Oléane par contre pas les autres postes et ca marchait, j'ai mis un moment avant de me rendre compte de ca. Effectivement l'historique doit être un sacré bordel...
Stephane
Mais non, c'est pas le bordel ;-) J'aime bien au passage la petite phrase qui indique que c'est un composant optionnel de l'installation d'un outlook, donc non installé par défaut. http://support.microsoft.com/default.aspx?scid=kb;fr;171440
Stephane wrote:
Re !
D'ailleurs, j'utilise CDO, sur des 2003-servers qui n'ont pas eu
Outlook installé, et Outlook-Express jamais configuré, ni utilisé (au
passage, IIS non plus).
A noter que CDO n'arrête pas d'évoluer, et je n'ai pas l'historique
des changements, mais je crois me souvenir que c'est intégré à
Windows depuis 2000, alors que, avant, c'était lié à Outlook/Office.
Ecoute en tout cas le fait de créer un compte dans express, de
préciser juste le serveur SMTP, ca fonctionne sur plusieurs postes en
XP et sur un serveur en 2000 à jour. J'ai pas de 2003 ni de Vista.
Par contre ca ne fonctionne pas si express n'est pas renseigné. A
l'époque mon express était renseigné pour le compte Oléane par contre
pas les autres postes et ca marchait, j'ai mis un moment avant de me
rendre compte de ca.
Effectivement l'historique doit être un sacré bordel...
Stephane
Mais non, c'est pas le bordel ;-)
J'aime bien au passage la petite phrase qui indique que c'est un composant
optionnel de l'installation d'un outlook, donc non installé par défaut.
http://support.microsoft.com/default.aspx?scid=kb;fr;171440
D'ailleurs, j'utilise CDO, sur des 2003-servers qui n'ont pas eu Outlook installé, et Outlook-Express jamais configuré, ni utilisé (au passage, IIS non plus).
A noter que CDO n'arrête pas d'évoluer, et je n'ai pas l'historique des changements, mais je crois me souvenir que c'est intégré à Windows depuis 2000, alors que, avant, c'était lié à Outlook/Office.
Ecoute en tout cas le fait de créer un compte dans express, de préciser juste le serveur SMTP, ca fonctionne sur plusieurs postes en XP et sur un serveur en 2000 à jour. J'ai pas de 2003 ni de Vista. Par contre ca ne fonctionne pas si express n'est pas renseigné. A l'époque mon express était renseigné pour le compte Oléane par contre pas les autres postes et ca marchait, j'ai mis un moment avant de me rendre compte de ca. Effectivement l'historique doit être un sacré bordel...
Stephane
Mais non, c'est pas le bordel ;-) J'aime bien au passage la petite phrase qui indique que c'est un composant optionnel de l'installation d'un outlook, donc non installé par défaut. http://support.microsoft.com/default.aspx?scid=kb;fr;171440