截取的DOS出来的字串符 To Ini
本帖最后由 jet7253 于 2012-4-21 19:28 编辑小弟想劫取的DOS底下的文字
是不是可以请懂的大大们
随便劫取一行给小弟一个例子就行了......(这是DOS的指令)
以以下出现的字符教教小弟
因为关于DOS的标题的文章不多......
所以贸昧的发表问题一下
希望大大们不吝赐教
十分感谢
C:\>Bcdedit
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=C:
description Windows Boot Manager
locale zh-TW
inherit {globalsettings}
default {current}
resumeobject {78bd8f43-b351-11de-b4a3-889719df90c1}
displayorder {current}
{78bd8f47-b351-11de-b4a3-889719df90c1}
toolsdisplayorder {memdiag}
timeout 1
Windows的开机载入器
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Windows 7
locale zh-TW
inherit {bootloadersettings}
recoverysequence {78bd8f45-b351-11de-b4a3-889719df90c1}
recoveryenabled Yes
osdevice partition=C:
systemroot \Windows
resumeobject {78bd8f43-b351-11de-b4a3-889719df90c1}
nx OptIn
numproc 4
usefirmwarepcisettingsNo
真实模式开机磁区
---------------------
identifier {78bd8f47-b351-11de-b4a3-889719df90c1}
device partition=C:
path \NST\NeoGrub.mbr
description NeoGrub Bootloader
Bcdedit>result.txt
利用输出重定向把结果输出到文本文件里,然后再处理 应该叫截取比较恰当 发个别人给的示例 感觉挺不错的。
#include <Constants.au3>
$foo = Run("bcdedit.exe", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
ProcessWaitClose($foo)
$text=StdoutRead($foo)
MsgBox(0, "STDOUT read:", $text)
kakinkgb 发表于 2008-7-26 21:04 http://www.autoitx.com/images/common/back.gif 论坛置顶帖,有个FAQ。真的很少有人会去看了。。。 本帖最后由 jet7253 于 2012-4-21 13:23 编辑
论坛置顶帖,有个FAQ。真的很少有人会去看了。。。
haijie1223 发表于 2012-4-21 03:58 http://www.autoitx.com/images/common/back.gif
有看过但不会用请见谅 , 怎么截都截不到我要的......
我会再试试的...
zch11230 大
谢谢.
截取出来MSGBOX是空白的不知道是不是我用错了
使用IPCONFIG.EXE会截出IP等资料 用BCDEDIT.exe会变空白
使用环境为win7x64 回复 6# jet7253
我也是WIN7 X64 可以直接运行你先试试直接在CMD下运行有没有反映,或者加上绝对路径试试。 无法开启开机设定资料存放区。
存取被拒。
看来是我自己电脑不能执行的问题
直接在命令列下可以有作用
但是CMD下就不行了
难怪截取不到了
但还是谢谢你的帮忙
感激不尽 本帖最后由 jet7253 于 2012-4-21 23:53 编辑
为了不变成无意义问题...就用一个例子..截取的DOS内文字 To Ini...顺便帮自己记录一下......
另外谢谢大家不吝啬教学
在这我学到太多了XD
#RequireAdmin
#include <Constants.au3>
$foo = Run("ipconfig.exe", @SystemDir, @SW_HIDE,$STDERR_CHILD + $STDOUT_CHILD)
ProcessWaitClose($foo)
$text=StdoutRead($foo)
Local $aini = @ScriptDir & "\Ini.ini"
If Not FileExists ($aini) Then
FileWrite ($aini, "")
EndIf
Local $var1, $var2
$var1 = StringMid($Text & @CRLF, 111, 15)
$var2 = 'ip='
IniWriteSection($aini, 'Ip位置', $var2 & $var1)
回复 9# jet7253
好心提醒楼主一句:
DOS回显不是这样读滴!
试试下面的:
#RequireAdmin
#include <Constants.au3>
$foo = Run("ipconfig.exe", @SystemDir, @SW_HIDE,$STDERR_CHILD + $STDOUT_CHILD)
Local $text = ''
While 1
$text &= StdoutRead($foo)
If @error Then ExitLoop
WEnd
MsgBox(0, '', $text) 回复 10# user3000
3000兄,怎么你的那种代码方式反而不行啊?
而楼上的代码方式是可以的
回复 11# xms77
原来楼主发在9楼的代码真也能读!
我读不出是我把其中的 ProcessWaitClose 那行去掉了!
但在我发在10楼的代码经测试无问题!
这是新手问答区学来的知识, 我已经这么用'N'久了!
没想原来也可以这么读! 是AU3改版后的事?
也上图证明(跟运行环境有关? 我这 XP SP3, AUTOIT 3.3.7.15 :
回复 12# user3000
这个也不行了,奇怪了!我的系统是win7,你的那个代码我曾经在xp sp3试过,是可以的,可能是我的系统有问题。
回复user3000
这个也不行了,奇怪了!我的系统是win7,你的那个代码我曾经在xp sp3试过,是可以的,可能 ...
xms77 发表于 2012-4-21 22:39 http://www.autoitx.com/images/common/back.gif
我如果把IPCONFIG改成bcdedit.exe就不行了....囧 回复 14# jet7253
我机器上没有文件,bcdedit.exe. 从网上下了一个, 用9楼10楼代码方式都可以读到啊!
页:
[1]
2