【问题标题】:Windows Batch file "Can't find file" despite it being right thereWindows批处理文件“找不到文件”尽管它就在那里
【发布时间】:2014-10-15 18:11:07
【问题描述】:

我创建了一个 .bat 文件来简化 ngrok 的启动过程。

当我在以前的系统、不同的目录等上尝试过这个时,它运行良好。

现在我再次创建批处理文件来表示新目录,但它不起作用。

我需要启动的文件是 ngrok.exe,它位于C:\Users\Liam\Desktop\ngrok 的目录中,而 ngrok.exe 文件位于 \ngrok 文件夹中。

我需要它:

  1. 将目录从C:\Users\Liam 更改为C:\Users\Liam\Desktop\ngrok
  2. 打印并执行“ngrok -subdomain=udemy 80”
  3. 打开浏览器指向http://udemy.ngrok.com:80
  4. 暂停

这是我在批处理文件中写的:

echo
cd "C:\Users\Liam\Desktop\ngrok"

print "ngrok -subdomain=udemy 80"

timeout /t 10   
start http://udemy.ngrok.com:80

pause

当我双击执行 .bat 文件时,这就是 CMD 中显示的内容

C:\Users\Liam\Desktop\ngrok>echo ECHO 已开启。

C:\Users\Liam\Desktop\ngrok>cd "C:\Users\Liam\Desktop\ngrok"

C:\Users\Liam\Desktop\ngrok>print "ngrok -subdomain=udemy 80" 不能 查找文件 ngrok -subdomain=udemy 80

C:\Users\Liam\Desktop\ngrok>超时/t 10

等待7秒,按一个键继续...

在此之后,它没有找到该文件,但它仍然会更改目录。需要注意的是,如果我在 CMD 中手动输入这些命令,就可以完美运行。

【问题讨论】:

  • print 在 Windows 上尝试将给定文件发送到打印机,这意味着它正在寻找一个名为“ngrok ...”的文件。
  • 哦,有人告诉我print 打算在命令提示符中输入它。这在以前有效。我应该改用什么?

标签: windows batch-file cmd


【解决方案1】:

您无需将字符串打印到命令行即可执行。只需指定程序名称和参数即可。

我将 echo 更改为 @echo off 以防止每个命令在执行之前显示...我假设这就是您想要的。

@echo off
cd "C:\Users\Liam\Desktop\ngrok"

ngrok -subdomain=udemy 80

timeout /t 10   
start http://udemy.ngrok.com:80

pause

【讨论】:

  • 啊,非常感谢@aphoria 的解释。老实说,我实际上认为 echo 只是为了清理视口并保持打开状态让我看看出了什么问题。该命令运行良好。唯一的问题是它正常启动 ngrok(ngrok 有它自己的视图来接管 cmd)然后阻止浏览器打开 URL !Ngrok
  • 哦,我刚刚发现按下 Ctrl+C(关闭 ngrok),一旦我这样做了,下一个命令就会开始,然后它会打开 URL
猜你喜欢
  • 2012-06-02
  • 2014-04-09
  • 1970-01-01
  • 2019-08-01
  • 1970-01-01
  • 2012-04-28
  • 2020-08-21
  • 2021-01-20
  • 1970-01-01
相关资源
最近更新 更多