标题: [已解决]解包的VBS调用自定义函数出错? [打印本页]
作者: s700800900 时间: 2010-6-21 20:48 标题: [已解决]解包的VBS调用自定义函数出错?
代码如下,这是一个缩影,但包括了我想表达的错误信息,它的用处是把别的地方拖上来的文件解包到d:\内,问题如下:如果直接双击运行,一切正常,如果把一个压缩包拖入后,1.txt文件却生成在了C:\根目录下,而不是我想要的当前VBS所在的目录。求原因和解决办法。- set ws=wscript.createobject("wscript.shell")
- set fs=wscript.createobject("scripting.filesystemobject")
- set arg=wscript.arguments
- errlvl_0_="No error"
- errlvl_1_="no file"
-
- if arg.count <> 0 then
- set oexec=ws.exec("""7z.exe"" x " & chr(34) & arg(0) & chr(34) & " -od:\ -aoa")
- error_(oexec.exitcode)
- else
- error_(1)
- end if
-
- function error_(error)
- set write_log=fs.opentextfile(ws.CurrentDirectory & "\1.txt",8,true)
- select case error
- case 0
- write_log.writeline(errlvl_0_)
- case 1
- write_log.writeline(errlvl_1_)
- case else
- write_log.writeline(null)
- end select
- write_log.close
- end function
复制代码
作者: s700800900 时间: 2010-6-21 21:26
啊,突然想到批处理当中也有这个问题,明白了。但用在批处理当中的解决办法在VBS中没什么效果。。求解
[ 本帖最后由 s700800900 于 2010-6-21 21:30 编辑 ]
作者: Spring 时间: 2010-6-21 23:56
我一般都不用
ws.CurrentDirectory
而是
left(wscript.scriptfullname, len(wscript.scriptfullname) - len(wscript.scriptname))
作者: zqz0012005 时间: 2010-6-22 00:16
相对路径问题
开始→运行:cmd,cmd提示符的当前目录就是拖放时的工作目录(未充分验证是否一定等于%userprofile%)。
双击运行时工作于脚本文件所在目录。
if arg.count <> 0 then
'ws.CurrentDirectory = fso.GetParentFolderName(arg(0))
ws.CurrentDirectory = fso.GetParentFolderName(WScript.ScriptFullName)
...
如果是bat,当工作目录与脚本路径相关时,则在bat首尾分别加上
pushd "%~dp0"
...
popd
bat对路径有要求时建议用此法。
作者: s700800900 时间: 2010-6-22 12:02
cmd我明白怎么回事。。只是不清楚vbs当中的解决方法而已。。谢谢各位,我去研究。。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |