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 :

Attribuer une variable à chaque ligne d'un fichier [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Points : 247
    Points
    247
    Par défaut Attribuer une variable à chaque ligne d'un fichier
    Bonjour

    Mes meilleurs voeux à tous et tous,

    ça fait un moment que je n'ai pas pratiqué vraiment le batch et il y a un truc qui m'échappe, je ne trouve pas quoi.

    Je voudrai attribuer une variable pour chaque élément trouvé dans mon fichier ini :

    Je pense que je n'utilise pas la bonne méthode.....

    Code : 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
    @echo off
    ::lire le fichier ini pour attribuer une variable à chaque ligne trouvé
    if exist moveconf.ini for /f "tokens=2 delims==" %%A in ('type moveconf.ini') do  SET DOSSCONF=%%A
    
    ::attribution de nouvelle variable
    set Word=%DOSSCONF%\Word
    set Excel=%DOSSCONF%\Excel
    set PowerPoint=%DOSSCONF%\Powerpoint
    set PDF=%DOSSCONF%\PDF
    set Archives=%DOSSCONF%\Mes Archives
    set vrprogrmes=%DOSSCONF%\Mes programmes
    set Musik=%DOSSCONF%\Ma musique
    set Videos=%DOSSCONF%\Mes Videos
    set Images=%DOSSCONF%\Mes Images
    set Internet=%DOSSCONF%\Internet¨
    
    ::vérification
    echo %Word%
    echo %Excel%
    pause
    fichier ini contient :
    Word=G:\Word
    Excel=G:\Excel
    PowerPoint=G:\Powerpoint
    PDF=G:\PDF
    Archives=G:\Mes Archives
    vrprogrmes=G:\Mes programmes
    Musik=G:\Ma musique
    Videos=G:\Mes Videos
    Images=G:\Mes Images
    Internet=G:\Internet
    Il me sort uniquement le résultat avec :
    G:\Internet\Word
    G:\Internet\Excel
    au lieu de :
    G:\Word
    G:\Excel
    Pourquoi ? quelqu'un peut il m'aider ?
    Merci d'avance

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Il y a beaucoup plus simple...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for /f "tokens=1,2 delims==" %%I in ('type moveconf.ini') do SET %%I=%%J
    
    ::vérification
    echo %Word%
    echo %Excel%
    Tu as déjà le "nom" de la variable dans le fichier .INI, donc pourquoi ne pas l'utiliser directement ?
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Points : 247
    Points
    247
    Par défaut
    Merci Mac Lak ça semble fonctionner si je clique sur le batch mais pas si je glisse un fichier sur le bat.

    Mes chemins de dossiers ne sont pas trouvés et la création de mes dossiers ne peuvent pas s'effectuer.


    le but est de glisser déposer un fichier ou x fichiers sur le fichier bat pour qu'il soit déplacer vers le chemin défini dans le fichier ini.

    Code : 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
    @echo off
    :: Line = Hauteur / Cols = Largeur
    ::color 0f & mode con LINES=30 COLS=88
    set nom=MoveFiles
    set ver=2.0
    title %nom%  v.%ver%  by Acris
    
    ::amelioration du projet movefiles : choisir les chemins des fichiers à glisser
    ::http://www.batchclipboard.info/?54-movefiles-v1-1b
    
    if exist "moveconf.ini" for /f "tokens=1,2 delims==" %%I in ('type moveconf.ini') do SET %%I=%%J
    
    :: ------------- Création des dossiers dans Mes Documents by Batch_Man
    if not exist "%Excel%" md "%Excel%"
    if not exist "%Word%" md "%Word%"
    if not exist "%PowerPoint%" md "%PowerPoint%"
    if not exist "%PDF%" md "%PDF%"
    if not exist "%Archives%" md  "%Archives%"
    if not exist "%vrprogrmes%" md "%vrprogrmes%"
    if not exist "%Musik%" md "%Musik%"
    if not exist "%Videos%" md "%Videos%"
    if not exist "%Images%" md "%Images%"
    if not exist "%Internet%" md "%Internet%"
    
    :encore
    if "%~pnx1"=="" goto FIN2
    
    ::mouvement pour les documents texte
    set WordEXE=.txt .doc
    
    for %%a in (%WordEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%Word%" 2>nul >nul
    
    SHIFT
    GOTO ENCORE
    
    :FIN2
    pause
    @exit
    Le fichier semble se déplacer toujours vers C:\Documents and Settings\Acris
    une idée ? une explication ???
    mon bat d'origine qui envoie vers Mes documents fonctionne mais pas si les chemins sont stockés dans un fichier

    Réponse : mettre %~dp0moveconf.ini

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Acris Voir le message
    Réponse : mettre %~dp0moveconf.ini
    C'est en effet la technique à utiliser.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Points : 247
    Points
    247
    Par défaut
    Merci,
    me reste à alléger un peu mon code

    MoveFiles v2

    Si vous avez des conseils ou astuces pour alleger mon code. conseillez moi.

    Si vous souhaitez diriger vos différents fichiers vers un autre disque ou partitions, créer sur le bureau avec votre fichier bat un fichier nommé moveconf.ini avec les chemins.

    Exemple : moveconf.ini

    Word=G:\Word
    Excel=G:\Excel
    PowerPoint=G:\Powerpoint
    PDF=G:\PDF
    Archives=G:\Mes Archives
    vrprogrmes=G:\Mes programmes
    Musik=G:\Ma musique
    Videos=G:\Mes Videos
    Images=G:\Mes Images
    Internet=G:\Internet

    Code : 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    @echo off
    :: Line = Hauteur / Cols = Largeur
    color 0f & mode con LINES=12 COLS=38
    set nom=MoveFiles
    set ver=2.0
    title %nom%  v.%ver%  by Acris
    
    
    
    set WordEXE=.txt .doc
    set ExcelEXE=.xla .xls .xlt .xltm. xltx .xlam .xlsb .xlsm .xlsx .prn .csv
    set PDFEXE=.pdf
    set ArchivesEXE=.zip .rar .7z .CAB .ARJ .LZH .TAR .GZ .BZ2 .ACE .UUE .JAR .Z .gz .tgz .000 .arc .cbr .ear .efw .lha .mpkg .sea .sfx .uha .yz .z01 .zix .zoo .zz
    set PPointEXE=.pps .ppt .pptx .pptm .pot .potx .potm .pps .ppsx .ppsm
    set programEXE=.exe .msi .com .bat .vbs .pif .scr .vb .ws
    set MusikEXE=.mp3 .ogg .wma .mid .wav .aif .aiff .aifc .cda .idf .m3u .voc .aac .au .cdr .m4a .mp1 .mp2
    set VideoEXE=.mpg .avi .wmv .asf .divx .mkv .mov .mp4 .divx .3gp .dpg .evo .fli .flc .flv .ivr .m2v .m4v .mod .movie .mpe .qt .rm .vob .vro .xvid .yuv
    set ImagesEXE=.bmp .jpg .jpeg .gif .png .psd .ico .svg .cgm .dib .swf .tif .wpg .xcf .xbm .dcm .pbm .pgm  .xpm .pnm .ppm
    set InternetEXE=.htm .html .css .php .asp .cgi .xml .php3 .url .asp .aspx .dhtml .js .jsp .mhtml .rss .xpi
    
    if exist "%~dp0moveconf.ini"  goto createfolder
    if not exist "%~dp0moveconf.ini" goto createdesktopfolder
    
    :createfolder
    for /f "tokens=1,2 delims==" %%I in ('type "%~dp0moveconf.ini"') do SET %%I=%%J
    )
    :: ------------- Création des dossiers dans Mes Documents by Batch_Man
    if not exist "%Excel%" md "%Excel%"
    if not exist "%Word%" md "%Word%"
    if not exist "%PowerPoint%" md "%PowerPoint%"
    if not exist "%PDF%" md "%PDF%"
    if not exist "%Archives%" md  "%Archives%"
    if not exist "%vrprogrmes%" md "%vrprogrmes%"
    if not exist "%Musik%" md "%Musik%"
    if not exist "%Videos%" md "%Videos%"
    if not exist "%Images%" md "%Images%"
    if not exist "%Internet%" md "%Internet%"
    
    goto move
    
    
    
    
    :createdesktopfolder
    FOR /F "TOKENS=2,*" %%I IN ('REG QUERY "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" ^| FIND /I "Personal"') DO SET DOSS=%%J
    
    set inWord=%DOSS%\Word
    set inExcel=%DOSS%\Excel
    set inPowerPoint=%DOSS%\Powerpoint
    set inPDF=%DOSS%\PDF
    set inArchives=%DOSS%\Mes Archives
    set invrprogrmes=%DOSS%\Mes programmes
    set inMusik=%DOSS%\Ma musique
    set inVideos=%DOSS%\Mes Videos
    set inImages=%DOSS%\Mes Images
    set inInternet=%DOSS%\Internet
    
    
    :: ------------- Création des dossiers dans mes_documents by Batch_Man
    if not exist "%inExcel%" md "%inExcel%"
    if not exist "%inWord%" md "%inWord%"
    if not exist "%inPowerPoint%" md "%inPowerPoint%"
    if not exist "%inPDF%" md "%inPDF%"
    if not exist "%inArchives%" md  "%inArchives%"
    if not exist "%invrprogrmes%" md "%vrprogrmes%"
    if not exist "%inMusik%" md "%inMusik%"
    if not exist "%inVideos%" md "%inVideos%"
    if not exist "%inImages%" md "%Images%"
    if not exist "%inInternet%" md "%Internet%"
    
    goto movedesktop
    
    
    :move
    if "%~pnx1"=="" goto FIN2
    
    ::mouvement pour les documents texte
    for %%a in (%WordEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%Word%" 2>nul >nul
    
    ::mouvement pour les feuilles de calculs
    for %%a in (%ExcelEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%Excel%" 2>nul >nul
    
    ::mouvement pour les powerpoints
    for %%a in (%PPointEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%PowerPoint%" 2>nul >nul
    
    ::mouvement pour les feuilles de pdf
    for %%a in (%PDFEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%PDF%" 2>nul >nul
    
    ::mouvement pour les archives
    for %%a in (%ArchivesEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%Archives%" 2>nul >nul
    
    ::mouvement pour les programmes
    for %%a in (%programEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%vrprogrmes%" 2>nul >nul
    
    ::mouvement pour la musique
    for %%a in (%MusikEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%Musik%" 2>nul >nul
    
    ::mouvement pour la video
    for %%a in (%VideoEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%Videos%" 2>nul >nul
    
    ::mouvement pour les images et graphismes
    for %%a in (%ImagesEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%Images%" 2>nul >nul
    
    ::mouvement des fichiers internet
    for %%a in (%InternetEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%Internet%" 2>nul >nul
    
    ::+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ::movement des dossiers à faire 
    ::variable pour compter
    IF NOT EXIST "%DOSS%\%~n1" (
         MOVE %1 "%DOSS%"
         GOTO FIN)
    
    FOR /F "TOKENS=*" %%A IN ('DIR /B "%DOSS%" ^| FIND "%~n1"') DO (
         SET /A COMPT+=1)
    
    REN "%~1" "%~n1_%COMPT%"
    MOVE "%~dpn1_%COMPT%" "%DOSS%"
    
    ::+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    SHIFT
    GOTO move
    
    
    
    :movedesktop
    if "%~pnx1"=="" goto FIN2
    
    ::mouvement pour les documents texte
    for %%a in (%WordEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%inWord%" 2>nul >nul
    
    
    ::mouvement pour les feuilles de calculs
    for %%a in (%ExcelEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%inExcel%"  2>nul >nul
    
    
    ::mouvement pour les powerpoints
    for %%a in (%PPointEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%inPowerPoint%"  2>nul >nul
    
    
    ::mouvement pour les feuilles de pdf
    for %%a in (%PDFEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%inPDF%" 2>nul >nul
    
    
    ::mouvement pour les archives
    for %%a in (%ArchivesEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%inArchives%" 2>nul >nul
    
    ::mouvement pour les programmes
    for %%a in (%programEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%invrprogrmes%" 2>nul >nul
    
    
    ::mouvement pour la musique
    for %%a in (%MusikEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%inMusik%" 2>nul >nul
    
    
    ::mouvement pour la video
    for %%a in (%VideoEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%inVideos%" 2>nul >nul
    
    
    ::mouvement pour les images et graphismes
    for %%a in (%ImagesEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%inImages%" 2>nul >nul
    
    
    ::mouvement des fichiers internet
    for %%a in (%InternetEXE%) do  if /i "%~x1"=="%%a" move "%~dpnx1" "%inInternet%" 2>nul >nul
    
    
    ::movement des dossiers
    ::variable pour compter
    IF NOT EXIST "%DOSS%\%~n1" (
         MOVE %1 "%DOSS%"
         GOTO FIN)
    
    FOR /F "TOKENS=*" %%A IN ('DIR /B "%DOSS%" ^| FIND "%~n1"') DO (
         SET /A COMPT+=1)
    
    REN "%~1" "%~n1_%COMPT%"
    MOVE "%~dpn1_%COMPT%" "%DOSS%"
    
    
    
    SHIFT
    GOTO movedesktop
    
    
    :FIN2
    @exit
    Auriez vous une astuce qui permet d'empecher la fenetre dos de s'ouvrir lorsqu'on glisse des fichiers ?
    Ja'i testé runhiddenconsole, cmdow rien n'y fait elle s'ouvre

  6. #6
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    Salut,

    pas bien tester !


    Code : 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
    @if %_%$==$ (
      echo set "_path=%~f1" >\~.bat
      set _=_&start "%~nx0" /min %Comspec% /c%0 call \~.bat
      set _=&goto:EOF
    )
    @echo off
    setlocal enabledelayedexpansion
    %*
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    set "txtfile=*.txt
    set "pdffile=*.pdf"
    set "webfile=*.htm *.css *.php *.asp *.cgi *.xml *.php3 *.js"
    set "imgfile=*.jpg *.bmp *.gif *.png *.ico *.svg *.tif"
    set "exefile=*.exe *.msi *.com *.bat *.vbs *.scr *.cmd *.pl *.cmd"
    set "myvideo=*.mpg *.avi *.wmv *.divx *.3gp *.flv" 
    set "archive=*.zip *.rar *.cab *.7z"
    set "myMusic=*.mp3 *.ogg *.wma *.mid *.wav *.aif"
    set "xlsfile=.xla .xls .xlt"
    set "pptfile=.pps .ppt .pptx .pptm .pot .potx .potm .pps"
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    pushd "%_path%"
    2>nul ^
    ( 
      for /f "Usebacktokens=1*delims==" %%( in ("%~dp0infile.txt") do (
          set %%(="%%)"
          set src=!src! "%%)"
       )
      md !src! 
      call :MoveFilesExt !src!
    )
    del \~.bat
    popd & endlocal & goto:EOF
    :MoveFilesExt
      for %%a in ( %txtfile% ) do move /y "%%a" %txt%
      for %%a in ( %webfile% ) do move /y "%%a" %Internet%
      for %%a in ( %imgfile% ) do move /y "%%a" %Images%
      for %%a in ( %exefile% ) do move /y "%%a" %executables%
      for %%a in ( %myvideo% ) do move /y "%%a" %videos%
      for %%a in ( %archive% ) do move /y "%%a" %Archives%
      for %%a in ( %pdffile% ) do move /y "%%a" %Pdf%
      for %%a in ( %myMusic% ) do move /y "%%a" %Musik%
      for %%a in ( %xlsfile% ) do move /y "%%a" %Excel%
      for %%a in ( %pptfile% ) do move /y "%%a" %PowerPoint%
    shift
    if not ["%~1"]==[""] goto:MoveFilesExt
    exit /b
    avec comme fichier d'entrée "infile.txt"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Word=d:\chemin\Word
    Excel=d:\chemin\Excel
    PowerPoint=d:\chemin\Powerpoint
    PDF=d:\chemin\PDF
    executables=D:\chemin\Mes programmes
    Archives=d:\chemin\Mes Archives
    Musik=d:\chemin\Ma musique
    Videos=d:\chemin\Mes Videos
    Images=d:\chemin\Mes Images
    Internet=d:\chemin\Internet
    txt=d:\chemin\TXT
    à toi de l'adapter à tes besoins

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Points : 247
    Points
    247
    Par défaut
    Merci I'm_HERE
    je vais regarder ton code mais il y a déjà beaucoup de chose que je ne comprends pas lol

    que fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @if %_%$==$ (
      echo set "_path=%~f1" >\~.bat
      set _=_&start "%~nx0" /min %Comspec% /c%0 call \~.bat
      set _=&goto:EOF
    )

    ensuite je crois quelques erreurs de frappes je vais regarder maintenant de plus pret car le transfert ne s'effectue pas (glisser deposer)

  8. #8
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    Citation Envoyé par Acris Voir le message

    que fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @if %_%$==$ (
      echo set "_path=%~f1" >\~.bat
      set _=_&start "%~nx0" /min %Comspec% /c%0 call \~.bat
      set _=&goto:EOF
    )
    va réduire la fenêtre dans la barre des tâches

    Citation Envoyé par Acris Voir le message
    ensuite je crois quelques erreurs de frappes je vais regarder maintenant de plus pret car le transfert ne s'effectue pas (glisser deposer)
    j'ai pas bien tester mais, avec mon XpSP2 ça semble fonctionner par glisser-déposer, en tout cas dans mon premier test, les fichiers étaient déplacer dans leurs répertoires respectives

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Points : 247
    Points
    247
    Par défaut
    Chez moi ça ne fonctionne pas xp pro sp2 aussi
    par contre ça fonctionne si je clique sur le bat

  10. #10
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    vérifie deux choses,

    les chemins de tes dossiers dans infile.txt
    les noms des variables dans le fichier source

    aussi essaye le code avec le fichier que je t'ai donné pour voir si le problème vient du script ou bien des chemins dans infile.txt

  11. #11
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Rajoutes ça en début de batch, après le @echo off et avant TOUTES les autres instructions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo %CD%
    echo %0
    echo %~dp0
    echo %1
    echo %~dp1
    pause
    Compare les valeurs affichées entre les deux modes d'utilisation, et montre-les ici.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  12. #12
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    salut Mac LAK,

    @Acris,
    je viens de re-tester par un glisser-déposer et ça a l'air de fonctionner, les dossiers sont crées et les fichiers du dossier source sont déplacer dans leurs chemins respectifs

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Points : 247
    Points
    247
    Par défaut
    J ai ajouté les informations de Mac Lak

    @echo off
    echo %CD%
    echo %0
    echo %~dp0
    echo %1
    echo %~dp1
    pause
    setlocal enabledelayedexpansion

    set "txtfile=*.txt


    J'ai utilisé ton fichier infile.txt et je dispose d'une partition D:\

    Les dossiers sont bien créés mais je n'ai pas de mouvement des fichiers

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "Usebacktokens=1*delims==" %%( in ("%~dp0infile.txt") do (
    ça ne serait pas usebackq tokens=1* delims==" ??

    Il me renvoie une erreur j ai mis un pause à la fin
    le nom du répertoire est incorrecte

  14. #14
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    C'est quoi ce "call" en guise de paramètre %1 ??
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Points : 247
    Points
    247
    Par défaut
    Il me renvoie une erreur j ai mis un pause à la fin

    le nom du répertoire est incorrecte
    I'm_HERE,

    Si j'ai bien compris tu as travaillé sur le dispaching de fichiers contenus dans un répertoire donné et non sur des fichiers donnés

    c'est donc là que vient mon incompréhension...
    Comme je demandais un aide pour alléger mon code j'eusse pensé à tord que tu avais repris le tout pour un code optimisé.


    Je faisais du glisser deposer avec des fichiers et non un dossier
    et dans mon code je deplace directement le dossier vers un lecteur.
    Mais c'est une fonction que je vais adapter dans le mien c'est intéressant

    Le glissement de dossiers sur le bat fonctionne il deplace bien les fichiers vers les dossiers de destinations

    En tout cas merci j'apprends encore des choses avec vous (je lis régulièrement vos réponses aux sujets )

  16. #16
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    Citation Envoyé par Acris Voir le message
    ça ne serait pas usebackq tokens=1* delims==" ??
    useback c'est la même chose chose que usebackq

  17. #17
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    C'est quoi ce "call" en guise de paramètre %1 ??
    c'est plus sécuriser d'opérer de cette manière que d'initialiser la variable , contenant le chemin du dossier source, directement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @if %_%$==$ (
      set _="%~f1"&start "%~nx0" /min %Comspec% /c%0 "%_%"
      set _=&goto:EOF
    )
    ou bien mettre le chemin du dossier comme paramètre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @if %_%$==$ (
      set _=_&start "%~nx0" /min %Comspec% /c%0 "%~f1"
      set _=&goto:EOF
    )

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/02/2012, 10h22
  2. [Batch] Créer et utiliser 2 variables pour chaque ligne d'un fichier
    Par Marc_L dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 02/12/2011, 00h22
  3. envoyer chaque ligne d'un fichier vers une liste de fichiers
    Par cobaltsixty dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 29/08/2011, 11h05
  4. Réponses: 13
    Dernier message: 20/11/2006, 17h46
  5. Réponses: 4
    Dernier message: 19/06/2004, 22h28

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