2010-12-15 82 views
0

J'ai un script de chauve-souris dans un dossier appelé scrappelant une autre commande par lots à partir de fichier batch arrêt de l'exécution

/scr/ 
    script.bat 
    test.txt 
    /folder/ 
     testinfolder.txt 

Quand je veux copier test.txt qui est dans le même dossier que le script, je utiliser% ~ dp0 comme ce

copy %~dp0test.txt test.txt 

si je veux copier testinfolder.txt qui ne sont pas dans le même dossier que le script en cours d'exécution, mais est un niveau plus profond dossier à l'intérieur. Comment puis-je copier ce fichier? J'ai essayé, mais ça n'a pas marché.

copy %~dp0/folder/testinfolder.txt testinfolder.txt 
+0

Vous devez utiliser '\' au lieu de '/'. La plupart de Windows traduira de façon transparente '/' pour vous, mais 'cmd' est une exception majeure avec des commandes intégrées - puisque'/'est utilisé pour les options de commande. – Joey

Répondre

2

Que diriez-vous

copy %~dp0folder\testinfolder.txt testinfolder.txt 
+0

Hmm! travaillé pour moi ... Pourrait-il (http://stackoverflow.com/questions/232651/why-the-system-cannot-find-the-batch-label-specified-is-thrown-even-if-label-ex) être le problème? Ou cela (http://stackoverflow.com/questions/1522129/windows-batch-file-the-system-cannot-find-the-batch-label-specified)? – Raghuram

+0

confirmez que '% ~ dp0' contient déjà une barre oblique inverse; @Raghuram: ne devrait-il pas être "% ~ dp0folder' /' testinfolder.txt "? –

+0

@barti_ddu:% ~ dp0 contient un \. Le séparateur de fichier est/dans Unix \ sous Windows/DOS – Raghuram