.bat文件意外运行其他.bat文件

时间:2019-03-20 14:41:35

标签: windows batch-file command-line adb adb-shell

我创建了以下TcpConn.bat脚本,该脚本在adb外壳程序中运行,从Android设备获取间隔为两秒的打开tcp连接的信息。

:startTCP
adb shell cat /proc/net/tcp
timeout /t 2
goto startTCP

在我的/ dev / test /文件夹中对此进行测试时,脚本按预期运行,并为我提供了sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode的预期输出。

但是,当我将其移至/ dev / batchFiles /文件夹时,它开始在该文件夹(称为adb.bat)中运行其他.bat脚本的内容。内容

cd C:\Android\sdk\platform-tools
adb logcat -s Unity PackageManager dalvikvm DEBUG

现在,在我的TcpConn.bat脚本中,我执行“ adb shell ...”,该名称与没有扩展名的“ adb.bat”名称匹配,因此似乎对此进行了调用。

我的问题是,为什么会执行该脚本?我不希望它执行脚本,但是运行adb命令 我不是:

  • 提供完整的文件路径/文件名(将为c:/dev/batchFiles/adb.bat),我也不将其用作“ adb”之类的字符串
  • 我没有按照here的说明使用call
  • 不使用start

批处理脚本是否总是检查目录中与命令匹配的文件并运行该文件,即使该文件未附加扩展名也是如此?如果是这样,有没有办法禁用这种行为?


我知道我可以重命名“ adb.bat”文件并完成它。但是想知道为什么会运行。 我唯一与此相关的是“ How to run batch script without using *.bat extension

1 个答案:

答案 0 :(得分:0)

只要与您正在执行的目录在同一目录中有一个批处理文件,它就会执行该adb.bat文件,因为当您告诉Windows命令提示符时,它将首先在当前目录中查找可执行文件您的批处理文件来执行命令。

至于解决您的问题,我会说是否有可能,然后将adb.bat文件的名称更改为adbFile.bat之类的名称,这样您就不必在每次调用时都调用它您在该特定目录中的adb工具。