使用 movefolder 方法时找不到 vbscript 错误路径

2024-03-11

我对 vbscript 相当陌生,并尝试编写一个脚本来获取带有月份和年份标记的文件夹(2012_04)并将它们移动到带有年份标记的文件夹(2012)。当我尝试移动文件夹时,我收到“路径未找到”错误,并且我似乎无法在任何地方找到有关其发生原因的答案。

for i = 0 to UBound(yearArray)
    Set folder = fso.GetFolder(InputP)
    Set subFold = Folder.Subfolders
    yearStamp = yearArray(i)

    if not fso.FolderExists(ArchiveP & yearStamp) then
        fso.createFolder(ArchiveP & yearStamp)
    end if

    ArchiveP = ArchiveP & yearStamp & "\"

    for each dateFold in subFold
       Set fo = fso.GetFolder(InputP & dateFold.Name)
       folderName = InputP & dateFold.name & "\"
       foldName = fo.name & "\"

       if left(foldName,4) = yearStamp then
          fso.MoveFolder folderName , ArchiveP & foldName
       end if
    next

    ArchiveP = UnChangeP & PreArchP
Next

错误发生在 fso.MoveFolderfoldName 、 ArchiveP 和 FoldName 处,我无法弄清楚发生了什么。


您收到的错误是由错误构建的路径引起的。你想做的是这样的:

fso.MoveFolder "C:\input\2013_03", "D:\archive\2013\2013_03"

但是,您实际上正在做的是:

fso.MoveFolder "C:\input\2013_03\", "D:\archive\2013\2013_03\"
                                ^                           ^

尾随反斜杠仅在目标路径中有效,并且仅当目标路径是parent您要将源文件夹移动到的文件夹,即您的语句应如下所示:

fso.MoveFolder "C:\input\2013_03", "D:\archive\2013\"

或者像这样:

fso.MoveFolder "C:\input\2013_03", "D:\archive\2013\2013_03"

避免通过字符串连接构建路径。这FileSystemObjects提供了一个方法BuildPath http://msdn.microsoft.com/en-us/library/z0z2z1zt%28v=vs.84%29.aspx这将正确处理路径分隔符。

顺便说一句,你的代码相当复杂。而不是使用索引访问yearArray您可以简单地使用 a 迭代所有元素For Each环形。另外,您对子文件夹的迭代InputP已经为您提供了Folder对象。fso.GetFolder(InputP & dateFold.Name)与以下对象完全相同dateFold. Plus, Folder对象带有一个Move http://msdn.microsoft.com/en-us/library/kxtftw67%28v=vs.84%29.aspx方法,因此您只需要处理目标路径。

我相信您的代码可以简化为以下内容,它应该可以满足您的要求:

For Each year In yearArray
  dst = fso.BuildPath(ArchiveP, year)
  If Not fso.FolderExists(dst) Then fso.CreateFolder dst

  For Each dateFold In fso.GetFolder(InputP).SubFolders
    If Left(dateFold.Name, 4) = year Then dateFold.Move dst & "\"
  Next
Next

不过,就性能而言,切换两个循环可能是个好主意。迭代文件夹意味着您必须从磁盘读取,而yearArray是在内存中,因此前者的迭代必然比后者慢。通过使子文件夹迭代成为外循环(并将目标文件夹创建放在单独的循环中),您可以消除此瓶颈,因为这样您只需读取每个子文件夹一次。

For Each year In yearArray
  dst = fso.BuildPath(ArchiveP, year)
  If Not fso.FolderExists(dst) Then fso.CreateFolder dst
Next

For Each dateFold In fso.GetFolder(InputP).SubFolders
  For Each year In yearArray
    dst = fso.BuildPath(ArchiveP, year)
    If Left(dateFold.Name, 4) = year Then dateFold.Move dst & "\"
  Next
