Dim s As StringOn Error Resume Nexts = CurDir '当前目录
'保证目录最后的字符为 "\"If Right(s, 1) <> "\" Then
s = s & "\"
End If '在当前目录下创建bat文件Open s & "kill.bat" For Output As #1
Print #1, ":redel"
Print #1, "del " & Chr(34) & s & App.EXEName & ".exe" & Chr(34)
Print #1, "if exist " & Chr(34) & s & App.EXEName & ".exe" & Chr(34) & " goto redel"
Print #1, "del %0"
Print #1,
Close #1
Shell Chr(34) & s & "kill.bat" & Chr(34), vbHide
End
------------------------------------------------------------------
这个字符串变量 S的作同是什么呢?
------------------------------------------------------------------
If Right(s, 1) <> "\" Then
s = s & "\"
End If '在当前目录下创建bat文件为什么 一定要保证 '保证目录最后的字符为 "\" 这个?-----------------------------------------------------------------
Open s & "kill.bat" For Output As #1这句在这里建立一个打开的批处理文件为什么 前面还加了S?Open app.path "\kill.bat" for output as #1我通常喜欢这样写 -------------------------------------------------------------------Print #1,
最后面 一个print#1 没有什么代码写入 是不是多余的?
--------------------------------------------------------------------Shell Chr(34) & s & "kill.bat" & Chr(34), vbHide为什么运行这个批处理的时候 要加 这个chr(34)我用立即窗口测试 这个chr(34 ) 是双引号但是加它是为什么呢
'保证目录最后的字符为 "\"If Right(s, 1) <> "\" Then
s = s & "\"
End If '在当前目录下创建bat文件Open s & "kill.bat" For Output As #1
Print #1, ":redel"
Print #1, "del " & Chr(34) & s & App.EXEName & ".exe" & Chr(34)
Print #1, "if exist " & Chr(34) & s & App.EXEName & ".exe" & Chr(34) & " goto redel"
Print #1, "del %0"
Print #1,
Close #1
Shell Chr(34) & s & "kill.bat" & Chr(34), vbHide
End
------------------------------------------------------------------
这个字符串变量 S的作同是什么呢?
------------------------------------------------------------------
If Right(s, 1) <> "\" Then
s = s & "\"
End If '在当前目录下创建bat文件为什么 一定要保证 '保证目录最后的字符为 "\" 这个?-----------------------------------------------------------------
Open s & "kill.bat" For Output As #1这句在这里建立一个打开的批处理文件为什么 前面还加了S?Open app.path "\kill.bat" for output as #1我通常喜欢这样写 -------------------------------------------------------------------Print #1,
最后面 一个print#1 没有什么代码写入 是不是多余的?
--------------------------------------------------------------------Shell Chr(34) & s & "kill.bat" & Chr(34), vbHide为什么运行这个批处理的时候 要加 这个chr(34)我用立即窗口测试 这个chr(34 ) 是双引号但是加它是为什么呢
也达到了一样的效果 上面的代码是我在在网络上找到的 我很想仔细研究下原理
如果S后面不是"\"直接拼上文件名 那么路径是错误的
打开那个批处理文件的时候加上S还是为了能够通过绝对路径找到kill.bat
那个CHR(34)是因为作者不喜欢写成 """"
百度里查是"为什么实际测试是""""
这个字符串变量 S的作同是什么呢?
------------------------------------------------------------------
获得程序当前所有路径------------------------------------------------------------------
If Right(s, 1) <> "\" Then
s = s & "\"
End If '在当前目录下创建bat文件 为什么 一定要保证 '保证目录最后的字符为 "\" 这个?
-----------------------------------------------------------------
写绝对路径时,以下这样写肯定是错的:
c:\xxxkill.bat(xxx为文件kill.bat所在文件夹)
所要保证文件夹最的一个字符为"\"
c:\xxx\kill.bat-----------------------------------------------------------------
Open s & "kill.bat" For Output As #1
这句在这里建立一个打开的批处�
�文件
为什么 前面还加了S?
-------------------------------------------------------------------
加S是为取得绝对路径:
比如:c:\xxx\kill.bat-----------------------------------------------------------------
Open app.path "\kill.bat" for output as #1
我通常喜欢这样写
-----------------------------------------------------------------
如果你的程序在某盘根目录下就会出错,路径为:
比如c盘根目录,你的路径就会是:
c:\\kill.bat-------------------------------------------------------------------
Print #1,
最后面 一个print#1 没有什么代码写入 是不是多余的?
--------------------------------------------------------------------
这并不多余,他是想在文件中未加一个空行--------------------------------------------------------------------
Shell Chr(34) & s & "kill.bat" & Chr(34), vbHide
为什么运行这个批处理的时候 要加 这个chr(34)
我用立即窗口测试 这个chr(34 ) 是双引号
但是加它是为什么呢
--------------------------------------------------------------------
他是要把绝对路径用双引号引起来
就象这样:"c:\xxx\kill.bat"Chr(34) & s & "kill.bat" & Chr(34)运行时就你在监视里可以看到:
""C:\Documents and Settings\Administrator\桌面\新建文件夹 (8)\kill.bat""
注意前面两个""后面两""所以是四个,它的意思是包含双引号的字符串.
string串变量在Shell后面不能直接用,不知道为什么,它要的是双引号引起来的字符串.其实他这方法廷笨的(你可以理解为他不太会用双引号),你可以如下作,是一样的:
Shell """" & s & "kill.bat" & """", vbHide也就是说:也就是说VB里双引号里引用一个双引号,要使用2个双引号"""",而不是一个""".
s = IIf(Len(App.Path) > 3, App.Path & "\", App.Path)
Dim sDoubleQuotation as string
sDoubleQuotation=""""定义好直接用吧