Bonjour les amis,

Je vous explique la situation, je dispose d'une liste d'audios au format wav, et je dois tous les renommer suivant une forme précise. On m'a fournit un script qui doit réaliser ce renommage. Or, je n'arrive pas à le faire fonctionner, je vois bien que je dois adapter une partie du code afin qu'il reconnaisses les fichiers audios mais je n'y arrive pas.

Il est mentionné que dans l'état livré, le srcipt reconnait les fichiers audio nommés ainsi : N° téléphone sur 10 chiffres#date heure de l’appel sur 12 chiffres # « ce qu’on veut »


OR mon audio se nomme sous la forme : [NOM, prenom]_210-0610745177_202206091040201(16574).wav

le [nom prenom] etant celui de l'agent qui fait l'appel et non celui du client


et dois être transformé en : NUMERO DE VENTE _DATE HEURE APPEL _NOM CLIENT.format audio du fichier



VOICI LE SCRIPT :

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
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
Const ForReading = 1
	Set FSO = CreateObject("Scripting.FileSystemObject")
	Set g_oSB = CreateObject("System.Text.StringBuilder")
 
	separateurFichierExportSwapp = "|"
	separateurAudioNamesOutput = "_"
 
	'Caractéristiques des fichiers audios: le script doit être placé dans le même répertoire que les fichiers audios
	audioPath = FSO.GetParentFolderName(WScript.ScriptFullName)
	separateurAudioNamesInput = "#"
	audioAcceptedExtensions = "mp3mp4wav"
 
	strLigne1 = "-Ce script doit etre positionne dans un dossier qui contient les enregistrements WCC et le fichier d'export WCC issu du parcours de conformite Swapp."
	strLigne2 = "-Les enregistrements WCC doivent commencer par le numero de telephone ainsi que la date/heure de l'appel comme suit: 0645946591"+separateurAudioNamesInput+"202107291550 pour un appel effectue le 29 juillet a 15H50"
	strLigne3 = "-Veuillez selectionner le fichier d'export WCC lors de l'etape suivante"
 
	MsgBox strLigne1 & vbcrlf & strLigne2 & vbcrlf & strLigne3 ,64, "Mode d'emploi: renommer les enregistrements WCC"
 
	'Sélection du fichier d'export des ventes Swapp
	Set wShell=CreateObject("WScript.Shell")
	Set oExec=wShell.Exec("mshta.exe ""about:<input type=file id=FILE><script>FILE.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FILE.value);close();resizeTo(0,0);</script>""")
	exportSwappFullPath = oExec.StdOut.ReadLine
 
	If exportSwappFullPath <> "" Then
 
			dateMaintenant = now()
			maintenant = sprintf("{0:yyyyMMddHHmmss}", Array(dateMaintenant))
 
			'Là ou seront copiés les audios renommées pour Engie
			audioPathPourEngie = audioPath & "\Engie" & maintenant & "\"
			FSO.CreateFolder(audioPathPourEngie)
 
 
			Set FLD = FSO.GetFolder(audioPath)
 
			ecrireLigneLog("Transformation des enregistrements WCC le " & dateMaintenant )
			ecrireLigneLog("---------------")
			'Boucle  sur chaque fichier du dossier
			For Each fil in FLD.Files
				strOldAudioName = fil.Name
				strAudioExtension = FSO.GetExtensionName(fil.Path)
 
				'On ne prend que les fichiers mp3 mp4 wav, munis du séparateur pré-défini
				If (InStr(strOldAudioName, separateurAudioNamesInput) * InStr(audioAcceptedExtensions, strAudioExtension))  > 0 Then
					strFileParts = Split(strOldAudioName, separateurAudioNamesInput)
					'Ici on récupère depuis le nom de fichier le numéro de téléphone et la date / heure de l'appel
					'Zone à adapter selon le format de fichier produit par l'enregistreur d'appels du partenaire
					strTelephone = strFileParts(0)
					strTimestampAppel = strFileParts(1)
 
					compteurAssociationDuFichier = 0
					compteurFichiersAudioParcourus = compteurFichiersAudioParcourus + 1
 
					'On va rechercher dans le fichier d'export swapp la ou les lignes qui contiennetn le numéro de téléphone extrait du nom de fichier audio
						'Si on trouve plusieurs lignes, on créé une copie du fichier audio pour chaque ligne (cas ou le même téléphone sert pour plusieurs ventes)
						'Si plusieurs fichiers correspondent au même numéro de téléphone identifié à une vente, chaque fichier sera associé à cette vente
						'On exclut les AF
 
					Set objTextFile = FSO.OpenTextFile(exportSwappFullPath, ForReading)
					do until objTextFile.AtEndOfStream
						strLine = objTextFile.ReadLine()
 
							If InStr(1, strLine, strTelephone) <> 0 then
								strTypeEnergie = Split(strLine, separateurFichierExportSwapp)(47)
 
								'Uniquement pour les ventes Energie: G, E, GE
								If (InStr("GE", strTypeEnergie) > 0) then
									'Récupération de idVente (=premiere colonne)
									strIdVente = Split(strLine, separateurFichierExportSwapp)(0)
									strNomClient = Split(strLine, separateurFichierExportSwapp)(14)
 
									'Construction du nouveau nom du fichier audio Idvente_timestamp_NomCLient.mp3
									strNewName = strIdVente & separateurAudioNamesOutput & strTimestampAppel & separateurAudioNamesOutput & strNomClient & "." & strAudioExtension
 
									'Copie du fichier audio renommé
									FSO.CopyFile fil.Path, audioPathPourEngie & strNewName
 
									compteurCopies = compteurCopies + 1
									compteurAssociationDuFichier = compteurAssociationDuFichier +1 
									'Ecriture de la copie dans le log
									ecrireLigneLog("Fichier " & fil.Path & " copié dans " & audioPathPourEngie & strNewName)
 
 
 
								End If
							End If
 
					loop
					objTextFile.Close	
					ecrireLigneLog("Fichier " & fil.Path & " copié " & compteurAssociationDuFichier & " fois car associé à " & compteurAssociationDuFichier & " vente(s)")
					ecrireLigneLog("---------------")
 
					If (compteurAssociationDuFichier = 0) then
						warning1 = "Attention: Certains enregistrements WCC n'ont pas été associés à une vente Swapp  : le numéro de téléphone du fichier audio n'est retrouvé dans aucune vente du fichier d'export Swapp"
					ElseIf compteurAssociationDuFichier > 1 then
						warning2 = "Attention: Certains enregistrements WCC ont été associés à plusieurs ventes Swapp : le numéro de téléphone du fichier audio est retrouvé dans plusieurs ventes différentes du fichier d'export Swapp"
					End If
 
				End If
			Next
			ecrireLigneLog("Bilan:")
			ecrireLigneLog("Transformation de fichiers audio le " & dateMaintenant )
			ecrireLigneLog(compteurFichiersAudioParcourus & " fichiers d'enregistrements WCC ont été parcourus")
			ecrireLigneLog(compteurCopies & " associations enregistrements WCC / vente Swapp ont été effectuées")
			ecrireLigneLog(warning1)
			ecrireLigneLog(warning2)
 
 
 
	End If
 
	'Cleanup the objects
	Set FLD = Nothing
	Set FSO = Nothing
	Set g_oSB = Nothing
	Set oExec = Nothing
 
 
Function sprintf(sFmt, aData)
   g_oSB.AppendFormat_4 sFmt, (aData)
   sprintf = g_oSB.ToString()
   g_oSB.Length = 0
End Function
 
Function ecrireLigneLog(strLigne)
	Set logtxt = FSO.OpenTextFile(audioPathPourEngie & maintenant & "log.txt",8,true)
	logtxt.WriteLine(strLigne)
	logtxt.Close
	Set logtxt = Nothing
End Function
Merci de votre aide