ChatGPT解决这个技术问题 Extra ChatGPT

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

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

打开 cmd 运行 cmd 命令 cd c:\Program files\IIS Express 运行 cmd 命令 iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0 打开 Internet Explorer 8 URL= http://本地主机:8088/default.aspx

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

我尝试了 start cmd.exe /k "cd\ & cd ProgramFiles\IIS Express",但这并没有解决我的目的。

你面临的问题是什么?

B
Blorgbeard

因此,制作一个实际的批处理文件:打开记事本,输入您要运行的命令,然后保存为 .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

谢谢@Blorgbeard。除了第 4 行,它正在工作。它没有打开给定的网址。
浏览器是否完全打开?
哦,我想我知道发生了什么 - 查看我的编辑,我在 iisexpress 行之前添加了“开始”。
@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 中执行这一行时,一切正常。在这两种情况下,我都以管理员身份执行它。请告诉我,我做错了什么?
@迈克B。 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
a
argentum47

我认为正确的语法是:

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

非常好的选项'/k'。这种方式即使在按下 CTRL+C cmd 后也不会退出。非常感谢 :-)
C
Community

这解决了 Blorgbeard's answer 的一些问题(但未经测试):

@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

F
Feety

cmd /c "command" 语法效果很好。此外,如果要包含路径中包含空格的可执行文件,则需要两组引号。

cmd /c ""path to executable""

如果您的可执行文件需要在路径中有空格的文件输入,则为另一组

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

P
Peter O.
@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

“如何通过批处理文件执行 cmd 命令?”呵呵,技术上是正确的。
技术上正确..是的......但如果您在学校计算机上并且命令提示符被禁用但批处理文件不是,那么这正是您所需要的。
我一直在寻找这个,所以我很高兴你发布了这个,即使它不是 OP 想要的 :)
V
Victor Lee
start cmd /k "your cmd command1"
start cmd /k "your cmd command2"

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


f
frank

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


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

如果条件为真,我试图在启动时并行运行几个批处理文件。

为此,我制作了一个父批处理文件,它应该检查条件并在条件为真时调用其他子批处理文件。

我试图通过 START 实现它,但它给了我一个空的黑色命令提示符,在子批处理文件的目录中运行,而不是自己运行子批处理文件

对我有用的是结合使用 STARTCALL

举个例子

condition ...

start call "C:\Users\Amd\conn\wsl_setup - conn1.bat"

start call "C:\Users\Amd\conn\wsl_setup - conn2.bat"

start call "C:\Users\Amd\conn\wsl_setup - conn3.bat"

start 将第一个引用的参数作为窗口标题。只需给它一个虚拟标题(可能为空):`start "" "c:\....\....bat"
u
user7380371

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

cd c:\程序文件\IIS Express

它试图去 c:\Program 而不是 C:\"Program Files"

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


更改文件夹名称?你一定在开玩笑。
对于使用带空格的参数的任何命令 - except cd 是正确的。这是我知道的唯一一个命令,它实际上接受带有空格 without 引号的参数。
当您更改“程序文件”时.... xD。我同意维尔纳的观点。会发生以下情况:您对文件位置进行硬编码的应用程序不再工作,某些系统功能可能无法工作,您的系统出现故障