如何通过批处理文件执行cmd命令?


89

我想编写一个批处理文件,它将以给定的顺序执行以下操作:

  1. 打开cmd
  2. 运行cmd命令 cd c:\Program files\IIS Express
  3. 运行cmd命令 iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
  4. 使用URL = 打开Internet Explorer 8http://localhost:8088/default.aspx

注意:执行命令后,不应关闭cmd窗口。

我尝试启动cmd.exe / k“ cd \和cd ProgramFiles \ IIS Express”,但它不能解决我的目的。


6
您面临的问题是什么?
argentum47

Answers:


106

因此,制作一个实际的批处理文件:打开记事本,键入要运行的命令,然后另存为.bat文件。然后双击.bat文件以运行它。

首先尝试这样的事情:

c:\
cd c:\Program files\IIS Express
start iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
start http://localhost:8088/default.aspx
pause

1
谢谢@Blorgbeard。它正在工作,除了第四行。它没有打开给定的URL。
帕特尔

浏览器是否完全打开?
Blorgbeard将于

哦,我想我知道发生了什么-查看我的编辑,我iisexpress在行之前添加了“开始” 。
Blorgbeard将于

@Blorgbeard,我正在尝试使用您的方法,"C:\Program Files\MongoDB\Server\3.3\bin\mongod.exe" --install --dbpath=C:\data\db --logpath=C:\data\log\log.txt --auth --service但它不起作用。当我执行此行时,CMD一切正常。在这两种情况下,我都以admin执行。请告诉我,我做错了什么?
MikeB。16年

4
@MikeB。start将第一个带引号的参数作为窗口标题。尝试start "" "C:\Program Files\MongoDB\Server\3.3\bin\mongod.exe" --install --dbpath=C:\data\db --logpath=C:\data\log\log.txt --auth --service
斯蒂芬

24

我认为正确的语法是:

cmd /k "cd c:\<folder name>"

4
非常好的选项'/ k'。这样,即使在按下CTRL + C cmd之后也不会退出。非常感谢:-)
Pushpendra

16

这解决了Blorgbeard答案的一些问题(但未经测试):

@echo off
cd /d "c:\Program files\IIS Express"
start "" iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
timeout 10
start http://localhost:8088/default.aspx
pause

8

cmd / c“命令”语法效果很好。另外,如果要在路径中包含一个包含空格的可执行文件,则需要两组引号。

cmd /c ""path to executable""

如果您的可执行文件需要在路径中包含空格的另一组文件输入

cmd /c ""path to executable" -f "path to file"" 

6
@echo off
title Command Executer
color 1b

echo Command Executer by: YourNameHere
echo #################################
: execute
echo Please Type A Command Here:
set /p cmd=Command:
%cmd%
goto execute

3
“如何通过批处理文件执行cmd命令?” 嘿,技术上正确。
Vivek Chavda '16

2
从技术上讲是正确的..是的...但是如果您在学校计算机上并且命令提示符已禁用,但批处理文件也未禁用时,正是您所需要的。
RetroCraft

我一直在寻找,所以很高兴您发布了此内容,即使它不是OP想要的:)
dandeto

1

cmd / k cd c:\是正确的答案


cmd / k“ cd <需要执行cmd的路径(例如c:\ users \ desktop \ myFolder)>&<您的命令(例如
pm2

0
start cmd /k "your cmd command1"
start cmd /k "your cmd command2"

当我在一个批处理文件中使用这些命令时,它可以在Windows server2012中工作。


-7

我知道DOS和cmd提示符不喜欢文件夹名称中的空格。您的代码以

cd c:\ Program Files \ IIS Express

并且它试图转到c:\ Program而不是C:\“ Program Files”

更改文件夹名称和* .exe名称。希望这可以帮助


更改文件夹名称?你一定在开玩笑。
Werner Henze

1
更正所有使用带有空格的参数的命令- 除外 cd。这是我知道的唯一一条命令,它实际上接受带空格且不带引号的参数。
斯蒂芬,

当您更改“程序文件”时。我同意沃纳。这是发生的情况:对文件位置进行硬编码的应用程序不再起作用,某些系统功能可能不起作用,系统崩溃了
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.