batch-file - 有条件地对批处理文件执行命令

标签 batch-file cmd routes

我需要在 Windows 7 启动时执行两个命令(使用 .bat 文件):

route delete 0.0.0.0 192.168.5.201
route -p add 192.168.4.0 mask 255.255.0.0 192.168.5.201

如果系统上不存在第一个路由 - .bat 文件无法正确执行。第一个命令无限循环执行。 我如何检查该路由是否存在然后执行第一个命令?

附注或者也许还有另一种没有 .bat 文件的方法?

最佳答案

我无法在这里重现无限循环;对我来说,它只是因错误而退出。

但是您可以使用以下命令检查特定路线

route print 0.0.0.0 192.168.5.201

但是,仅此还不够,因为 route 的退出代码始终为 0。因此,您必须通过 findstr 进行管道传输:

route print 0.0.0.0 192.168.5.201 | findstr 192.168.5.201

之后您可以检查错误级别:

if not errorlevel 1 route delete 0.0.0.0 192.168.5.201

或链接命令:

route print 0.0.0.0 192.168.5.201 | findstr 192.168.5.201 && route delete 0.0.0.0 192.168.5.201

关于batch-file - 有条件地对批处理文件执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11780655/

相关文章:

batch-file - 使用带引号的参数调用批处理文件

windows - WinRS 可以访问 UNC 路径吗?

windows - 如何捕获批处理文件输出中的最后一个字符串以及如何继续或暂停

android - 如何在执行android仪器测试时在cmd控制台中打印日志

batch-file - %%~dpa 的含义?

ruby-on-rails - 用于创建方法 smart_listing 的 Rails 嵌套路由

batch-file - .bat 重命名文件名删除前 x 个字符和后 x 个字符

parsing - 使用 dos cmd 行解析简单的文本文件

ruby-on-rails-3 - HTTP GET 变成 POST 方法

routes - 为什么 OSPF LSA 序列号在 0x80000001 到 0x7FFFFFFF 范围内