IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Question pour un Champion (fonction "spéciale" Windows > en batch : possible ? )


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 12
    Points
    12
    Par défaut Question pour un Champion (fonction "spéciale" Windows > en batch : possible ? )
    Bonjour

    Sous Windows, on a la possibilité de cliquer sur un fichier et de le glisser sur un l'icône d'un programme exe.
    Le programme s’exécute alors en tenant compte du fichier qui a été glissé sur lui.

    Ma question est donc :
    - est-ce qu'on peut réaliser cette opération Windows avec un Batch du genre :

    avec fichier.txt exécute schpountz.exe

    ????

    A+
    Roon'

  2. #2
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Salut,
    Je dirais que cela dépend du programme.
    Si il a été codé pour accepter les arguments alors c'est possible, sinon il faut simuler un drag&drop dans un autre langage de programmation.
    Si tu peux nous donner un cas (avec ressources) concret ça nous serait bien utile.
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    Bonjour

    et bien voilà un cas tout simple :
    - on clique sur un fichier image (.bmp, .jpg, .png,....)
    - on fait glisser ce fichier sur l'icône de raccourci (ou l'exe lui-même) de "paint" (windows)
    - Paint s'ouvre avec l'image que l'on a fait glisser dessus.

    Je suis d'accord avec toi. Il faut que le .exe soit lui-même programmé pour cette manip.
    J'ai donc pris "paint" pour comprendre le principe d'écriture du batch dans ce cas là, mais je l'adapterai pour mon fichier exe.

    A+
    Roon'

  4. #4
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Et bien dans ce cas c'est très simple:
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Windows\system32\mspaint.exe *Chemin complet vers ton image*\.png
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    BRAVO !!!!
    ça marche !!!!
    Piiiinaise! vous êtes trop forts sur ce Forum !

    J'en ai profité pour voir si on pouvait lancer un autre .bat à partir d'un .bat.
    ça aussi ça marche.
    par contre, si on veut faire "communiquer" ces 2 .bat indépendants, par une zone mémoire, par exemple
    (je ne dis pas une variable, puisque elles sont attachées au programme qui les crée, mais bien une "zone mémoire")
    Est-ce que c'est possible.
    (j'ai pas de projet dans ce sens, mais j'aimerai juste savoir si c'est possible - on ne sait jamais, ça peut m'aider un jour à construire un projet spécifique)

    A+
    R'

  6. #6
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Trouve une situation concrète et on verra ce qu'on peut faire.
    Mais on peut faire passer des arguments entre .bat.
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    Je te remercie Dev'
    Dans ce cas, si l'occasion de projet se présente, je reviendrai sur le Forum
    Encore merci pour ton aide

    a+
    R'
    .

  8. #8
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Juste, un petit exemple : How to open a file through cmd and display the selected in specific editor
    Code BAT : 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
    @ECHO OFF
    REM : To download Sublime Text 
    REM https://www.sublimetext.com/3
    Title Edit the selected file with Sublime Text 3
    :MenuLoop
    Cls & Color 0A
    SETLOCAL 
    SET "ROOT=%userprofile%\Desktop"
    SET "EXT=*.bat"
    SET "Count=0"
    SETLOCAL enabledelayedexpansion
    REM Iterates throw the files on this current folder.
    REM And Populate the array with existent files in folder
    FOR /f "delims=" %%f IN ('dir /b /s "%ROOT%\%EXT%"') DO (
        SET /a "Count+=1"
        set "list[!Count!]=%%~nf"
        set "listpath[!Count!]=%%~dpFf"
    )
     
    echo wscript.echo Len("%ROOT%"^) + 20 >"%tmp%\length.vbs"
    for /f %%a in ('Cscript /nologo "%tmp%\length.vbs"') do ( set "cols=%%a")
    If %cols% LSS 50 set /a cols=%cols% + 15
    set Files=%Count%
    set /a lines=%Count% + 10
    Mode con cols=%cols% lines=%lines%
    ECHO  *******************************************************
    ECHO   Folder : "%ROOT%"
    ECHO  *******************************************************
    rem Display array elements
    for /L %%i in (1,1,%Files%) do echo [%%i] : !list[%%i]!
     
    SET /a "COUNT_TOT=%Count%"
    ECHO.
    ECHO Total of [%EXT%] files(s) : %Count% file(s)
    echo(
    echo Type the number of what file did you want to edit ?
    set /p "Input="
    set "sublimeEXE=%programfiles%\Sublime Text 3\sublime_text.exe"
    For /L %%i in (1,1,%Count%) Do (
        If "%INPUT%" EQU "%%i" (
            Rem Testing if sublime_text.exe exist to open with it the text file
            If Exist "%sublimeEXE%" (
                Start "Sublime" "%sublimeEXE%" "!listpath[%%i]!"
                Rem Otherwise we open the text file with defalut application like notepad
                ) else (
                Start "" Notepad.exe "!listpath[%%i]!"
            )   
        )
    )   
    EndLocal
    Goto:MenuLoop
    Juste, une petite modification vite fait de ce code, pour ouvrir tous les fichiers de type *.jpg avec mspaint.exe
    Code BAT : 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
    @ECHO OFF
    Title Edit the selected file with mspaint.exe
    :MenuLoop
    Cls & Color 0A
    SETLOCAL 
    SET "ROOT=%userprofile%\Desktop"
    SET "EXT=*.jpg"
    SET "Count=0"
    SETLOCAL enabledelayedexpansion
    REM Iterates throw the files on this current folder.
    REM And Populate the array with existent files in folder
    FOR /f "delims=" %%f IN ('dir /b /s "%ROOT%\%EXT%"') DO (
        SET /a "Count+=1"
        set "list[!Count!]=%%~nf"
        set "listpath[!Count!]=%%~dpFf"
    )
     
    echo wscript.echo Len("%ROOT%"^) + 20 >"%tmp%\length.vbs"
    for /f %%a in ('Cscript /nologo "%tmp%\length.vbs"') do ( set "cols=%%a")
    If %cols% LSS 50 set /a cols=%cols% + 15
    set Files=%Count%
    set /a lines=%Count% + 10
    Mode con cols=%cols% lines=%lines%
    ECHO  *******************************************************
    ECHO   Folder : "%ROOT%"
    ECHO  *******************************************************
    rem Display array elements
    for /L %%i in (1,1,%Files%) do echo [%%i] : !list[%%i]!
     
    SET /a "COUNT_TOT=%Count%"
    ECHO.
    ECHO Total of [%EXT%] files(s) : %Count% file(s)
    echo(
    echo Type the number of what file did you want to edit ?
    set /p "Input="
    set "mspaintEXE=%Windir%\System32\mspaint.exe"
    For /L %%i in (1,1,%Count%) Do (
        If "%INPUT%" EQU "%%i" (
            Rem Testing if mspaint.exe exist to open with it the text file
            If Exist "%mspaintEXE%" (
                Start "mspaint" "%mspaintEXE%" "!listpath[%%i]!"
                Rem Otherwise we open the text file with defalut application like notepad
                ) else (
                Start "" Notepad.exe "!listpath[%%i]!"
            )   
        )
    )   
    EndLocal
    Goto:MenuLoop

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Emission TV] Question pour un champion
    Par Le Pharaon dans le forum La taverne du Club : Humour et divers
    Réponses: 33
    Dernier message: 19/02/2007, 12h31
  2. Question pour un champion des div
    Par Zan dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 28/12/2006, 22h06
  3. [D2005] question pour un champion!
    Par melles dans le forum Delphi .NET
    Réponses: 22
    Dernier message: 21/09/2006, 19h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo