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 :

La commande cd devient folle


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 102
    Par défaut La commande cd devient folle
    Salut, pourriez-vous m'aider sur ce bout de code (c'est un batch de test, ne vous étonnez pas s'il est bordélique) :

    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
    @echo off
    set workpath=%~dp0
    echo. >"%workpath%\test.txt"
    
    ::set racc=H:\[SYSTEM TOOLS]
    ::_includes\shortcut\Shortcut.exe /f:"%racc%\Raccourcis\Gestion\Mira.exe.lnk" /a:q
    
    :3_Work
    for /f "tokens=* delims=" %%r in ('dir /b /s "H:\[SYSTEM TOOLS]\Raccourcis\"') do (
    echo %%r>"%workpath%\file.txt"
    call :3_Get
    )
    
    pause
    
    :3_Get
    cd D:\Outils
    echo %cd%
    goto :eof
    for /f "tokens=* delims=" %%f in (file.txt) do (
    	find ".lnk" file.txt>nul
    	if errorlevel=1 goto :eof
    	if errorlevel=0 echo %%f >>"%workpath%\test.txt"
    )
    
    
    goto :eof
    
    for /f "skip=2 tokens=2 delims==" %%t in ('_includes\shortcut\Shortcut.exe /f:"%~dpnx1" /a:q') do (
    	set target %%t
    	echo %target%
    	goto :eof
    )
    la commande cd est complètement à la ramasse, elle me renvoit sans cesse la valeur "C:\Documents and Settings\***\Bureau"

    lol!

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Normal : la commande cd ne change PAS l'unité de disque courante, mais le chemin courant de l'unité de disque spécifiée (ou celle en cours sans unité de disque spécifiée).

    Bref, tu dois mettre ceci :Ou mieux, utiliser pushd / popd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    pushd D:\Outils
     .....
    
    popd
    La commande pushd change inconditionnellement le chemin courant par celui spécifié (unité de disque incluse), et popd restaure le chemin qui était en vigueur avant l'appel de pushd (unité de disque incluse).
    Les appels peuvent s'imbriquer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    REM On est dans "C:\".
    pushd D:\
    REM On est dans D:\
    pushd "C:\Program Files"
    REM C:\Program Files est le chemin courant.
    ....
    popd
    REM On revient à D:\
    popd
    REM On revient à C:\
    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
    Novembre 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 102
    Par défaut
    ooooookkkkkk

    J'avais zappé que le batch en question était sur le bureau -_-

    Il me fallait donc remonter à la racine du lecteur voulu, avant de l'explorer :




    edit : j'avais pas vu ta réponse merci

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 102
    Par défaut
    Par contre c'est folklo, parce que si on place ça en début de batch, juste après @echo off, ça renvoie toujours "C:\Document and..."


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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Oui, c'est "d:" qu'il faut mettre (sans l'anti-slash) et non pas "cd d:\" (qui ne changera pas l'unité de disque !). Une fois l'unité de disque changée, tu peux faire un cd "normal" et retrouver tes petits.

    Mais franchement, je te conseille vivement de passer à pushd / popd pour tes changements de répertoire : cela évite le cas du batch "qui marche bien" sur la même partition, et qui se met à flamber dès que tu passes sur deux partitions distinctes.
    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

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

Discussions similaires

  1. Liste déroulante qui devient folle
    Par jojo57 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 07/04/2008, 17h52
  2. Interception des commandes in et out
    Par KDD dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 18/12/2002, 16h55
  3. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  4. Réponses: 3
    Dernier message: 02/09/2002, 18h49
  5. Réponses: 2
    Dernier message: 11/08/2002, 21h27

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