我需要将命令及其输出重定向到Windows CLI中的文本文件。例如,我使用nslookup
循环
FOR
命令
for /L %i IN (1,1,254) DO nslookup 192.168.1.%i >> nslookup.txt
但是,这只会重定向命令的输出。
有没有办法将命令和输出重定向到文本文件?请不要告诉我剪辑和选择所有/复制命令。
答案 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
这很有效。我仍然相信有更聪明的方法可以做到这一点。