[Ex] Quelques applications

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
ThomasM
Niveau 1
Niveau 1
Messages : 9
Enregistré le : mar. 15 nov. 2011 21:54
Status : Hors ligne

[Ex] Quelques applications

#1

Message par ThomasM »

Bonjour à tous et à toutes.

Voici quelques applications sans prétention que j'ai créées, qui, à défaut d'avoir une implémentation éblouissante (ou des noms très inspirés d'ailleurs), m'ont bien servi jusqu'ici. Donc, si ça peut être utile à quelqu'un, et bah ... autant que ça le soit :D

I Cmd_Copier_Coller

À quelques reprises, je me suis retrouvé à vouloir copier du texte dans l'invite de commande. Sauf que çà marche pas. Le résultat : une application au nom très profond (cmd_copier_coller) :

Code : Tout sélectionner

;Si une fenetre de commande n'est pas deja ouverte, on en ouvre une : 
If Not (WinActivate("C:\Windows\system32\cmd.exe", "")) Then
Run("cmd.exe")
WinWaitActive ( "C:\Windows\system32\cmd.exe" )
Endif

;On demande a l'utilisateur le texte a ajouter au moyen d'une boite de dialogue 
;dans laquelle on peut utiliser le coller : 
$commande = InputBox ( "commande a executer ?", "string" , "commande a executer") 
ControlSend("C:\Windows\system32\cmd.exe", "" , "", $commande) 
 
II Trier_Texte_Ligne_Par_Ligne

Même si je trouve ça très amusant de trier alphabétiquement les listes que j'ai sur des fichiers textes, surtout quand ils font 1000+ lignes, des fois, ça aide de pouvoir faire ça automatiquement :

Code : Tout sélectionner

#include <File.au3>
#include <Array.au3>

;On stock chaque ligne du fichier texte passé en argument dans une case du tableau $line
Local $line
_FileReadToArray($CmdLine[1], $line)

$n = $line[0]; ($line[0] designe le nombre d'autre elements du tableau $line, soit le nombre de lignes du fichier texte.)

;On tri le tableau $line avec un algorithme de tri courant (celui du tri par insertion) 
;legerement modifie pour que les lignes vides se retrouvent a la fin:

For $i = 2 To $n ;Pour chaque ligne allant de la seconde a la derniere, on la place au milieu des lignes d'avant, 
;qui sont elles triees :
    For $j = $i To 2 Step -1
        
        If StringLen($line[$j-1]) = 0 Then 
            $stock = $line[$j-1]
            $line[$j-1] = $line[$j]
            $line[$j] = $stock
            
        Else
            If StringLen ($line[$j]) = 0 Then 
    
            Else
                If $line[$j-1] > $line[$j]  Then
                    $stock = $line[$j-1]
                    $line[$j-1] = $line[$j] 
                    $line[$j] = $stock
                EndIf
            EndIf
        EndIf       
    Next
    
Next

; On ecrit le tableau dans le fichier passe en argument, en ecrasant le contenu precedant : 
$file = FileOpen($CmdLine[1],2)
For $c = 1 To $n
    FileWrite($file, $line[$c] & @CRLF)
Next    
FileClose($file)
 
III Eclater

Parfois il arrive qu'un dossier devienne inutile. Dans ce cas, on coupe son contenu, on le colle dans le répertoire parent, et on supprime le dossier alors vide. Et ça prend du temps. Comme c'est un truc qui m'arrive souvent, j'ai créé une petite application pour ça :

Code : Tout sélectionner

Script Function: Move all files/Folders from inside a given Folder to the parent Folder.
Requirements : RecFileListToArray.au3 
Syntax: _Eclater($SourcePath, $overwrite)
Parameters : $SourcePath - path of the folder to be explode.  Can not end in \ .
$overwrite : 0 if you don't want to overwrite files in the parent directory. 1 Otherwise. 

#include<Array.au3>
#include<RecFileListToArray.au3>

Func _Eclater($SourcePath,$overwrite)

;On cree l'adresse de la destination(repertoire parent) :
$Array = StringSplit( $SourcePath, "\" )

$DestinationPath = ""
For $i = 1 To ($Array[0]-1) Step 1
    $DestinationPath = $DestinationPath & $Array[$i]
    $DestinationPath = $DestinationPath & "\"   
Next


;On cree un tableau avec tous les fichiers contenus dans le dossier source :
$SourcePath = $SourcePath & "\"
$Index = _RecFileListToArray ($SourcePath, "*", 1)

;On deplace ces fichiers/dossiers au niveau superieur : 
If $Index <> "" Then
    for $i = 1 To $Index[0]
    FileMove($SourcePath & $Index[$i],$DestinationPath & $Index[$i], $overwrite)
    Next
Endif


;Idem pour les dossiers : 
$Index = _RecFileListToArray ($SourcePath, "*", 2)

If $Index <> "" Then
    for $i = 1 To $Index[0]
    DirMove($SourcePath & $Index[$i],$DestinationPath & $Index[$i], $overwrite)
    Next
Endif

EndFunc
 

Voilà, c'est tout. Pour la petite histoire, j'ai aussi modifié un peu les menus contextuels sur mon ordi pour que ces applications soient accessibles directement avec le clic droit ;)

En espérant que ça servent à certains,
++
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: [Ex] Quelques applications

#2

Message par TT22 »

Salut, moi j'aime beaucoup le copier coller sous DOS. Mais tu devrais utiliser le contenu du presse papier plutôt qu'une InputBox :wink:
Cordialement,
TT22
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [Ex] Quelques applications

#3

Message par TommyDDR »

Invite de commande :

- Clic droit / sélectionné
- Clic gauche glissé pour selectionner le code
- Clic droit sur la sélection (elle se retrouve ensuite dans le presse papier)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
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: [Ex] Quelques applications

#4

Message par TT22 »

@TommyDDR : En fait, son script ne sert pas à copier mais à coller dans DOS :P
Cordialement,
TT22
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [Ex] Quelques applications

#5

Message par TommyDDR »

Clic droit coller ...
Coder c'est bien mais il y a les limites à la fainéantise ^^
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
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: [Ex] Quelques applications

#6

Message par TT22 »

Effectivement, dans ce cas la le script n'a plus trop d'utilité :wink:
Cordialement,
TT22
ThomasM
Niveau 1
Niveau 1
Messages : 9
Enregistré le : mar. 15 nov. 2011 21:54
Status : Hors ligne

Re: [Ex] Quelques applications

#7

Message par ThomasM »

Au temps pour moi, je savais pas ;)
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 867
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [Ex] Quelques applications

#8

Message par DimVar »

Ou encore, click droit sur la barre de menu cmd, Propriétés / Onglet Options / Cocher mode edition rapide.
Permet de coller avec click droit et le selectionner est toujours activé ;)

Cdlt.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
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: [Ex] Quelques applications

#9

Message par TT22 »

Ce qu'il faut, c'est faire un script qui colle lorsqu'on fait un Ctrl+V :wink:
Parceque ça, ça ne fonctionne pas dans DOS.
Cordialement,
TT22
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [Ex] Quelques applications

#10

Message par TommyDDR »

Dans ce cas, est ce que quelqu’un pourrait me faire un script qui me torche quand j'en ai fini avec les toilettes ?
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
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: [Ex] Quelques applications

#11

Message par TT22 »

Sinon, suffit d'utiliser PowerShell, un simple clique droit copie ce qui est dans le presse-papier :wink:
Cordialement,
TT22
Répondre