J'essaie de basculer vers un répertoire à l'aide de cmd, puis d'exécuter un fichier de commandes
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 deuxième commande n'est jamais exécutée. J'utilise Vista comme OS
La syntaxe correcte est:
cmd /k "cd c:\myfolder & startbatch.bat"
ssg a déjà publié la bonne réponse. Je voudrais seulement ajouter le commutateur/d à la commande cd
(par exemple. cd /d drive:\directory
). Cela garantit que la commande fonctionne dans le cas où le répertoire actuel se trouve sur un lecteur différent de celui dans lequel vous souhaitez enregistrer le CD.
cmd cd /k "cd C:\myfolder; startbatch.bat"
ou, pourquoi ne courez-vous pas cmd /k c:\myfolder\startbatch.bat
, et fait cd c:\myfolder
dans le fichier .bat?
Je ne vois pas de réponse à ce problème, 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 Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"" & powershell.exe"
Depuis PowerShell, vous devez échapper aux guillemets à l'aide de la citation inverse `
cmd.exe /K "`"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat`" & powershell.exe"
Remarquez les citations échappées
`"
à l'intérieur de la chaîne de chemin:
"`"C:\my path\`""
Cela exécutera la commande appropriée dans cmd
, c'est-à-dire le chemin entouré de guillemets qui devrait fonctionner.
L'exemple de commande ci-dessus initialisera l'invite de commande du développeur MSVC et reviendra à PowerShell, héritant de l'environnement et donnant accès aux outils MSVC.
Vous pouvez utiliser &
ou &&
comme séparateur de commandes dans Windows.
Exemple:
cmd cd /K "cd C:\myfolder && startbatch.bat"
Je donne ceci comme réponse parce que j'ai vu cette question dans un commentaire et je ne peux pas encore commenter.
cmd /k "cd c:\myfolder & startbatch.bat"
fonctionne, et si vous avez des espaces:
cmd /k "cd "c:\myfolder" & startbatch.bat"
Si je comprends bien, la commande est passée à cmd comme "cd "c:\myfolder" & startbatch.bat"
, qui est ensuite décomposé en cd "c:\myfolder"
&
startbatch.bat
à quel point les " "
prend en charge le chemin sous forme de chaîne.
Vous pouvez aussi utiliser &&
, |
et ||
selon ce que vous voulez réaliser.