无法发送文件但能够保持住

时间:2016-11-18 07:18:27

标签: vbscript

很抱歉,由于我缺乏知识,我不知道如何描述我的问题。请在必要时进行指导。

流程

我的文本文件保存在文件夹(folder1)中。我的计划( upload.vbs )计划在folder1中查找文本文件,并通过 CURL 将其发送到网站。然后程序将运行批处理文件( moveFile.bat )将文本文件移动到另一个文件夹(类似于管家概念)

问题

目前我注意到我的所有文件都没有发送。我怀疑这是由于我的程序的工作方式。当我的程序调用CURL命令提示符时,我有另一个函数将文件从folder1移动到另一个文件夹(类似于内务处理概念)。我评论了FileMoving函数,它工作正常,但我想要这个函数。

是否因为CURL命令提示仍然在后台运行(尚未完成读取文件)但文件已被移动?如果是,如何解决这个问题?

以下是 upload.vbs

Option Explicit 
startprocess

Sub startprocess()
    Dim oFS1,objFolder,colFiles,objFile
    Set oFS1 = CreateObject("Scripting.FileSystemObject")
    Set objFolder = oFS1.GetFolder("Z:\folder1")
    Set colFiles = objFolder.Files

    For Each objFile In colFiles
        if lcase(oFS1.GetExtensionName(objfile))="txt" then
        UploadFile("Z:\folder1\" & objFile.Name)
        end if
    Next

    FileMoving  
End Sub

Sub FileMoving()
    Dim oShell 
    Set oShell = CreateObject( "WScript.Shell" )
    oShell.Run "moveFile.bat",0,false
End Sub

Sub UploadFile(FileName)
    Dim oShell 
    Set oShell = CreateObject( "WScript.Shell" )
    oShell.Run "curl -k -U username:password -x 10.200.1.6:3127 -b edo.txt -F df=" &  FileName & " -F ""dt=ASN"" -F send=Send ""https://suppliers.somegroup.com/edo/dataexchange/uprog.jsp""" ,0,false
End Sub

以下是我的 moveFile.bat

COPY Z:\folder1\*.txt Y:\backup\*.txt
DEL Z:\folder1\*.txt

1 个答案:

答案 0 :(得分:2)

oShell.Run "curl ... " , 0, false

将false(=不等待)传递给.Run方法。

请参阅:

  

bWaitOnReturn可选。指示脚本是否为布尔值   在继续之前应该等待程序完成执行   脚本中的下一个语句。如果设置为true,则执行脚本   暂停直到程序结束,Run返回任何错误代码   由程序返回。如果设置为false(默认值),则为Run方法   自动启动程序后立即返回   返回0(不被解释为错误代码)。