[..] Copie dossier ou se trouve le programme autoit

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
gege
Niveau 3
Niveau 3
Messages : 47
Enregistré le : ven. 11 nov. 2011 20:03
Status : Hors ligne

[..] Copie dossier ou se trouve le programme autoit

#1

Message par gege »

bonjour
après plusieurs recherches infructueuses sur la
Copie de dossiers et fichier où se trouve le programme autoit.
je voudrais copier le contenu de la clé USB où se trouve le programme
exemple : dossier de destination qui seraient des variables
(essayez de me donner une réponse concrète avec exemple car je suis très novice dans ce langage)

Code : Tout sélectionner

FileCopy("*.*",$Destination&"\Sauvegarde\ variables\ variables"&" "&@MON&"-"&@MDAY&"-"&@YEAR&" "&@HOUR&"h"&@MIN&"m"&@SEC&"s")
je remercie d'avance pour le temps consacré à ma réponse
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Copie dossier ou se trouve le programme autoit

#2

Message par TT22 »

Il faut utiliser #RequireAdmin en haut de ton script pour qu'il se lance en administrateur et qu'il ait la permission d'accéder au dossier Program Files.
Cordialement,
TT22
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Copie dossier ou se trouve le programme autoit

#3

Message par Tlem »

En ce basant sur ce que vous donnez, vous pouvez envisager ceci :

Code : Tout sélectionner

$variables = "xyz"
$Destination = @ScriptDir & "\Sauvegarde\" & $variables & "\" & $variables & " " & @MON & "-" & @MDAY & "-" & @YEAR & " " & @HOUR & "h" & @MIN & "m" & @SEC & "s"
FileCopy("*.*", $Destination)
Ceci dit, vous ne pourrez dans ce cas sauvegarder que les fichiers du répertoire mais pas les sous dossiers.
Si vous avez l'intention d'inclure des sous dossiers, il vous faudra passer pas la lecture de la structure des fichiers/dossiers dans un tableau, puis faire une copie par l'intermédiaire d'une boucle.
Comme ceci :

Code : Tout sélectionner

$variables = "xyz"
$Destination = @ScriptDir & "\Sauvegarde\" & $variables & "\" & $variables & "_" & @MON & "-" & @MDAY & "-" & @YEAR & "_" & @HOUR & "h" & @MIN & "m" & @SEC & "s"
$SearchDir = "C:\Temp"

$hsearch = FileFindFirstFile($SearchDir & "\*.*") ; On crée un handle de recherche.

