TUTOS.EU

Eliminer les fichiers RAW orphelins

Effacer les fichiers RAW (.CR2) lorsque le double .JPG a été supprimé.

Vous avez un appareil photo numérique et pour chaque cliché pris, vous avez ET un .jpg ET le format RAW (ici les .CR2).

Vous n’avez sélectionnez que quelques clichés en effaçant uniquement .jpg.

Des fichiers au format RAW (les .CR2) se retrouvent orphelins et il faut éliminer.

Bref il ne faut effacer QUE les .CR2 qui n’ont plus leur équivalent .JPG.

C’est le but du script ‘Eliminer photos RAW orphelines.vbs’ qu’il convient de copier et lancer par un double clic dans le répertoire à traiter.

Exemple :

Le script

Dim objFSO 'Objet FSO pour l'accès au système de fichiers
Dim MyFile 'Représente un fichier
Dim objTextFile 'Représente le fichier texte qui contient les réponses
Dim Position
Dim ExtensionFichier
Dim NomFichierSansExtension
	
'Déclaration des constantes pour la lecture et l'ecriture dans les fichiers
Const ForReading = 1
Const ForWritting = 2
Const ForAppending = 8	

CheminScriptActuel = Left(wscript.scriptfullname,Len(wscript.scriptfullname)-Len(wscript.scriptname)-1)
CheminFichierResultat = CheminScriptActuel & "\" & "00Batch_effacer_RAW_orphelins.bat"
CheminRepertoireAExplorer = InputBox("Entrez le chemin du répertoire","Chemin du répertoire",CheminScriptActuel)
CheminFichierResultat = InputBox("Entrez le chemin du fichier contenant le resultat","Chemin du fichier de reponse",CheminFichierResultat)


'Création des objets
Set objFSO = CreateObject("Scripting.FileSystemObject")

'On fait un objet qui représente le répertoire à explorer
Set objFolder = objFSO.GetFolder(CheminRepertoireAExplorer)
Set objTextFile = objFSO.OpenTextFile(CheminFichierResultat, ForWritting, True)

objTextFile.WriteLine("Cd """ & CheminScriptActuel & """")

For Each MyFile In objFolder.Files

	ExtensionFichier = ""
	Position = InStrRev(MyFile.Name,".")

	If (Position > 0) And (Position < Len(MyFile.Name)) Then
		ExtensionFichier = Mid(MyFile.Name,Position+1)
		NomFichierSansExtension = Left(MyFile.Name,Position-1)
		If (Lcase(ExtensionFichier) = "cr2" Or Lcase(ExtensionFichier) = "arw") Then
			CheminFichierAVerifier = objFolder.path & "\" & NomFichierSansExtension & ".jpg"
		
			If objFSO.FileExists(CheminFichierAVerifier) = False Then
				objTextFile.WriteLine("DEL """ & objFolder.path & "\" & NomFichierSansExtension & ".cr2" & """ /F")
				objTextFile.WriteLine("DEL """ & objFolder.path & "\" & NomFichierSansExtension & ".arw" & """ /F")
			End If

		End If	

	End If

Next

objTextFile.Close
Set objTextFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing

Public Function LancerExecutableWScriptShellRun(ByVal CheminExecutable, ByVal Arguments, ByVal ModeExecution, ByVal AttendreExecutable)

'Version du 30 septembre 2009 : Retour d un eventuel message d erreur
'Ex Version du 04 avril 2008
'Ex Version du 26 mars 2008
'Ex Version du 5 mars 2008

'LancerExecutableWScriptShellRun ne retourne rien si il n y a pas eu de probleme, sinon retourne un message d erreur

'Valeurs de ModeExecution :
' 0 : Cache et active une autre fenetre
' 1 : active la fenêtre de l executable et l affiche normalement
' 2 : active et minimise la fenetre
' 3 : active et maximise la fenetre
' 4 : ne touche pas a la fenetre active, affiche a la taille la plus recente
' 5 : active la fenetre active, affiche a la taille la plus recente
' 6 :
' 7 : ne touche pas a la fenetre active, minimise la fenetre
' 8
' 9
' 10

'Valeurs de AttendreExecutable
' True
' False

Dim Commande
Dim ObjShell
Dim NumeroErreur
Dim VariableBidon

LancerExecutableWScriptShellRun = "" 'Valeur par defaut

Select Case Cstr(ModeExecution)
	Case "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"
		VariableBidon = 2
	Case Else
		ModeExecution = 1
End Select

Select Case AttendreExecutable
	Case True
		VariableBidon = 2
	Case False
		VariableBidon = 2
	Case Else
		AttendreExecutable = True
End Select

Commande = CheminExecutable

If Len(Arguments) > 0 Then
	Commande = Commande & " """ & Arguments & """"
	'Commande = """" & Commande & " """ & Arguments & """" & """"
	'MsgBox Commande
End If

'Creation de l'objet Shell
Err.Clear
On Error Resume Next
Set ObjShell = WScript.CreateObject("WScript.Shell")
NumeroErreur = Err.number
On Error Goto 0
If NumeroErreur = 0 Then

	'object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
	'1 pour activer la fenêtre et l'afficher normalement
	'Commande = "%windir%\notepad.exe" 'Préparation de la ligne de commande a éxecuter
	Err.Clear
	On Error Resume Next
	ObjShell.Run Commande, ModeExecution, AttendreExecutable
	NumeroErreur = Err.number
	On Error Goto 0
	If NumeroErreur = 0 Then
		LancerExecutableWScriptShellRun = ""
	End If

	'Destruction de l'objet Shell
	Set ObjShell = Nothing
Else
	LancerExecutableWScriptShellRun = "Impossible de lancer la commande """ & Commande & """ car l appel de la fonction WScript.Shell ne fonctionne pas"
End If 'If NumeroErreur = 0 Then

End Function
Lien vers le fichier : cliquez ici Copier le code

Article(s) en relation(s)

2