En fait, j'avais besoin d'automatiser le traitement des scripts du répertoire Sysvol.
Rien de plus pénible que de modifier un a un tous les scripts quand on change une imprimante partagée, un nom de répertoire, ou un serveur... Le but était donc de créer un script qui change une valeur donnée pour tous les scripts où elle se trouve.
Donc à force de recherches et avec l'aide de JMO sur ce forum, voici la naissance de ce script qui rend bien des services.
Il est paramètré pour prendre en compte les scripts, de préférence, mais libre à vous de le modifier selon vos besoins. Attention cependant, il respecte la casse!!
Vous exécutez le script et tout est automatisé:
- InputBox: vous entrez ce que vous voulez modifier
- Inputbox: vous entrez la valeur de remplacement
- MsgBox: petit avertissement pour le plaisir ;-)
- commonDialog: selection du type de fichier, du répertoire et des fichiers
- MsgBox: c'est fait!
Source / Exemple :
'---------------------------------------
'Remplace une valeur par une autre
'pour tous les fichiers selectionnés
'---------------------------------------
Option Explicit
Dim Saisie1, Saisie2
Saisie1 = InputBox(vbCrLf&vbCrLf&vbCrLf&vbCrLf&"Quelle chaine de caractères" &_
" voulez-vous remplacer ???","Modification par lot", "ligne")
If Saisie1 = "" Then WScript.Quit
Saisie2 = InputBox(vbCrLf&vbCrLf&vbCrLf&vbCrLf&"Par quelle chaine de caractères" &_
" voulez-vous remplacer la chaine " & Saisie1 &_
" ???","Modification par lot", "nouvelle ligne")
If Saisie2 = "" Then WScript.Quit
MsgBox vbCrLf&"Choisissez maintenant tous les fichiers" &_
vbCrLf&"pour lesquels vous voulez remplacer la chaine:" &_
vbCrLf&Saisie1, vbExclamation, "Modification par lot"
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, i, j, strtmp, Resultat
Set fso = CreateObject("Scripting.FileSystemObject")
'affiche une boite de dialogue à choix multiples
'*****valable uniquement sur XP*****
Dim objDialog, intResult, arrFiles, strPath, strFile
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "VBScript |*.vbs|Java Script| *.js|Batch| *.bat|" &_
"Fichiers Texte| *.txt |Tous les fichiers|*.*"
objDialog.Flags = &H0200
objDialog.FilterIndex = 1
objDialog.InitialDir = "C:\"
intResult = objDialog.ShowOpen
If intResult = 0 Then
Wscript.Quit
Else
arrFiles = Split(objDialog.FileName, " ")
For i = 1 to Ubound(arrFiles)
strFile = arrFiles(i)
Dim objTextStream
Set objTextStream = Fso.OpenTextFile(strFile, ForReading)
Resultat = objTextStream.ReadAll
strtmp = split(Resultat,"")
For j = 0 to Ubound(strtmp)
If instr(trim(strtmp(j)),Saisie1) Then
strtmp(j) = Replace(strtmp(j), Saisie1, Saisie2)
End If
objTextStream.Close
Set objTextStream = Fso.OpenTextFile(strFile, ForWriting, True)
objTextStream.Write strtmp(j)
objTextStream.Close
Next
Next
End If
Set objTextStream = Nothing
Set fso = Nothing
Set objDialog = Nothing
MsgBox "Modifications effectuées !!!", vbInformation, Now()
Conclusion :
Voilà, j'espère qu'il rendra service à d'autres personne comme moi.
Grand grand merci à JMO !!!!