vbscript怎么读写ini文件?

bohut 2004-09-01 09:26:14
请举个例子,另外,vbs怎么执行dos命令?
...全文
757 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bohut 2004-09-01
  • 打赏
  • 举报
回复
up
bohut 2004-09-01
  • 打赏
  • 举报
回复
不好意思,我从来没有接触国vbs,所以可以说什么都不懂,请各位老大说的详细一点。
笨狗先飞 2004-09-01
  • 打赏
  • 举报
回复
还是把他当文本文件处理吧
bohut 2004-09-01
  • 打赏
  • 举报
回复
jam021(jam) :谢谢,dos命令没问题了,那么怎么读写ini文件呢?
jam021 2004-09-01
  • 打赏
  • 举报
回复
//vbs怎么执行dos命令?
Dim oScript
Set oScript = CreateObject("WScript.shell")
oScript.Run ("cmd.exe")
oScript.Run ("cmd.exe /c copy c:\1.txt c:\2.txt")
bohut 2004-09-01
  • 打赏
  • 举报
回复
up
jordi2014 2004-09-01
  • 打赏
  • 举报
回复

//vbs怎么执行dos命令?
用shell() 函数


Shell 函数


执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。

语法

Shell(pathname[,windowstyle])

Shell 函数的语法含有下面这些命名参数:

部分 描述
pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。
Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。


windowstyle 命名参数有以下这些值:

常量 值 描述
vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。
VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。
VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。
VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。
VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。


说明

如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开命名的程序,则会产生错误。

注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell
jam021 2004-09-01
  • 打赏
  • 举报
回复
//1.怎么写?
要怎么写?说的清楚些,先给你个按顺序写文件的例子

Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

Dim cPath
If Right(objFSO.GetAbsolutePathName(""), 1) = "\" then
cPath = objFSO.GetAbsolutePathName("")
Else
cPath = objFSO.GetAbsolutePathName("") & "\"
End If

Const ForAppending = 8
Dim outTextFile
Set outTextFile = objFSO.OpenTextFile (cPath & "testResult.ini", ForAppending, True)

outTextFile.WriteLine "111"
outTextFile.WriteLine "222"

outTextFile.Close
Set outTextFile = Nothing
Set objFSO = Nothing
jam021 2004-09-01
  • 打赏
  • 举报
回复
//如果ini的文件格式如下,则你的代码无法读取了
// [Section ]
// Key = aaa
帮你改了一下,能读取同路径下的ini文件,并且不受空格影响,如果要读指定路径上的ini,就把里面的路径写成绝对路径

Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

Dim cPath
If Right(objFSO.GetAbsolutePathName(""), 1) = "\" then
cPath = objFSO.GetAbsolutePathName("")
Else
cPath = objFSO.GetAbsolutePathName("") & "\"
End If

aa = GetProfile(cPath & "setup.ini", "setup information", "server name")
msgbox aa

Function GetProfile(strFileName, strSection, strName)

Dim st
st = False

Const ForReading = 1
Set eXmlFile = objFSO.OpenTextFile (strFileName, ForReading)
Do while not eXmlFile.AtEndOfStream
eStrLine = eXmlFile.Readline
If Left(Trim(eStrLine), 1) = "[" And Trim(Mid(Trim(eStrLine), 2, Len(Trim(eStrLine)) - 2)) = strSection Then
k = Trim(Mid(Trim(eStrLine), 2, Len(Trim(eStrLine)) - 2))
Do Until Right(k, 1) <> " "
k = Left(k, Len(k) - 1)
Loop
st = True
End If
If Left(Trim(eStrLine), 1) = "[" And Trim(Mid(Trim(eStrLine), 2, Len(Trim(eStrLine)) - 2)) <> strSection Then
p = Trim(Mid(Trim(eStrLine), 2, Len(Trim(eStrLine)) - 2))
Do Until Right(p, 1) <> " "
p = Left(p, Len(p) - 1)
Loop
st = False
End If

tmp2 = split(eStrLine, "=")
If Trim(tmp2(0)) = strName And st = True Then
GetProfile = Trim(tmp2(1))
eXmlFile.Close
Set eXmlFile = Nothing
Exit Function
End If
Loop

GetProfile = ""
End Function
bohut 2004-09-01
  • 打赏
  • 举报
回复
to: jam021(jam)
真的很感谢你,我的ini文件也可以读了,但是还有两个问题:
1.怎么写?
2.如果ini的文件格式如下,则你的代码无法读取了
[Section ]
Key = aaa

如能解决上述两个问题,分数随便你要,保证满足。
jam021 2004-09-01
  • 打赏
  • 举报
回复
//vbscript怎么读写ini文件?
给你个我以前写好的函数,读c:\setup.ini里的[setup information]下的server name就这么写:
aa = GetProfile("c:\setup.ini", "setup information", "server name")
代码:
aa = GetProfile("c:\setup.ini", "setup information", "server name")
msgbox aa

Function GetProfile(strFileName, strSection, strName)

Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim st
st = False

Const ForReading = 1
Set eXmlFile = objFSO.OpenTextFile (strFileName, ForReading)
Do while not eXmlFile.AtEndOfStream
eStrLine = eXmlFile.Readline
If Left(eStrLine, 1) = "[" And Mid(eStrLine, 2, Len(eStrLine) - 2) = strSection Then
st = True
End If
If Left(eStrLine, 1) = "[" And Mid(eStrLine, 2, Len(eStrLine) - 2) <> strSection Then
st = False
End If

tmp2 = split(eStrLine, "=")
If tmp2(0) = strName And st = True Then
GetProfile = tmp2(1)
eXmlFile.Close
Set eXmlFile = Nothing
Exit Function
End If
Loop

End Function

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