OVH Cloud OVH Cloud

Copie de fichier générique

19 réponses
Avatar
---DGI972---
Bonjour a tous,
Je reçois, sur un pc, un fichier tous les jours (sauf le samedi et le
dimanche).Ce fichier est réceptionné dans un répertoire fixe avec une
racine constante le quantième du jour et une extension numérique selon
le numéros d'ordre d'arrivée (par ex FICH231.554 ;231= quantième du
19/08/2005). Je dois le recopier ce fichier sur 2 autres pc avec un non
fixe.
comment récuperer le fichier en ne sachant pas a l'avance le numéro
d'ordre d'arrivé ?
pour le Quantième j'ai trouvé la formule magique

Voici le début de mon script

Option Explicit
Dim fso, sPath, sFileName, sFile, fileIn, fileOut, QUANT, monshell,
DossierDest1,DossierDest2

DossierDest1 = "\\192.168.15.156\CLIENTS\MAR\"
DossierDest2 = "\\97.10.2.10\D\CLIENTS\GUA\"
set monshell = WScript.CreateObject("WScript.Shell")
monshell.Run "NET USE "& DossierDest1 &" test /USER:DOMAINE/toto
tata",0, true
monshell.Run "NET USE "& DossierDest2 &" test /USER:toto tata",0, true

Set fso = CreateObject("Scripting.FileSystemObject")


QUANT=Date()-DateSerial(Year(Date()),1,1)+1 'fabrication du quantième
if QUANT<10 then QUANT="00"&QUANT
if QUANT<100 then QUANT="0"&QUANT

sPath = "\\192.168.15.156\CLIENTS\MAR\"
sFileName = "BDFIMP"&QUANT&".*" 'la j'ai un PB
SFile = sPath & sFileName

Set fileIn = fso.GetFile(sFileName)'la j'ai un PB
fileIn.Copy "\\192.168.15.156\CLIENTS\MAR\IMP\IMPBAFIC"
fileIn.Copy "\\97.10.2.10\D\CLIENTS\GUA\IMP\IMPBAFIC"

Je compte mettre se Script dans le planificateur de tâche tous les
matin des jours de la semaine.

Merci d'avance pour vos conseils

9 réponses

1 2
Avatar
Jean-Claude BELLAMY
Dans le message news: ,
---DGI972--- <gilles.dermigny@*NOSPAM*laposte.net> s'est ainsi exprimé:

Do Re Mi chel La Si Do avait prétendu :
On peut faire plus compact :

for /F %%i in ('dir C:REPRECEPTEURF*.* /B /O:E') do (set
dernier=%%i) copy C:REPRECEPTEUR%dernier% C:REPDESTTOTO.TXT
[...]


J'ai comme message:
%%1 était inattendu ?????
Au secours !!!!!


Encore un qui ne sait pas LIRE !!! ;-)

"Do Re Mi chel La Si Do " a écrit
for /F %%i ...

et non pas
for /F %%1 ...
qui ne veut rien dire du tout

De tout façon, même sans avoir lu, tu devrais savoir (çà date de DOS 1 ou 2
!) que les variables de boucle sont toujours une LETTRE, et seuls les
paramètres formels passés à un batch sont des CHIFFRES (%1 à %9).


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*


Avatar
Do Re Mi chel La Si Do
Salut !


Si les fichiers sont traités comme suit :
test1.001
test1.002
test1.012
test1.015
test1.123
Il n'y aura pas de problème. Si ce n'est pas le cas, On peut aussi trier sur
la date, faire son propre sous-programme de tri, extraire et retraiter les
extensions (et utiliser SORT), etc. Tout ça sans sortir du batch.



...l'interpréteur de commandes NT...




Il faut oublier NT. Windows-2000, et XP, ont chacun amené leur lot de
nouveautés, dont les possibilités de calcul, et les calls internes se sont
pas des moindres.


Le résultat de tout ça, c'est une puissance étonnant du Batch, qui permet
d'effectuer très simplement des traitements qui demanderaient beaucoup de
lignes en VBS (ou autres).


@-salutations

Michel Claveau



Avatar
---DGI972---
Salut !


Ça vient peut-être aussi de la police de caractère utilisée pour la lecture
du message.

