我可以调用函数内的函数吗?

问题描述:

Function foldercheck(Inputfoldername) 
    If objFSO.FolderExists(Inputfoldername) = False Then 
     WriteLogFileLine logfile, "Folder " & Chr(34) & Inputfoldername & _ 
      Chr(34) & " does not exists, so exiting the script !" & vbCrLf 
     SQuit=1 
    Else 
     WriteLogFileLine logfile, "Folder " & Chr(34) & Inputfoldername & _ 
      Chr(34) & " exists" & vbCrLf 
    End If 
    foldercheck = SQuit 
End Function 

Function quitscript() 
    If SQuit = 1 Then WScript.Quit 
End Function 

Function FolderExitsornot(Inputfoldername) 
    Call foldercheck(Inputfoldername) 
    Call quitscript 
End Function 

我已更新我的脚本,现在的问题是,每次目标文件夹不存在时,我的脚本退出,而我的要求是它应该显示所有目标文件夹不存在的日志消息,然后退出脚本。这就是为什么我写了2个函数然后在一个主函数内调用它们的原因。我可以调用函数内的函数吗?

+0

您发布的代码只有一个目标文件夹('Inputfoldername'),因此它基本上已经显示“所有”目标文件夹的日志消息。 –

+0

@AnsgarWiechers - '(Inputfoldername)'是从一个文本文件传入的,该文件可能有许多条目,基本上是整个文件路径。 – Pals

+2

无论何时文件夹丢失,您都将'SQuit'(显然是一个全局变量)设置为1。在接下来的步骤中,调用一个函数,一旦'SQuit'取值1,就立即退出脚本。你期望会发生什么?当然如果你告诉它脚本会在第一个丢失的文件夹中退出。 –

我想到你居然问了两件事情:

  1. 是否有可能从一个函数中调用一个函数?
  2. 是否可以在函数中定义一个函数?

第一个问题的答案是肯定的。第二个答案是否定的 - 您必须将函数声明移出FolderExitsornot-函数。

+0

请参阅上面的修改脚本。但我还无法达到预期的效果。 – Pals