Bonjour,

Petit problème avec mon script.

Je lance un batch Rename.bat afin de renommer un fichier qui comporte des variables.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
@echo off
for /f "tokens= 1,2,3,4 delims=/ " %%I in ('date /t') do Set jour=%%I
for /f "tokens= 1,2,3,4 delims=/ " %%I in ('date /t') do Set mois=%%J
for /f "tokens= 1,2,3,4 delims=/ " %%I in ('date /t') do Set annee=%%K
RENAME e:\temp\ENTB*.DAT ENTB000%annee%%mois%%jour%.DAT
exit
le fichier est bien renommé sauf que mon script me balance un erreur "fichier introuvable". Au deuxieme lancement le fichier est trouvé et le script se termine correctement.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("%comspec% /k rename.bat /all")
 
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
Dim st
Set fso = CreateObject("Scripting.FileSystemObject")
Dim madate
madate = Year(Now)&"0"& Month(Now)& Day(Now)& Hour(Now)&Minute(Now)& Second(Now)
'Ouverture et lecture du fichier à modifier
Set f = fso.OpenTextFile("e:\temp\ENTB000"&Year(Now)&"0"& Month(Now)& Day(Now)&".DAT", ForReading)
Set f2 = fso.CreateTextFile("e:\temp\ENTB000.DAT.tmp")
Do While Not f.AtEndOfStream
  st = f.ReadLine
  If Right(Left(st,432),5) = "00000" Then
    f2.WriteLine Left(st,427) & "CBMTZ" & Right(st,Len(st) - 432)
  Else
    f2.WriteLine st
  End If
Loop
f.Close
f2.close
fso.deletefile ("e:\temp\ENTB000"&Year(Now)&"0"& Month(Now)& Day(Now)&".DAT")
fso.MoveFile "e:\temp\ENTB000.DAT.tmp", "e:\temp\ENTB000"&madate&".DAT"
Quelqu'un a une idée?