cmd.commutateur exe / k
j'essaie de passer à un répertoire en utilisant cmd puis d'exécuter un fichier batch
par exemple
cmd /k cd "C:myfolder"
startbatch.bat
j'ai aussi essayé (sans succès)
cmd cd /k cd "C:myfolder" | startbatch.bat
bien que la première ligne (cmd /k) semble fonctionner correctement, mais la seconde commande n'est jamais exécutée. J'utilise Vista comme OS
6 réponses
la syntaxe correcte est:
cmd /k "cd c:\myfolder & startbatch.bat"
ssg a déjà posté la bonne réponse. Je tiens seulement à ajouter le commutateur /d cd
commande (par exemple. cd /d drive:\directory
). Cela garantit que la commande fonctionne au cas où répertoire courant est sur un lecteur différent que le répertoire que vous voulez cd.
cmd cd /k "cd C:\myfolder; startbatch.bat"
ou, pourquoi ne pas vous lancer cmd /k c:\myfolder\startbatch.bat
, et ne cd c:\myfolder
dans le .le dossier bat?
Vous pouvez utiliser &
ou &&
comme séparateur de commandes dans Windows.
Exemple:
cmd cd /K "cd C:\myfolder && startbatch.bat"
je donne cette réponse parce que j'ai vu cette question dans un commentaire et je ne peux pas encore le commenter.
cmd /k "cd c:\myfolder & startbatch.bat"
fonctionne, et si vous avez des espaces:
cmd /k "cd "c:\myfolder" & startbatch.bat"
D'après ce que j'ai compris, la commande est passée au cmd comme "cd "c:\myfolder" & startbatch.bat"
, qui est ensuite décomposé en cd "c:\myfolder"
&
startbatch.bat
à quel point le reste " "
s'occupe du chemin comme chaîne.
vous pouvez aussi utiliser &&
,|
et ||
selon ce que vous voulez atteindre.
Je ne vois pas de réponse à cette question, donc si quelqu'un a besoin d'accéder à un répertoire qui a de l'espace dans son nom, vous pouvez ajouter des guillemets supplémentaires, par exemple
cmd.exe /K """C:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Auxiliary\Build\vcvars64.bat"" & powershell.exe"
à Partir de PowerShell vous avez besoin d'échapper les guillemets à l'aide de la backquote `
cmd.exe /K "`"C:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Auxiliary\Build\vcvars64.bat`" & powershell.exe"
remarquez les guillemets échappés
`"
à l'intérieur de la chaîne de chemin:
"`"C:\my path\`""
execute la commande appropriée dans cmd
, c'est à dire le chemin entouré de guillemets qui devrait fonctionner.
la commande d'exemple ci-dessus initialise L'invite de commande MSVC developer et retourne à PowerShell, héritant de l'environnement et donnant accès aux outils MSVC.