如何将对象添加到函数中?

问题描述 投票:0回答:1

我有一个程序可以更改 Gcode 文件中的一些文本。简单的事情,例如改变某些运动的转速。现在我正在移动某些包含

G119
的文件。如果所有文件都移动了,原来的文件夹是空的,我想删除它。 这是我尝试过的:

Function DeleteEmptyFolder(strFile)
  Dim fs, ts, contents, MainFolder, ParentFolder, BrugFolder
  set fs = CreateObject("Scripting.FileSystemObject")
  MainFolder = fs.GetParentFolderName(strFile)
  ParentFolder = fs.GetParentFolderName(MainFolder)
  BrugFolder = MainFolder & "_Brug\"
  if (MainFolder.files.count = 0) then
    wscript.echo "works till here"
  End if  
End function

其中

strFile
strFile = (file.path)

我得到的错误是

Object required: 'MainFolder'

所以我尝试将其更改为

Function DeleteEmptyFolder(ByRef strFile)
。只是想尝试一下。

我也尝试过

if (fs.GetParentFolderName(strFile).files.count = 0) then
看看它是否充当一个对象,但它没有。

那么我可以将字符串“转换”为对象吗?或者给一个函数一个对象?

或者这不是正确的方法,我是否必须以完全不同的方式来实现这一目标?

我可以将这些行粘贴到原始程序中,而不是使用单独的函数,但我尝试了解 VBS。所以我想也许真的有办法做到这一点。

vbscript
1个回答
0
投票

篷是用

.GetFolder
.GetParentFolderName
获取字符串形式的名称。

代码现在看起来像这样:

Function DeleteEmptyFolder(strFile)
  Dim fs, ts, contents, MainFolder, ParentFolder, BrugFolder
  set fs = CreateObject("Scripting.FileSystemObject")
  MainFolder = fs.GetParentFolderName(strFile)
  set GetFolder = fs.GetFolder(Mainfolder)
  ParentFolder = fs.GetParentFolderName(MainFolder)
  BrugFolder = MainFolder & "_Brug\"
  if (GetFolder.files.count = 0) then
    wscript.echo "works till here"
  End if  
End function 
© www.soinside.com 2019 - 2024. All rights reserved.