【问题标题】:How do I execute cmd commands through a batch file?如何通过批处理文件执行 cmd 命令?
【发布时间】:2023-03-16 16:36:01
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您面临的问题是什么?

标签: batch-file cmd windows-scripting


【解决方案1】:

所以,创建一个实际的批处理文件:打开记事本,输入要运行的命令,然后保存为.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 中执行这一行时,一切正常。在这两种情况下,我都以管理员身份执行它。请告诉我,我做错了什么?
  • @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
【解决方案2】:

我认为正确的语法是:

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

【讨论】:

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

这修复了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

【讨论】:

    【解决方案4】:

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

    cmd /c ""path to executable""
    

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

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

    【讨论】:

      【解决方案5】:
      @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 想要的 :)
      【解决方案6】:

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

      【讨论】:

      • cmd /k " cd & "
      【解决方案7】:
      start cmd /k "your cmd command1"
      start cmd /k "your cmd command2"
      

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

      【讨论】:

        【解决方案8】:

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

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

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

        对我有用的是结合使用START 和CALL

        举个例子

        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"
        【解决方案9】:

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

        开头

        cd c:\程序文件\IIS Express

        它正在尝试转到 c:\Program 而不是 C:\"Program Files"

        更改文件夹名称和 *.exe 名称。希望这会有所帮助

        【讨论】:

        • 更改文件夹名称?你一定是在开玩笑。
        • 对使用带空格参数的任何命令更正 - except cd。这是我知道的唯一一个命令,它实际上接受带空格的参数 without 引号。
        • 当您更改“程序文件”时.... xD.我同意维尔纳的观点。以下是发生的情况:您对文件位置进行硬编码的应用不再工作,某些系统功能可能无法工作,您的系统出现故障
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-05
        • 1970-01-01
        • 2018-12-25
        • 2013-07-23
        • 2011-08-27
        相关资源
        最近更新 更多