我想用我的dns历史记录生成一个txt文件。虽然批处理脚本在Windows8上执行得很好,但当我在Windows7上运行它时,它只是创建了一个空白的txt文件。有人知道为什么会发生这种情况吗?
以下是批处理脚本
@echo off
setlocal enableextensions
set "baseName=dnshistory"
set "count=0"
for /f "delims=%baseName%." %%a in (
'dir /b /o-d "%baseName%*.txt" 2^>nul'
) do ( set /a "count=%%a+1" & goto saveData )
:saveData
ipconfig /displaydns | find "Record Name" > "%baseName%%count%.txt"发布于 2014-07-13 10:11:30
你的Windows7版本也是英文的吗?
打开CMD窗口,只测试以下命令:
ipconfig /displaydns | find /i "Record Name"看看有没有什么东西显示出来。
如果没有,只尝试执行以下命令:
ipconfig /displaydns并查看所使用的语言,然后使用正确的单词更正代码。
在葡萄牙语中是:
ipconfig /displaydns | find /i "Nome do Registro"发布于 2014-07-13 15:04:18
尝试以下与语言无关的解决方案:
:saveData
(for /f "tokens=2 delims=:" %%a in ('ipconfig /displaydns') do (
echo %%a| find "." |findstr /v /r "[0-9]$"
))>file.txt(取每一行,过滤那些在: (第二个标记)后有.的行,并过滤掉所有以数字结尾的行)
另一种方法(因为上面给出了一些不需要的行):
查找每个-----------------行之后的第一行:
@echo off
setlocal enabledelayedexpansion
ipconfig /displaydns |findstr /n "^" >a.txt
for /f "tokens=1 delims=:" %%a in ('findstr /c:" --------------" a.txt') do (
set /a line=%%a+1
for /f "tokens=1,2,* delims=:" %%i in ('findstr /B "!line!:" a.txt') do echo(%%k
)https://stackoverflow.com/questions/24717850
复制相似问题