繁体   English   中英

从当前文件夹运行批处理文件

[英]Batch file runfrom current folder

如果我想运行此脚本

@echo off
setlocal enabledelayedexpansion

set OUTPUT_FILE=results.txt
>nul copy nul %OUTPUT_FILE%
for /f %%i in (servers.txt) do (
    set SERVER_ADDRESS=ADDRESS N/A
    for /f "tokens=1,2,3" %%x in ('ping -n 1 %%i ^&^& echo SERVER_IS_UP') do (
        if %%x==Pinging set SERVER_ADDRESS=%%y
        if %%x==Reply set SERVER_ADDRESS=%%z
        if %%x==SERVER_IS_UP (set SERVER_STATE=UP) else (set SERVER_STATE=DOWN)
    )
    echo %%i [!SERVER_ADDRESS::=!] is !SERVER_STATE!
    echo %%i [!SERVER_ADDRESS::=!] is !SERVER_STATE! >>%OUTPUT_FILE%
)

从资料夹

C:\\ Documents and Settings \\ Admin \\Рабочийстол\\

然后打开cmd.exe,在里面,我看到每行代码都向cmd.exe和bat投递。 或cmd.exe运行并变黑,并且脚本关闭cmd.exe时循环无限时间。

如果我将此脚本放到c:\\并运行它,它将作为重新查询工作。

如何从桌面正常运行bat文件?

请参阅此代码段,以分析ping.exe输出 (保存并在下面作为42046325_30852528.bat运行)。 运行它表明原始脚本(保存并在下面以42046325old.bat运行)可能返回完全错误的结果,例如192.168.1.12 IPv4地址Destination host unreachable

不管是否运行,两个脚本给出的结果相同

  • 通过双击文件浏览器,或
  • 通过从打开的cmd窗口中键入它们的路径。

注意cmd chcp命令 :我需要将活动控制台代码页更改1251 (俄语)65001 (UTF-8),因为我的默认系统区域设置是1250

输出

d:\bat> chcp 1251
Active code page: 1251

d:\bat> "D:\bat\SO\Рабочий стол\42046325_30852528.bat" b
       hostname OP IPv4_address    explanation
       -------- -- ------------    -----------
        foo.bar ## foo.bar         Ping request could not find host
     google.com == 216.58.201.110  Reply from 216.58.201.110: bytes=32 time=9ms TTL=55
  www.seznam.cz == 77.75.79.53     Reply from 77.75.79.53: bytes=32 time=9ms TTL=247
    192.168.1.1 == 192.168.1.1     Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
   192.168.1.12 ?= 192.168.1.12    Reply from 192.168.1.100: Destination host unreachable.
        bmw.com =? 160.46.244.131  Pinging bmw.com [160.46.244.131]: Request timed out.
 origin.bmw.com =? 160.46.244.131  Pinging origin.bmw.com [160.46.244.131]: Request timed out.
Press any key to continue . . .

d:\bat> "D:\bat\SO\Рабочий стол\42046325old.bat"
foo.bar [ADDRESS N/A] is DOWN
google.com [216.58.201.110] is UP
77.75.79.53 [77.75.79.53] is UP
192.168.1.1 [192.168.1.1] is UP
192.168.1.12 [192.168.1.100] is UP
bmw.com [bmw.com] is DOWN
160.46.244.131 [160.46.244.131] is DOWN
Press any key to continue . . .

d:\bat>

顺便说一句,分析Internet协议版本6(IPv6)的 ping.exe输出将是完全不同的任务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM