【问题标题】:bat file to read one line at a time and execute a command and then move to next linebat 文件一次读取一行并执行命令,然后移动到下一行
【发布时间】:2012-06-04 20:01:39
【问题描述】:

我正在编写一个 bat 文件,我需要它一次从 txt 文件中读取一行并每次执行一个命令,然后移至下一行并再次执行相同的命令。所以基本上我会有一个包含 30 个 IP 地址的文本文件,然后我希望 bat 读取第一个,执行命令,将输出写入单独的 txt 文件,然后移动到第 2 行,执行命令然后将输出写入 txt 文件,然后是第 3 行,依此类推,有人可以帮我吗?我不介意您是否希望我使用 vbscript,但请解释清楚,因为我不太了解 vbscript :(

我很绝望,我正在将它与另一个工具集成以运行我正在做的审计,我需要帮助

【问题讨论】:

  • 使用 FOR /F 一次读取一行文件。从命令行键入 HELP FOR 以获取更多信息。使用标准重定向将输出写入文件command >file。如果您遇到问题,请查看您可以获取多远并发布带有更新问题的代码。请注意,在批处理文件中使用双百分比访问 FOR 变量,如 %%A

标签: file loops vbscript batch-file


【解决方案1】:

你不需要 vbscript 来完成这样一个简单的任务,如果 ip.txt 是包含你的 ip 地址的文件,那么你的 .bat 或 .cmd 文件中

echo off
::to write the result to separate files
for /f %%a in (ip.txt) do ping -n 1 %%a>%%a.txt

::to write the result to one file
for /f %%a in (ip.txt) do ping -n 1 %%a>>output.txt

如果您在控制台中给出命令,请将 %% 替换为 %

【讨论】:

  • 鉴于您的代码是一个批处理文件,顶部带有 echo off,您可能应该在代码中使用 %%a 并相应地更改底部的注释 :)
【解决方案2】:

下面是一个使用FOR 在密钥文件上尝试slmgr /ipk 的示例:

@echo off
echo Proccessing keys...
echo ============================================================================
for /f %%a in (%1) do slmgr /ipk %%a
echo ============================================================================
echo Done proccessing keys.
pause

如果您需要一次尝试很多键,可以使用它。

【讨论】:

    猜你喜欢
    • 2019-05-27
    • 2021-08-20
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 2016-04-10
    • 2015-12-23
    • 2021-07-11
    • 2010-09-09
    相关资源
    最近更新 更多