J'aurais dû poster en HTML, de manière à être plus lisible.

C'est donc aussi un peu de ma faute...


@-salutations

Michel Claveau


Bonjour,

j'avais bien lu, c'est en rédideant le message d'erreur que j'ai mis un
1 à la place du i.
En faisant le menage dans le répertoire (non nettoyé depuis le debut de
l'année 2005), le Batch fonctionne correctement (pour combien de temps
encore ???).

Merci

Avatar
---DGI972---
---DGI972--- vient de nous annoncer :
Salut !


Ça vient peut-être aussi de la police de caractère utilisée pour la lecture
du message.

J'aurais dû poster en HTML, de manière à être plus lisible.

C'est donc aussi un peu de ma faute...


@-salutations
Michel Claveau


Bonjour,

j'avais bien lu, c'est en rédideant le message d'erreur que j'ai mis un 1 à
la place du i.
En faisant le menage dans le répertoire (non nettoyé depuis le debut de
l'année 2005), le Batch fonctionne correctement (pour combien de temps encore
???).

Merci


Bonjour,

Suite et fin
Je voudrais aussi recopier se fichier avec une racine fixe + le Jour du
mois + le mois + .txt.
Par ex:
TOTO2308.txt pour le 23 Août
Comment récupérer le jour du mois et le mois en cours sous forme de
variable ?

Merci


Avatar
Jean-Claude BELLAMY
Dans le message news: ,
---DGI972--- <gilles.dermigny@*NOSPAM*laposte.net> s'est ainsi exprimé:

[...]
Je voudrais aussi recopier se fichier avec une racine fixe + le Jour
du mois + le mois + .txt.
Par ex:
TOTO2308.txt pour le 23 Août
Comment récupérer le jour du mois et le mois en cours sous forme de
variable ?


...
set Mois=%DATE:~3,2%
set Jour=%DATE:~0,2%
set nomfic=TOTO%Jour%%Mois%.txt
...

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
Do Re Mi chel La Si Do
Le Lucky Luke du newsgroup, celui qui poste plus vite que son ombre, a
encore frappé...

Et, bien sûr, il a tiré juste !
Avatar
---DGI972---
Do Re Mi chel La Si Do a formulé la demande :
Le Lucky Luke du newsgroup, celui qui poste plus vite que son ombre, a encore
frappé...

Et, bien sûr, il a tiré juste !


oui trés rapide,
et en plus cela fonctionne, mais j'aurais souhaité faire définitivement
le tours de la question:
Pouvez vous me confirmer pour l'année:
"set Année=%DATE:~6,4%" et/ou "set Année=%DATE:~8,2%" ?
Mais pour le Quantième du Jour en DOS ??

Merci

Avatar
Do Re Mi chel La Si Do
Bonjour !


La forme %VVV:~ddd,nnn%

permet d'extraire [nnn] caractères, du contenu de la variable [VVV], à
partir du caractère [ddd]

Pour tester, on peut mettre un "echo" et voir ce que ça donne. En effet, la
présentation des "DIR" peut varier, selon les versions, ou les switchs de
commande utilisés. Avec ça il est possible de déterminer les chiffres exacts
à utiliser.


@-salutations

Michel Claveau
Avatar
---DGI972---
Il se trouve que Do Re Mi chel La Si Do a formulé :
Bonjour !


La forme %VVV:~ddd,nnn%

permet d'extraire [nnn] caractères, du contenu de la variable [VVV], à partir
du caractère [ddd]

Pour tester, on peut mettre un "echo" et voir ce que ça donne. En effet, la
présentation des "DIR" peut varier, selon les versions, ou les switchs de
commande utilisés. Avec ça il est possible de déterminer les chiffres exacts
à utiliser.


@-salutations

Michel Claveau


Je voulais dire en parlant de quantième non pas le jour de la semaine
mais le Quantième de l'année (par EX 365 pour le dernier jour de
l'année).
Sinon je me suis fait piéger par les différents OS.
en NT et W2k le résultat de DATE est: Jeu. 25/08/2005
et en XP Pro 25/08/2005 et comme je suis du genre trés lents à la
détente, j'ai mis l'aprés midi a comprendre.

a bon entendeur Salut

1 2