Next
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 movefolder 方法时找不到 vbscript 错误路径 的相关文章

  • 以编程方式安装证书吊销列表 (CRL)

    我需要每周下载并安装大约 50 个 CRL 并将它们安装在多台 Windows 服务器上 下载是最简单的部分 有没有办法编写 CRL 导入过程的脚本 这是我的最终来源 为公众稍微删除 但应该有效 我不会更改已接受的答案 但我确实希望这会有所
  • 在批处理和 VBS 混合中使用变量

    This thread https stackoverflow com questions 9074476 is it possible to embed and execute vbscript within a batch file w
  • WScript Sendkeys 不接受 Unicode 字符

    我正在尝试使用 WScript Sendkeys 发送字符 似乎它不起作用 我找到了一个帖子VBscript 的 SendKeys 是否支持 Unicode https stackoverflow com questions 3198574
  • 使用或不使用“执行”语句在 UFT 中设置对象引用

    最近 我被分配了一个项目 其中使用 执行 语句设置对象引用 如下所示 Execute Set objButton XamRibbonWindowAddin XamWindow DashBoard WpfButton Save 然而 我设置对
  • 循环遍历指定文件夹中的所有 Excel 文件并从特定单元格中提取数据的代码

    我有大约 50 个左右的 Excel 工作簿 需要从中提取数据 我需要从特定单元格 特定工作表中获取数据并编译成一个数据集 最好是另一个 Excel 工作簿 我正在寻找一些 VBA 以便可以将结果编译到我用来运行代码的工作簿中 因此 我需要
  • 查找字符串中的所有字符串

    我通过 http 请求响应文本获取 StrTxt 作为 html 字符串 我想找到 StrTxt 中所有出现的 字符串 像这样的东西 for each string in StrTxt StrTxt all matched strings
  • 从 .vbs 文件调用 VBA 宏会引发 800A03EC 错误

    我正在尝试通过 VBS 文件 文件名 Check final vbs 运行 VBA 宏 这是代码 Option Explicit run macro Sub run macro Dim xl1 Dim sCurPath Dim xlBook
  • 重载 VBScript 中的构造函数

    我找到了一种在 VBScript 中扩展类的方法 但是有什么方法可以传入参数或重载构造函数吗 我当前正在使用 Init 函数来初始化属性 但希望能够在创建对象时执行此操作 这是我的示例类 Class Test Private strText
  • 从ini文件中读取数据

    我有一个需要输入文件名的 vbscript 代码是 Dim tsout Set tsout gofs CreateTextFile C csv Dim tsin Set tsin gofs OpenTextFile C csv 我该如何配置
  • 自动打开、更新和保存 Excel 工作簿

    我想在Excel中自动修改列的数字格式 Set excel CreateObject Excel Application Set oWB excel Workbooks Open E Docs Invoice csv Excel Macro
  • VBS 脚本查找特定扩展名的所有文件并将它们复制到特定目的地

    我正在制作一个项目 通过创建一个脚本来在工作中使用来自动化我们的一个流程 我希望脚本检查用户名的输入 以搜索指定的用户配置文件路径中的任何 doc docx pdf pst 等文件 并将它们按原样复制到网络驱动器位置上创建的文件夹中 我的主
  • ADO 参数化查询不返回任何结果

    我正在使用此查询从经典 asp 页面中的 vbscript 获取一些结果 但它不会返回任何值 该页面是空白的 也没有错误 请问有什么建议吗 dim cmd admin no admin no request QueryString admi
  • VBscript 使用输出参数从 MySQL 调用存储过程[重复]

    这个问题在这里已经有答案了 编辑20220219 使用下面的 VBSCRIPT 代码解决 SQL CALL NewCheckData pOld cn execute SQL SQL SELECT pOld Set RS cn execute
  • VBScript 条件短路解决方法

    我有一个必须维护的大型经典 ASP 应用程序 并且我多次发现自己因缺乏短路评估能力而受挫 例如 VBScript 不会让你逃脱 if not isNull Rs myField and Rs myField lt gt 0 then 因为如
  • 如何在独立的 .vbs 文件中从 VBScript 调用 DotNetFactory?

    我一直在探索扩展 QuickTest Professional 脚本编写功能的选项 并发现今天早上 所以我决定尝试一下 下面的代码在 QTP 环境中执行时工作正常 但我也可以看到它在 QTP 环境之外的用途 不幸的是 从独立的 vbs 文件
  • 如何在.net core或.net standard项目中运行VBScript?

    我知道这是死胡同而且愚蠢的想法 但仍然 您知道在 Net Core 或 Net Standard 项目中运行 VBScript 的任何 nuget 或解决方法吗 我尝试使用 ClearScript V8 nuget https www nu
  • CDO.消息编码问题

    我们目前正在将邮件递送系统更改为仅使用UTF 8 发件人姓名似乎有问题 当电子邮件包含非 ASCII 字符 希伯来语 时 主题和正文呈现正常 但发件人姓名 如出现在我的 gmail 帐户中 变为 有一行代码 myMail BodyPart
  • 如何启动 VBS 的交互式控制台?

    与这个问题非常相似 如何启动 Perl 的交互式控制台 https stackoverflow com questions 73667 how can i start an interactive console for perl 我只是希
  • 等待程序完成

    为了监视带宽使用情况并且不要在启动时加载不必要的程序 我想先执行dumeter exe 然后执行firefox exe 当我关闭firefox时 它应该杀死dumeter 我使用以下代码启动 Set WshShell WScript Cre
  • 经典的asp字符编码

    我在经典 asp 网站中遇到西班牙字符问题 用户可以在 aspx 页面上的表单中提交他们的姓名 地址 然后 aspx 页面将 ajax post 发送到经典的 asp 页面 它所做的所有操作都存储在我们的 Sql 2008 DB 中 我可以

