很抱歉,由于我缺乏知识,我不知道如何描述我的问题。请在必要时进行指导。
我的文本文件保存在文件夹(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
答案 0 :(得分:2)
您
oShell.Run "curl ... " , 0, false
将false(=不等待)传递给.Run方法。
请参阅:
bWaitOnReturn可选。指示脚本是否为布尔值 在继续之前应该等待程序完成执行 脚本中的下一个语句。如果设置为true,则执行脚本 暂停直到程序结束,Run返回任何错误代码 由程序返回。如果设置为false(默认值),则为Run方法 自动启动程序后立即返回 返回0(不被解释为错误代码)。