• [^] # Re: cygwin

    Posté par . En réponse au message lancer un fichier .sh depuis un fichier .bat. Évalué à 1.

    Je ne connais pas trop DOS, mais si déjà tu utilises un script de type unix, utilises des commandes unix (xcopy c'est un commande DOS).
    D'après les tests que j'ai fait, cygwin fourni la commande Unix "date", mais DOS en a aussi une avec une syntaxe différente. Donc pour lancer ton script, créé une icône du shell cygwin sur le bureau (chez moi le raccourci pointe vers C:\cygwin\cygwin.bat) et lance le shell cygwin (une fenêtre texte s'ouvrira avec bash comme shell). De là tu pourras lancer ton script

    #!/bin/sh

    mkdir `date +%A_%e_%B_%Y`
    cp -R z:\test c:\cygwin\bin\`date +%A_%e_%B_%Y`

    Le script ci-dessus va copier (si le répertoire que tu as créé se trouve dans c:\cygwin\bin\) le répertoire test dans le répertoire créé. Le résultat sera : c:\cygwin\bin\`date +%A_%e_%B_%Y`\test (et tous les fichiers et répertoires dans test)

    Si tu veux copier le contenu de z\test dans c:\cygwin\bin\`date +%A_%e_%B_%Y` c'est le script suivant qu'il faut :

    #!/bin/sh

    cp -R z:\test c:\cygwin\bin\`date +%A_%e_%B_%Y`

    Ici le répertoire `date +%A_%e_%B_%Y` n'existe pas donc il sera créé et rempli avec le contenu de z:\test

    Nota : cp -R : copie du répertoire Récursivement (d'où le -R) donc avec tous les sous-répertoires et fichiers

    Fais un : "man cp" pour avoir une documentation sur les options possibles de cp (conservation des droits par exemple). Pour un backup tu peux utiliser cette commande à la place de celle indiquée dans le script : cp -a z:\test c:\cygwin\bin\`date +%A_%e_%B_%Y`

    Autre chose, quand on dit "ça ne marche pas" et que l'on veut de l'aide, il faut donner plus d'informations (message d'erreur, commande tapée ...)