标题: [问题求助] VBS更改文件名问题 [打印本页]
作者: SZT01 时间: 2023-9-17 20:36 标题: VBS更改文件名问题
笔者新建一个文件夹,里面创建3个文件,分别为01.vbs,02.vbs,MyFile.txt
01.vbs写入如下代码:- Dim Fso
- Set Fso = WScript.CreateObject("Scripting.FileSystemObject")
- Fso.GetFile("MyFile.txt").Name ="Hello.txt"
复制代码
双击运行,可以成功更改MyFile.txt文件名。
02.vbs写入如下代码:- Dim Fso
- Dim a
- a = WScript.Arguments(0)
- Set Fso = WScript.CreateObject("Scripting.FileSystemObject")
- Fso.GetFile("MyFile.txt").Name ="Hello.txt"
复制代码
在文件夹中拖动01.vbs放置到02.vbs上以运行,发现无法更改MyFile.txt文件名。报错“文件未找到”,错误代码800A0035
想请教一下各位老师,是什么原因导致无法更改文件名?
作者: Five66 时间: 2023-9-17 22:07
试了下,发现拖动执行时的命令行是
"%systemroot%\system32\wscript.exe" 02.vbs的完整路径 01.vbs的完整路径
当前目录路径是 %systemroot%\system32
作者: jyswjjgdwtdtj 时间: 2023-9-17 22:19
02里也没用到变量a啊
作者: SZT01 时间: 2023-9-18 09:02
回复 2# Five66
太感谢您了!在这种情况下,该如何去重命名这个文件呢?
作者: SZT01 时间: 2023-9-18 09:05
回复 3# jyswjjgdwtdtj
主要是不明白a = WScript.Arguments(0)为什么会导致后面的重命名无法执行
作者: czjt1234 时间: 2023-9-18 16:36
- Dim Fso, a, oWshShell
- a = WScript.Arguments(0)
- Set oWshShell = CreateObject("WScript.Shell")
- MsgBox oWshShell.CurrentDirectory
- Set Fso = WScript.CreateObject("Scripting.FileSystemObject")
- Fso.GetFile("MyFile.txt").Name ="Hello.txt"
复制代码
第四行显示当前路径
可以看到加上了第二行会导致当前路径改变,导致找不到文件
作者: czjt1234 时间: 2023-9-18 16:36
- Dim Fso, a, oWshShell
- a = WScript.Arguments(0)
- Set oWshShell = CreateObject("WScript.Shell")
- MsgBox oWshShell.CurrentDirectory
- Set Fso = WScript.CreateObject("Scripting.FileSystemObject")
- Fso.GetFile("MyFile.txt").Name ="Hello.txt"
复制代码
第四行显示当前路径
可以看到加上了第二行会导致当前路径改变,导致找不到文件
作者: 老刘1号 时间: 2023-9-18 19:19
- set ws = createobject("wscript.shell")
- msgbox ws.currentdirectory
- ws.currentdirectory = "D:\"
复制代码
作者: Five66 时间: 2023-9-18 20:04
回复 4# SZT01
使用MyFile.txt的完整路径,可以用WScript.ScriptFullName整出来
例如:
Fso.GetFile(WScript.ScriptFullName).ParentFolder.Path & "\MyFile.txt"
作者: SZT01 时间: 2023-9-23 20:47
感谢各位老师指点!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |