找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 14394|回复: 9

[问题求助] VBS更改文件名问题

[复制链接]
发表于 2023-9-17 20:36:19 | 显示全部楼层 |阅读模式
笔者新建一个文件夹,里面创建3个文件,分别为01.vbs,02.vbs,MyFile.txt
01.vbs写入如下代码:
  1. Dim Fso
  2. Set Fso = WScript.CreateObject("Scripting.FileSystemObject")
  3. Fso.GetFile("MyFile.txt").Name ="Hello.txt"
复制代码
双击运行,可以成功更改MyFile.txt文件名。
02.vbs写入如下代码:
  1. Dim Fso
  2. Dim a
  3. a = WScript.Arguments(0)
  4. Set Fso = WScript.CreateObject("Scripting.FileSystemObject")
  5. Fso.GetFile("MyFile.txt").Name ="Hello.txt"
复制代码
在文件夹中拖动01.vbs放置到02.vbs上以运行,发现无法更改MyFile.txt文件名。报错“文件未找到”,错误代码800A0035
想请教一下各位老师,是什么原因导致无法更改文件名?
发表于 2023-9-17 22:07:56 | 显示全部楼层
试了下,发现拖动执行时的命令行是
"%systemroot%\system32\wscript.exe" 02.vbs的完整路径 01.vbs的完整路径
当前目录路径是 %systemroot%\system32
发表于 2023-9-17 22:19:23 | 显示全部楼层
02里也没用到变量a啊
 楼主| 发表于 2023-9-18 09:02:57 | 显示全部楼层
回复 2# Five66


    太感谢您了!在这种情况下,该如何去重命名这个文件呢?
 楼主| 发表于 2023-9-18 09:05:54 | 显示全部楼层
回复 3# jyswjjgdwtdtj


    主要是不明白a = WScript.Arguments(0)为什么会导致后面的重命名无法执行
发表于 2023-9-18 16:36:49 | 显示全部楼层
  1. Dim Fso, a, oWshShell
  2. a = WScript.Arguments(0)
  3. Set oWshShell = CreateObject("WScript.Shell")
  4. MsgBox oWshShell.CurrentDirectory
  5. Set Fso = WScript.CreateObject("Scripting.FileSystemObject")
  6. Fso.GetFile("MyFile.txt").Name ="Hello.txt"
复制代码
第四行显示当前路径
可以看到加上了第二行会导致当前路径改变,导致找不到文件
发表于 2023-9-18 16:36:54 | 显示全部楼层
  1. Dim Fso, a, oWshShell
  2. a = WScript.Arguments(0)
  3. Set oWshShell = CreateObject("WScript.Shell")
  4. MsgBox oWshShell.CurrentDirectory
  5. Set Fso = WScript.CreateObject("Scripting.FileSystemObject")
  6. Fso.GetFile("MyFile.txt").Name ="Hello.txt"
复制代码
第四行显示当前路径
可以看到加上了第二行会导致当前路径改变,导致找不到文件
发表于 2023-9-18 19:19:03 | 显示全部楼层
  1. set ws = createobject("wscript.shell")
  2. msgbox ws.currentdirectory
  3. ws.currentdirectory = "D:"
复制代码
发表于 2023-9-18 20:04:05 | 显示全部楼层
回复 4# SZT01


    使用MyFile.txt的完整路径,可以用WScript.ScriptFullName整出来
例如:
Fso.GetFile(WScript.ScriptFullName).ParentFolder.Path & "\MyFile.txt"
 楼主| 发表于 2023-9-23 20:47:00 | 显示全部楼层
感谢各位老师指点!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:17 , Processed in 0.018917 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表