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 :

Copie de fichiers en DOS via script


Sujet :

Scripts/Batch

  1. #1
    Membre habitué Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Points : 176
    Points
    176
    Par défaut Copie de fichiers en DOS via script
    Bonjour,

    Je viens d'ecrire ce petit script en DOS, mais j'ai une erreur :
    "f était inattendu" sur la ligne du for

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    set dest = D:\TESTTRANSFERE
    pushd D:\TESTTRANSFERT\
    for %f in (*.*) do
    (
    echo %f%
    if not exist %dest%\%f%
    (
    copy %f% %dest%\%f%
    )
    )
    remove *.doc
    popd
    Pouvez-vous m'aider s'il vous plaît ?

  2. #2
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Essaye comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    set dest = D:\TESTTRANSFERE
    pushd D:\TESTTRANSFERT\
    for %%f in (*.*) do
    (
    echo %%f
    if not exist %dest%\%%f
    (
    copy %%f %dest%\%%f
    )
    )
    remove *.doc
    popd

  3. #3
    Membre habitué Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Points : 176
    Points
    176
    Par défaut
    Voici ce que cela me donne maintenant avec ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    D:\MonDossier>test_sauv.cmd
    
    D:\MonDossier>set dest = D:\TESTTRANSFERE
    
    D:\MonDossier>pushd D:\TESTTRANSFERT\
    La syntaxe de la commande est incorrecte.
    
    D:\TESTTRANSFERT>for %f in (*.*) do
    
    D:\TESTTRANSFERT>
    J'ai une erreur sur pushd ? ou ailleurs ?

  4. #4
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par crashyear Voir le message
    J'ai une erreur sur pushd ?
    La je ne peut pas t'aider je ne connait pas cette commande, qu'est elle sensé faire dans ton script ?


    Mais le copie de fichier c'est elle bien dérouler ?



    Tu devrai utlisé des guillemet aussi dans ton script au cas ou des nom de fichiers continnent des espaces:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    set dest = D:\TESTTRANSFERE
    pushd D:\TESTTRANSFERT\
    for %%f in (*.*) do
     ( 
       echo %%f
       if not exist "%dest%\%%f"
     (
       copy "%%f" "%dest%\%%f"
     ) )
    remove *.doc
    popd

    Edite -> Mais j'y pensse tu n'est pas obliger de faire une boucle for, tu peut faire un robocopie ?

  5. #5
    Membre habitué Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Points : 176
    Points
    176
    Par défaut
    Normalement aucun des fichiers de contiendra d'espace mais je vais mettre les guillemets au cas ou...

    Sinon, non le script de copie ne s'est pas executer, j'ai donc supprimé la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PUSHD D:\TESTTRANSFERT\
    mais ca ne marche toujours pas...

  6. #6
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Dit moi si ca marche la:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set dest = D:\TESTTRANSFERE
    for %%f in (*.*) do echo %%f& if not exist "%dest%\%%f" copy "%%f" "%dest%\%%f"
    
    remove *.doc

  7. #7
    Membre habitué Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Points : 176
    Points
    176
    Par défaut
    Ok là j'ai plus d'erreur
    sauf que ce n'est pas "remove" pour supprimer des fichiers... c'est Par contre, la copie ne se fait pas vers le bon repertoire, elle se fais à la racine de D:\ alors que je veux qu'elle se fasse dans D:\TESTTRANSFERE\

    J'ai l'impression qu'il ne prend pas ma variable "dest"

  8. #8
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Ah oui tu avait mis deux espaces en trop:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set dest=D:\TESTTRANSFERE
    for %%f in (*.*) do echo %%f& if not exist "%dest%\%%f" copy "%%f" "%dest%\%%f"
    del *.doc

  9. #9
    Membre habitué Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Points : 176
    Points
    176
    Par défaut
    Whaou merci fallait les voirs les espaces...
    Personnellement ils étaients ou car je les cherche toujours...

    Là ca fonctionne parfaitement, voici le script final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    pushd D:\TESTTRANSFERT
    set dest=D:\TESTTRANSFERE
    for %%f in (*.*) do if not exist "%dest%\%%f" copy "%%f" "%dest%\%%f"
    del *.doc
    popd
    Une dernière question si dans mon dossier d'origine je n'ai pas de fichier ".doc" est-ce que le script va bloquer ou il en a rien à faire ?

    Il va juste mettre "Impossible de trouver D:\TESTTRANSFERT\*.doc" ?

  10. #10
    Membre habitué Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Points : 176
    Points
    176
    Par défaut
    en fait pas la peine de repondre à ma dernière question, j'ai modifié mon code en rajoutant un "if exist *.doc" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    pushd D:\TESTTRANSFERT
    set dest=D:\TESTTRANSFERE
    for %%f in (*.*) do if not exist "%dest%\%%f" copy "%%f" "%dest%\%%f"
    if exist *.doc del *.doc
    popd
    Merci

  11. #11
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par crashyear Voir le message
    Whaou merci fallait les voirs les espaces...
    Personnellement ils étaients ou car je les cherche toujours...
    Il été la tes espacesn un avant et un aprés le =:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set dest = D:\TESTTRANSFERE

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

Discussions similaires

  1. script copie de fichier via Http
    Par msim29 dans le forum Windows
    Réponses: 1
    Dernier message: 30/06/2008, 10h09
  2. fonction copy fichier sous Dos et net use
    Par bml dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 06/09/2007, 10h36
  3. [Reseau]Copie de fichier via le réseau
    Par liichiii dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 16/08/2005, 10h19
  4. [C#] Copie de fichier via l'API
    Par slyv dans le forum Windows Forms
    Réponses: 5
    Dernier message: 20/12/2004, 22h39
  5. [C#] Copie de fichier via l'API
    Par slyv dans le forum Windows
    Réponses: 5
    Dernier message: 20/12/2004, 22h35

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