随机推荐

  • 如何仅将图片框显示的内容捕获为位图,而不使用“从屏幕复制”?

    具体来说 我需要将图片框实际显示的特定区域捕获为位图 该区域的坐标由我覆盖在图片框顶部的控件的边界指定 但该控件属于图片框 当我制作该区域的 快照 时 该控件被隐藏 我尝试使用普通的屏幕捕获方法 CopyFromScreen 但您无法真正控
  • Greasemonkey调试,获取真实行号

    我正在尝试让 Greasemonkey 用户脚本正常工作 但它一直抛出异常 缺少 声明之前 在 Javascript 错误控制台中 Greasemonkey 文档说应该忽略行号 但由于脚本相当长 因此了解错误发生的位置将非常有帮助 我怎样才
  • 使用 Javascript 旋转文本

    我想循环浏览一系列单词来创建文本旋转效果 我的大部分工作都按预期进行 有什么方法可以在 p 元素的长度上使用 css 过渡吗 当从 char length gt 10 的对象遍历到 char length HTML p span span
  • 通过经过身份验证的 Web 表单保护 ASP.net 中的 Ajax 请求

    我已经读过通过 GUID 保护 AJAX 请求 https stackoverflow com questions 652851 securing ajax requests via guid and 保护 ajax 请求 https st
  • 安装 XAMPP 时如何使用 UAC

    我正在将 Xampp 安装到我的计算机上 但是当我尝试安装它时 会出现一个对话框 我该如何解决这个问题 非常感谢您的帮助 对话框 重要的 因为您的系统上已激活用户帐户控制 UAC XAMPP 的功能可能受到限制 使用UAC请避免安装XAMP
  • Vertx 线程阻塞警告

    我正在 ubuntu 服务器上运行 vert x 应用程序 它有一个在端口 3000 上运行的 HTTPServer 应用程序工作正常 但有时我会看到以下警告 Dec 08 2017 1 23 43 AM io vertx core imp
  • 将额外数据传递给 finder auth

    我的发现者来自Auth有我需要访问的条件 this gt request但我无权访问UsersTable 应用控制器 初始化 this gt loadComponent Auth authenticate gt Form gt finder
  • 什么是 __CxxFrameHandler4 以及链接器错误“无法解析的外部符号 __CxxFrameHandler4”究竟意味着什么?

    我正在针对我的 Visual C 项目使用通过 vcpkg 构建的多个库 例如 civet web 和 prometheus cpp 当构建 x86 时一切都很完美 在 x64 中我收到一堆链接器错误 错误 LNK2001 无法解析的外部符
  • Java 相当于 PHP 简单 HTML DOM 解析器

    由于我必须使用多线程 而我无法在 PHP 中雄辩地解决这个问题 所以我想用 Java 进行编程 不幸的是 我找不到一个库 它可以让我像在 PHP 中那样强大 快速 轻松地解析 HTML DOM 简单的 HTML DOM 解析器 您知道 Ja
  • db.getCollectionInfos 不是一个函数

    我正在编写一个 MERN 应用程序 并尝试使用以下命令获取 MongoDB 数据库中的所有集合名称db getCollectionInfos method https docs mongodb com manual reference me
  • WPF-如何在 控件中显示 ImageSource 的裁剪区域?

    WPF 如何在控件中显示 ImageSource 的裁剪区域 我有一个可用像素大小的 ImageSource 我有一个计算出的裁剪矩形 指示我们实际要使用多少图像 我不想直接编辑图像数据 但我想要我的
  • 如何阻止 vaadin 窃取所有 url 模式(并与 spring mvc 很好地配合)

    我有一个 vaadin 应用程序 我试图提供一些由 spring MVC 提供的 REST URL 我的 web xml 如下 我只在 info 处收到 404 错误 看起来 Vaadin 窃取了所有 url 模式 如果我删除 Vaadin
  • 无法将 Firebase 函数拆分到多个文件中

    我正在使用 firebase 函数并达到数百个函数 现在很难用单个函数来管理它index js文件如大量示例所示 我尝试将该函数拆分为多个文件 例如 firebase json functions node modules index js
  • 在 RecyclerView 项目中显示动态数量的视图?

    我正在尝试重新创建这个 我有一个数据列表 List
  • XDocument.Load(feedUrl) 返回“根级别的数据无效。第 1 行,位置 1。”

    首先 这更多的是一个解决方案 而不是一个问题 我花了一段时间才解决 所以我认为我的解决方案值得分享 我试图使用加载 RSS 提要XDoument Load feedUrl 并收到上述异常 我检查了养活自己 http www limun hr
  • 允许来自 env 的 mod_rewrite 而不是 .htaccess 中的 mod_setenvif

    我试图使用 htaccess 和 Apache 2 2 控制对测试站点 主机的访问 但不控制对生产站点的访问 我使用 mod rewrite 来检测主机名并设置一些用于控制站点各个方面的环境变量 但无法利用它来控制访问 我只能使用 mod
  • 中文字符以粗体呈现

    Silverlight 在文本框中将少数中文字符呈现为粗体 该文本框没有设置字体系列 请参考以下截图 在上面的屏幕截图中 第一个字符比另一个字符更粗 MSDN 的一篇帖子说这是因为字体系列问题和设置SimSun字体系列应该可以解决这个问题
  • 如何更改 matplotlib 中的当前轴实例(即 gca())

    我用一个技巧绘制高度与主轴匹配的颜色条 http matplotlib org mpl toolkits axes grid users overview html colorbar whose height or width in syn
  • 生成唯一的随机字符串

    我正在用 Dancer 编写一个非常小的 URL 缩短器 它使用 REST 插件将发布的 URL 存储在数据库中 该数据库包含六个字符串 用户可以使用该字符串来访问短 URL 现在我对我的随机字符串生成方法有点不确定 sub generat
  • 使用 movefolder 方法时找不到 vbscript 错误路径

    我对 vbscript 相当陌生 并尝试编写一个脚本来获取带有月份和年份标记的文件夹 2012 04 并将它们移动到带有年份标记的文件夹 2012 当我尝试移动文件夹时 我收到 路径未找到 错误 并且我似乎无法在任何地方找到有关其发生原因的