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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| Option Explicit
'----------
'déclaration des variables et constante
'----------
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim objFso, objFile,objFolder, strPath, strExt,fso,WshShell,ftxt,oFso,strdossier,strextension,strToSearch,strFilePath,objTempStream,objTempNewFile,strtemp
Dim File,sChaine,pos,proclu,exp2k21,lignes,schaine2,schaine3,schaine4
strExtension = "txt"
strToSearch = "END"
'----------
'Chemin du repertoire à parcourir et extension à rechercher
'----------
strPath = "chemindurepertoire"
strExt = "txt"
'----------
'Création du dossier pour la copie
'----------
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder("chemindurepertoire")
Set objFso = CreateObject("Scripting.FileSystemObject")
'----------
'Saisie de l'imprimante à rechercher et de l'imprimante à ajouter
'----------
exp2k21 = inputbox("saisir le nom de la file d'impression à rechercher sur le serveur [exp2k21]")
sChaine ="netprinter|\\exp2k21\"&exp2k21&"|"
'----------
'Parcour des fichiers txt du repertoire + convertion en minuscule de chaque ligne de fichier
'----------
Call ShowFileTxtFolder(strExt)
Set objFso = Nothing
Function ShowFileTxtFolder (strExt)
For Each objFile In objFso.GetFolder(strPath).Files
If LCase(objFso.GetExtensionName(objFile.Path)) = LCase(strExt) Then
Set File = objFso.OpenTextFile(objfile.Path, ForReading)
while Not File.AtEndOfStream
lignes = File.Readline
lignes = Lcase(lignes)
'----------
' Recherche d'une chaine de caractère dans les lignes du fichier txt
' Copie du fichier dans le nouveau repertoire si chaine trouvée
'----------
pos=InStr(lignes,schaine)
if pos = 1 then
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Ftxt = fso.GetFile(objfile.Path)'fichier source
Ftxt.copy("chemindurepertoire")'chemin du repertoire de copie
end if
wend
File.Close
Set File = nothing
End if
Next
'----
' bidouille
'----
sChaine3 = schaine&"n"
sChaine4 = schaine&"y"
'----------
' Recherche et remplacement de la chaine END pour l 'ensemble des fichiers déplacés
' Par le mappage de l'imprimante sur proclu01ps
' Rajout de END en fin de fichier
'----------
strdossier = "chemindurepertoire" '===>'chemin du repertoire à parcourir
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder(strdossier)
For Each objFile In objFolder.Files
strFilePath = objFile.Path
If LCase(objFso.GetExtensionName(strFilePath)) = LCase(strExtension) Then
Set objTempStream = objFso.OpenTextFile(strFilePath, 1)
Set objTempNewFile = objFso.CreateTextFile(strFilePath & ".temp", 2)
Do While NOT objTempStream.AtEndOfStream
strTemp = objTempStream.ReadLine
strTemp = Lcase(strTemp)
If Instr(strTemp,schaine3) = 1 Then
Elseif Instr(strTemp,schaine4) = 1 Then
else
objTempNewFile.WriteLine strTemp
End If
Loop
objTempStream.Close
objTempNewFile.Close
objFile.Delete
objFso.MoveFile strFilePath & ".temp", strFilePath
End If
Next
End Function
Wscript.Echo "Fin du programme" |
Partager