希望有人可以提供帮助。
这就是我想要做的。我有一个文件夹(文件夹A)与.zip和.z0 *(从.z01到.z09的任何东西),我想将它们移动到一个热文件夹(文件夹B)我有一个.bat文件,移动一切.z0 *首先是.zips(见下文)
move / -y“c:\ Folder A * .z0 *”“E:\ Folder B \”
移动“c:\ Folder A * .zip”“E:\ Folder B \”
暂停
但这是棘手的一点(无论如何对我来说)
文件夹B是一个热门文件夹,当文件进入它时,系统会将其选中并移动到SFTP站点,由于文件的大小,这需要一些时间。我被告知我必须一次移动一个文件,因为之前的文件已经从文件夹B开始,按顺序.z0 *首先是.zip的结尾。
所以我可以在.bat中调用.vbs或所有它以.bat或其他可由任务调度程序运行的方式执行此操作。哦忘了说我需要它每周运行一次。
由于
答案 0 :(得分:0)
非常确定这应该在vbscript中做你想要的:
Set objFS = CreateObject("Scripting.FileSystemObject")
set objFolderA = objFS.GetFolder("c:\Folder A")
set objFolderB = objFS.GetFolder("c:\Folder B")
For each objFile in objFolderA.Files
Do While True
If objFolderB.Files.Count = 0 Then
objFS.MoveFile objFile.Path, ojbFolderB.Path & "\"
Exit Do
End If
Loop
Next
答案 1 :(得分:0)
@ECHO OFF
SETLOCAL
SET "sourcedir=c:\sourcedir"
SET "destdir=c:\destdir"
FOR %%x IN (
00 01 02 03 04 05 06 07 08 09 ip
) DO IF EXIST "%sourcedir%\*.z%%x" (
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\*.z%%x" '
) DO (
SET filename=%%a
CALL :moveslowly
)
)
GOTO :EOF
:moveslowly
IF EXIST "%destdir%\*z*" timeout /t 1 >nul&GOTO :moveslowly
MOVE "%sourcedir%\%filename%" "%destdir%\" >nul
GOTO :eof
这里唯一的问题是timeout
,可能安装也可能不安装(取决于版本)。如果您的计算机上不存在,则可以使用其他延迟机制之一,如CHOICE
方法(也取决于版本)或PING
方法。