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

.bat file runs other .bat file unexpectedly

我创建了以下 TcpConn.bat 脚本,它从 android 设备获取有关打开的 tcp 连接的信息,间隔为两秒,运行ning 在 adb shell.

: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 命令 我不是:

执行批处理脚本 始终 检查目录中是否有匹配命令部分的文件和 运行 该文件,即使它没有附加扩展名它?如果是这样,有没有办法禁用此行为?


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

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

至于你的问题的解决方案,我会说如果可能的话,将你的 adb.bat 文件的名称更改为其他名称,例如 adbFile.bat 这样你就不会调用它每次您需要从该特定目录调用 adb 工具时。