source: trunk/xftp/xftp.vbs @ 36

Last change on this file since 36 was 36, checked in by marrucho, 10 years ago

1er import du dossier xftp

File size: 6.5 KB
Line 
1' 03 mars 2014
2
3Option Explicit
4
5Dim strComputer, objWMIService, colItems, objItem
6Dim objWMI, objItems, id
7
8Dim PathFileResult
9PathFileResult="c:\temp\xftpDirResult.txt"
10
11Dim PathFileFtpArg
12PathFileFtpArg="c:\temp\empty.txt"
13
14' force l'execution du script, même si défaut
15On error resume next
16
17Wscript.Echo "xftp :"   
18
19
20'connexion au serveur ftp et transfert le dossier le plus récent
21Function ConnectLecteurReseauFtpWithLast()
22        Dim objOutStream, objFile, objFSO, objShell, dirFSO
23        Dim ftpHost, idCond, cmd2Exec, localDir
24
25        Const ForWriting = 2
26
27'       Wscript.echo "ConnectLecteurReseauFtpWithLast"
28
29        'lecture lecteur réseau ftp
30        Set objShell = CreateObject("WScript.Shell")
31'       cmd2Exec = "%comspec% /c dir f: /A:D /O:-D /T:C /B > c:\temp\xftpDirResult.txt"
32        cmd2Exec = "%comspec% /c dir f: /A:D /O:-D /T:C /B >  " & PathFileResult
33        Wscript.echo cmd2exec
34        objShell.Run cmd2Exec,0,True
35
36        'lecture fichier pour récupérer le dernier idCond
37        Set objFSO = CreateObject("Scripting.FileSystemObject")
38'       Set objFile = objFSO.OpenTextFile("c:\temp\xftpDirResult.txt",1)
39        Set objFile = objFSO.OpenTextFile(PathFileResult,1)
40        '1ere ligne du fichier
41        idCond=Cint(objFile.ReadLine)
42'       Wscript.echo idCond
43        objFile.Close
44
45        ''''' CREER LE REPERTOIRE EN LOCAL SI N'EXISTE PAS '''''
46        Set dirFSO = CreateObject("Scripting.FileSystemObject")
47        localDir = "c:/temp/"&idCond
48        If Not dirFSO.FolderExists(localDir) Then
49                dirFSO.CreateFolder localDir
50        End If 
51
52        'accès ftp     
53        ftpHost = "172.16.1.19"
54'       Set objOutStream = objFSO.OpenTextFile("C:\temp\"&idCond&"\empty.txt", ForWriting, True)
55        Set objOutStream = objFSO.OpenTextFile(PathFileFtpArg, ForWriting, True)
56        With objOutStream
57            .WriteLine "USER moi"   ' utilisateur
58            .WriteLine "PASS toi"     ' mdp
59            .WriteLine "ascii"
60            .WriteLine "prompt off"
61            .writeLine "cd "&"temp/json/"&idCond ' il faut aller les chercher dans ce repertoire
62            .WriteLine "lcd "&"c:/temp/"&idCond ' il faut les copier dans ce repertoire
63            .WriteLine "mget *"    ' recupere et redate
64            .WriteLine "bye"
65            .Close
66        End With
67        objOutStream.Close
68        'Set objShell = CreateObject("WScript.Shell")
69'       cmd2Exec = "%comspec% /c FTP -s:" & "C:\temp\"&idCond&"\empty.txt" & " " & ftpHost
70        cmd2Exec = "%comspec% /c FTP -s:" & PathFileFtpArg & " " & ftpHost
71        Wscript.echo cmd2exec
72        objShell.Run cmd2Exec,0,True
73
74        ConnectLecteurReseauFtpWithLast=idCond'on retourne la valeur de idCond
75
76        Wscript.Echo
77End Function
78
79
80'connexion au serveur ftp et transfert le dossier sélectionné
81Sub ConnectLecteurReseauFtpWithId(byval id)
82        Dim objOutStream, objFSO, objShell, dirFSO
83        Dim ftpHost, cmd2Exec, localDir
84
85        Const ForWriting = 2
86
87'       Wscript.echo "ConnectLecteurReseauFtpWithId"
88
89        ''''' CREER LE REPERTOIRE EN LOCAL SI N'EXISTE PAS '''''
90        Set dirFSO = CreateObject("Scripting.FileSystemObject")
91        localDir = "c:/temp/"&id
92        If Not dirFSO.FolderExists(localDir) Then
93                dirFSO.CreateFolder localDir
94        End If 
95               
96        'accès ftp     
97        ftpHost = "172.16.1.19"
98        Set objFSO = CreateObject("Scripting.FileSystemObject")
99'       Set objOutStream = objFSO.OpenTextFile("C:\temp\"&id&"\empty.txt", ForWriting, True)
100        Set objOutStream = objFSO.OpenTextFile(PathFileFtpArg, ForWriting, True)
101
102        With objOutStream
103            .WriteLine "USER moi"   ' USERNAME
104            .WriteLine "PASS toi"     ' Password
105            .WriteLine "ascii"
106            .WriteLine "prompt off"
107            .writeLine "cd "&"temp/json/"&id
108            .WriteLine "lcd "&"c:/temp/"&id ' FOLDER I'm changing into
109            .WriteLine "mget *"    ' Get all files with today's date in it
110            .WriteLine "bye"
111            .Close
112        End With
113        Set objShell = CreateObject("WScript.Shell")
114'       cmd2Exec = "%comspec% /c FTP -s:" & "C:\temp\"&id&"\empty.txt" & " " & ftpHost
115        cmd2Exec = "%comspec% /c FTP -s:" & PathFileFtpArg & " " & ftpHost     
116        Wscript.echo cmd2exec
117        objShell.Run cmd2Exec,0,True
118       
119        Wscript.Echo
120End Sub
121
122
123'Copies sur la borne si w: existe
124Sub CopieBorne(byval id)
125        Dim dirBorneFSO, objShell
126        Dim cmd2Exec, borneDir 
127       
128        Wscript.echo "CopieBorne"
129
130        Set dirBorneFSO = CreateObject("Scripting.FileSystemObject")
131        borneDir = "w:"
132        If dirBorneFSO.DriveExists(borneDir) Then
133                Wscript.echo "drive w:"
134                Set objShell = CreateObject("WScript.Shell")
135                Wscript.echo "copy xftp.."
136                cmd2Exec = "%comspec% /c copy /Y c:\temp\xftp.txt w:"
137                Wscript.echo cmd2exec
138                objShell.Run cmd2Exec,0,True
139
140                Wscript.echo "create directory w:\"&id&""
141                cmd2Exec = "%comspec% /c mkdir w:\"&id&""       
142                Wscript.echo cmd2exec
143                objShell.Run cmd2Exec,0,True
144                Wscript.echo "error" & " Description:" & Err.Description
145
146                Wscript.echo "copy into repertory w:\"&id&""
147                cmd2Exec = "%comspec% /c copy /Y c:\temp\"&id&"\* w:\"&id&""
148                Wscript.echo cmd2exec
149                objShell.Run cmd2Exec,0,True
150        Else
151                Wscript.echo "w: do not exist"                 
152        End If 
153
154        Err.clear
155        Wscript.Echo
156End Sub
157
158
159'recupere la date
160strComputer = "."
161Set objWMIService = GetObject("winmgmts:" _
162& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
163Set colItems = objWMIService.ExecQuery("Select * from Win32_LocalTime")
164For Each objItem in colItems
165   Wscript.Echo "" &objItem.Day,"-","" &objItem.Month,"-","" &objItem.Year,_
166   ",","" &objItem.Hour,":","" &objItem.Minute,":","" &objItem.Second
167Next
168
169'recuperer les adresses ip
170Set objWMI = getobject("winmgmts:")
171set objItems = objWMI.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True")
172For Each objItem In objItems
173   'Wscript.Echo objItem.IPAddress(0)
174   If Left(objItem.IPAddress(0),3) = "172" Then
175      Wscript.Echo objItem.IPAddress(0), " : ...CONNECTION TO FTP SERVER..."
176      If WScript.Arguments.Length >0 Then
177                Wscript.echo "id conditionning= "&WScript.Arguments(0),"... transfering the selected repertory"'parametre id conditionning
178'               idCond = WScript.Arguments(0)
179                ConnectLecteurReseauFtpWithId(WScript.Arguments(0))
180                CopieBorne(WScript.Arguments(0))
181                exit for'une seule fois suffit !!
182      Else
183                Wscript.echo "No id conditionning specified... transfering the most recent repertory"
184                id=ConnectLecteurReseauFtpWithLast()
185                CopieBorne(id)
186                exit for'une seule fois suffit !!
187      End If
188'      Select Case Left(objItem.IPAddress(0),8)
189'      Case "172.XX.X"
190'      'instructions
191'      Case "172.XX.X"
192'      'instructions
193'      End Select
194   End If
195   If Left(objItem.IPAddress(0),3) = "134" Then
196      Wscript.Echo objItem.IPAddress(0), " : ...NO CONNECTION TO FTP SERVER..."     
197      'ne fait rien
198      Wscript.Echo
199      Wscript.quit
200   End If
201Next
202Set objItem = Nothing
203Set objItems = Nothing
204Set objWMI = Nothing
205 
206Wscript.quit
Note: See TracBrowser for help on using the repository browser.