Une petite fonction crée pour mes besoins.
Comme la fonction Fileinstall() ne permet pas l'utilisation de
'wildcards' ni de variable pour la source, j'ai crée ce script
qui fonctionne comme suit.
_fileinstall($source,$destination,$flag)
Par défaut, donc si vous utilisez la fonction sans paramètres _fileinstall()
$source sera égal au dossier install se trouvant dans le répertoire de votre script.
$destination sera égal au dossier temp automatiquement crée dans le répertoire de votre script. $flag sera égal à 0 par défaut.
Symboles
* Peut être utilisé si vous souhaitez que $source ou $destination soit le dossier ou réside votre script.
# Si vous utilisé le symbole dièse, cela vous permettra d'entrer un chemin complet
Le résultat de cette fonction sera dans votre presse-papier un fileinstall classique
pour chaque fichiers se trouvant dans le dossier défini par $source vers le dossier
défini par $destination. Le résultat se trouvera dans votre presse-papier.
N.B. : Votre script, si tôt la fonction _fileinstall() exécutée, se fermera automatiquement.
Il est donc impératif de retirer la fonction _fileinstall() une fois exécutée afin que votre
script puisse fonctionner normalement.
... N'hésitez pas à poser des questions, j'ai conscience que mon explication
manque possiblement de détails.
► Afficher le texte
Code : Tout sélectionner
#include<file.au3>
Func _fileinstall($source = "", $destination = "", $flag = 0)
Opt("WinTitleMatchMode",2)
$output = ""
; Source
Select
Case $source = ""
$source = @ScriptDir & "\install\"
Case $source = "*"
$source = @ScriptDir & "\"
Case StringLeft($source, 1) = "#"
$source = StringTrimLeft($source, 1)
If StringRight($source, 1) <> "\" Then
$source = $source & "\"
EndIf
Case Else
$source = @ScriptDir & "\" & $source & "\"
EndSelect
; Destination
Select
Case $destination = ""
$destination = @ScriptDir & "\temp\"
$destination_output = '@scriptdir & "\temp\'
Case $destination = "*"
$destination = @ScriptDir & "\"
$destination_output = '@ScriptDir & "\'
$output = "*"
Case StringLeft($destination, 1) = "#"
$destination = StringTrimLeft($destination, 1)
$destination_output = '"' & $destination
If StringRight($destination, 1) <> "\" Then
$destination = $destination & "\"
$destination_output = $destination_output & "\"
EndIf
Case Else
$destination_output = '@ScriptDir & "\' & $destination & '\'
$destination = @ScriptDir & $destination & "\"
EndSelect
; Création de 1 FileInstall() pour chacun des fichiers à installer
$files = _FileListToArray($source, "*", 1)
If @error Then
MsgBox(0, "_FileInstall() : erreur", "Aucun Fichier à installer trouvé dans le répertoire :" & @CRLF & $source)
Exit
EndIf
If Not FileExists($destination) Then
$dir = DirCreate($destination)
If $dir = 0 Then
MsgBox(0, "_FileInstall() : erreur", "Impossible de créer le dossier de destination")
Exit
EndIf
EndIf
If $output = "*" Then
$output = ""
Else
$output = 'If Not FileExists(' & $destination_output & '") Then' & @CRLF & ' DirCreate(' & $destination_output & '")' & @CRLF & 'EndIf' & @CRLF & @CRLF
EndIf
For $i = 1 To $files[0]
$output = $output & 'FileInstall("' & $source & $files[$i] & '",' & $destination_output & $files[$i] & '",' & $flag & ')' & @CRLF
Next
$clip = ClipGet()
If Not WinActive("SciTE") Then
WinActivate("SciTE")
WinWaitActive("SciTE")
EndIf
Send("^f")
WinWaitActive("Find")
ClipPut('_FileInstall(')
Send('^v')
Send("{enter}")
WinWaitActive("SciTE")
Send("+{end}")
ClipPut($output)
Send("^v")
ClipPut($clip)
Exit
EndFunc ;==>_fileinstall