重定向命令以及在Windows CLI中输出到文本文件?

时间:2014-12-28 18:21:08

标签: windows command-line io-redirection

我需要将命令及其输出重定向到Windows CLI中的文本文件。例如,我使用nslookup循环

在子网上运行FOR命令
for /L %i IN (1,1,254) DO nslookup 192.168.1.%i >> nslookup.txt

但是,这只会重定向命令的输出。

有没有办法将命令和输出重定向到文本文件?请不要告诉我剪辑和选择所有/复制命令。

3 个答案:

答案 0 :(得分:1)

您可以使用“cmd / c”继续执行命令以启动新的命令提示符,并重定向命令提示符的输出:

cmd /c for /L %i IN (1,1,254) DO nslookup 192.168.1.%i > nslookup.txt

请注意,您只需要使用大于(>)的单个,因为cmd的输出将转到nslookup.txt。遗憾的是,这会错过错误输出,因此您没有看到每个失败地址的*** Request to UnKnown超时。

答案 1 :(得分:0)

你的FOR循环是正确的,听起来你已经得到了你想要的输出,所以你需要做的就是ECHO命令才能运行它:

for /L %i IN (1,1,254) DO ECHO nslookup 192.168.1.%i&nslookup 192.168.1.%i >> nslookup.txt

&将命令链接在一起,以便在ECHO之前运行nslookup

如果您想使用批处理文件,它会变得更加清晰:

@ECHO OFF
SETLOCAL EnableDelayedExpansion

SET Outfile=nslookup.txt

REM Log the date/time.
ECHO %DATE% - %TIME%>%Outfile%

FOR /L %%i IN (1,1,254) DO (
    SET Command=nslookup 192.168.1.%%i

    REM Print the command being run.
    ECHO !Command!>>%Outfile%

    REM Run the command.
    !Command!>>%Outfile%
)

ENDLOCAL

答案 2 :(得分:0)

for / L%i IN(1,1,254)DO(@echo nslookup 192.168.1。%i& nslookup 192.168.1。%i)>> nslookup.txt

这很有效。我仍然相信有更聪明的方法可以做到这一点。