source: trunk/xftp/xftp.vbs@ 38

Last change on this file since 38 was 36, checked in by marrucho, 11 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.