Bonjour a tous je suis nouveaux ici
Je suis actuellement en stage et mon tuteur ma demander de génère un script .vbs pour lui.
En gros j'ai plusieurs dossiers nommé Test201 à Test (n) (n étant un nombre quelconque) suivant une suite logique dans chaque dossiers il y a un fichier xxx.reg
Contenue du fichier xxx.reg
; The RegSave Utility created this file
; This utility was written by Paul Hurford, Symbol EMEA TS
; You use the utility at your own risk
;
; Template File : \Application\RegSave.Reg
; Program Version : 2.20.01 May 13 2004 15:24:26
; File created 1/11/2003 00:27:58
;
[HKEY_LOCAL_MACHINE\Ident]
"Name"="Test201"
Donc ce qui ma été demander c'est que a chaque nouvelle copie du dossier Test le "Name"=Test prend la valeur du numéro du dossier
exemple
si j'ai Test202 Test 203
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 FileName = "test.reg" FindStr = """name""" & "=" & """BAM201""" ReplaceWith = """Name""" & "=" & """BAM20x""" 'Read source text file FileContents = GetFile(FileName) 'replace all string In the source file dFileContents = replace(FileContents, FindStr, ReplaceWith, 1, -1, 1) 'Compare source And result if dFileContents <> FileContents Then 'write result If different WriteFile FileName, dFileContents Wscript.Echo "Replace done." If Len(ReplaceWith) <> Len(FindStr) Then 'Can we count n of replacements? Wscript.Echo _ ( (Len(dFileContents) - Len(FileContents)) / (Len(ReplaceWith)-Len(FindStr)) ) & _ " replacements." End If Else Wscript.Echo "Text :" & FindStr & " non présent dans le fichier" End If 'Read text file function GetFile(FileName) If FileName<>"" Then Dim FS, FileStream Set FS = CreateObject("Scripting.FileSystemObject") on error resume Next Set FileStream = FS.OpenTextFile(FileName) GetFile = FileStream.ReadAll End If End Function 'Write string As a text file. function WriteFile(FileName, Contents) Dim OutStream, FS on error resume Next Set FS = CreateObject("Scripting.FileSystemObject") Set OutStream = FS.OpenTextFile(FileName, 2, True) OutStream.Write Contents End Function Voici un code qui lui change une chaine de caractère préciseCelui ci est en .bat il ne copie pas les commentaire et supprime des caractère
Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @echo off setlocal enabledelayedexpansion set "$C:\"="xxx.reg" (for /f "delims=" %%a in ('type "Idxx.reg"') do ( set "$ligne=%%a" set "$ligne=!$ligne:%~10=%~15! echo !$ligne!) )>sortie.reg pause
Partager