While 1 ; Début de la boucle de recherche
    $search = FileFindNextFile($hsearch) ; Cherche l'élément suivant
    If @error Then ExitLoop ; Si il n'y à plus rien à chercher, on sort

    If @extended = 1 Then ; Si l'élément trouvé est un dossier
        DirCopy($SearchDir & "\" & $search, $Destination, 1) ; alors on utilise un DirCopy
    Else ; sinon
        FileCopy($SearchDir & "\" & $search, $Destination, 9) ; on utilise un FileCopy
    EndIf ; fin des tests
WEnd ; Fin de la boucle de recherche

FileClose($search) ; on ferme le handle de recherche
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Copie dossier ou se trouve le programme autoit

#4

Message par mikell »

Tlem a écrit :Ceci dit, vous ne pourrez dans ce cas sauvegarder que les fichiers du répertoire mais pas les sous dossiers.
Si vous avez l'intention d'inclure des sous dossiers, il vous faudra passer pas la lecture de la structure des fichiers/dossiers dans un tableau
Boss, cette fonction fait une copie intégrale avec les sous-dossiers

Code : Tout sélectionner

; si clé USB source = H:

$racine = @desktopdir  ; bureau
$variable1 = "dossier1"
$date = @MON & "-" & @MDAY & "-" & @YEAR & " " & @HOUR & "h" & @MIN & "m" & @SEC & "s"
$destination = $racine & "\" & $variable1 & "\" & $date

If NOT FileExists($destination) Then DirCreate($destination)
_FileCopy("H:\*",$destination)   
ShellExecute($destination)

Func _FileCopy($source, $dest)
    $winShell = ObjCreate("shell.application")
    $winShell.namespace($dest).CopyHere($source,256)  ; 256 = affiche la progressbar de windows
EndFunc
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Copie dossier ou se trouve le programme autoit

#5

Message par Tlem »

@mikell
DirCopy() fait sa aussi. :P

gege à dit :
Copie de dossiers et fichier où se trouve le programme autoit.
je voudrais copier le contenu de la clé USB où se trouve le programme
En ce qui me concerne, j'ai hésité à penser qu'il voulait tout simplement copier la totalité du contenu de la clé USB, car entre
Copie de dossiers et fichier où se trouve le programme autoit
et
Copie des dossiers et fichiers où se trouve le programme autoit
je fait une grande différence.
De plus, le masque proposé était *.* et non *, ce qui fait encore une autre différence. :wink:

Ceci dit ta solution est peut être la réponse attendue par gege !
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
gege
Niveau 3
Niveau 3
Messages : 47
Enregistré le : ven. 11 nov. 2011 20:03
Status : Hors ligne

Re: [..] Copie dossier ou se trouve le programme autoit

#6

Message par gege »

Bonjour,

Merci à tous ceux qui se sont penchés sur mon problème, résolut grâce à vous.
Formule ci-jointe
j'ai réussi à faire une guise avec 2 menus déroulants avec à l'intérieur des noms de classes et d'élèves pour créer une suite de dossiers
Serait il possible d'avoir un complément d'informations
Je souhaiterais que les classes + élèves soient dans une base de données style fichier *.txt,ou *.ini
Pour corser l'affaire, il faudrait que chaque classe corresponde à un groupe d'élèves
puis tant que l'on n'a pas sélectionné classe et élèves il soit impossible de valider les données
j'ai créé un bouton quitter que je n'arrive pas à faire fonctionner
merci encore d'avance

Code : Tout sélectionner

#include <GuiConstants.au3>
HotKeySet ( "{ESC}", "quit")
GuiCreate ( "", 500, 200, -1, -1)
$CLACE = GUICtrlCreateCombo("", 40, 24, 249, 25)
GuiCtrlSetData (-1, "Quel est  CLACE| 4A| 4B| 5A| 5B| 6A| 6B")
GUICtrlSetFont(-1, 15, 400, 2, "Arial")
$MOM = GuiCtrlCreateCombo ( "", 40, 80, 249, 20)
GuiCtrlSetData (-1, "NOM PRENOM|gerard|Bruno|Francoi|Philip")
GUICtrlSetFont(-1, 15, 400, 2, "Arial")
$Bouton = GuiCtrlCreateButton ("OK", 336, 24, 65, 41)
GUICtrlSetFont(-1, 11, 400, 0, "Arial")
$exititem = GUICtrlCreateButton("QUITTIER", 336, 120, 80, 41)
GUICtrlSetFont(-1, 11, 400, 0, "Arial")
GuiSetState()
$exititem = TrayCreateItem("Quitter")
$n = GuiCtrlRead ($CLACE, 1)
$n1 = GuiCtrlRead ($MOM, 1)
While 1
    $Msg = GUIGetMsg ()
    Switch $Msg
        Case $GUI_EVENT_CLOSE
            quit()

    Case $Bouton
    $n = GuiCtrlRead ($CLACE)
    $n1 = GuiCtrlRead ($MOM)
;------------------------------j'ai
    Local $monDossierFinal="C:\toto\"
    Local $input

    $monDossierFinal=$monDossierFinal&$n&"\"
    $monDossierFinal=$monDossierFinal&$n1&" "&@MON&"-"&@MDAY&"-"&@YEAR&" "&@HOUR&"h"&@MIN&"m"

msgbox(0,"", "CLACE = " & $n & @CRLF & "NOM-PRENOM = " & $n1)
MsgBox(0,"",$monDossierFinal&" "&@MON&"-"&@MDAY&"-"&@YEAR&" "&@HOUR&"h"&@MIN&"m")

DirCopy(@ScriptDir, "C:\Backups\LECTEURS-MP3\"&$n&"\"&$n1&""&" "&@MON&"-"&@MDAY&"-"&@YEAR&" "&@HOUR&"h"&@MIN&"m"&@SEC&"s");marche

EndSwitch
WEnd

Func quit()
    Exit 0
EndFunc
 
gege
Niveau 3
Niveau 3
Messages : 47
Enregistré le : ven. 11 nov. 2011 20:03
Status : Hors ligne

Re: [..] Copie dossier ou se trouve le programme autoit

#7

Message par gege »

rectificative

Code : Tout sélectionner

#include <GuiConstants.au3>
HotKeySet ( "{ESC}", "quit")
GuiCreate ( "", 500, 200, -1, -1)
$CLACE = GUICtrlCreateCombo("", 40, 24, 249, 25)
GuiCtrlSetData (-1, "Quel est  CLACE| 4A| 4B| 5A| 5B| 6A| 6B")
GUICtrlSetFont(-1, 15, 400, 2, "Arial")
$MOM = GuiCtrlCreateCombo ( "", 40, 80, 249, 20)
GuiCtrlSetData (-1, "NOM PRENOM|gerard|Bruno|Francoi|Philip")
GUICtrlSetFont(-1, 15, 400, 2, "Arial")
$Bouton = GuiCtrlCreateButton ("OK", 336, 24, 65, 41)
GUICtrlSetFont(-1, 11, 400, 0, "Arial")
$exititem = GUICtrlCreateButton("QUITTIER", 336, 120, 80, 41)
GUICtrlSetFont(-1, 11, 400, 0, "Arial")
GuiSetState()
$exititem = TrayCreateItem("Quitter")
$n = GuiCtrlRead ($CLACE, 1)
$n1 = GuiCtrlRead ($MOM, 1)
While 1
    $Msg = GUIGetMsg ()
    Switch $Msg
        Case $GUI_EVENT_CLOSE
            quit()
        Case $Bouton
            $n = GuiCtrlRead ($CLACE)
            $n1 = GuiCtrlRead ($MOM)
msgbox(0,"", "CLACE = " & $n & @CRLF & "NOM-PRENOM = " & $n1)

DirCopy(@ScriptDir, "C:\Backups\LECTEURS-MP3\"&$n&"\"&$n1&""&" "&@MON&"-"&@MDAY&"-"&@YEAR&" "&@HOUR&"h"&@MIN&"m"&@SEC&"s")

EndSwitch
WEnd

Func quit()
    Exit 0
EndFunc
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Copie dossier ou se trouve le programme autoit

#8

Message par mikell »

Tlem a écrit :Si vous avez l'intention d'inclure des sous dossiers, il vous faudra passer pas la lecture de la structure des fichiers/dossiers dans un tableau
Tlem a écrit :@mikell DirCopy() fait sa aussi.
Tsss ...
Le boss qui fait de la tétracapillotomie Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Copie dossier ou se trouve le programme autoit

#9

Message par Tlem »

Je ne vois pas en quoi je ferais de la langue de bois !!!
Je dit bien :
Tlem a écrit :Si vous avez l'intention d'inclure des sous dossiers
et non
Si vous avez l'intention d'inclure les sous dossiers
Il y à une nuance qui peut paraitre anodine de prime abord, mais qui à toute son importance dans un code informatique !
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre