0

希望有人可以提供帮助。

这就是我想要做的。我有一个带有 .zip 和 .z0* 的文件夹(文件夹 A)(从 .z01 到 .z09 的任何内容),我想将它们移动到一个常用文件夹(文件夹 B)我有一个 .bat 文件,可以将所有内容移动到.z0* 首先是 .zips(见下文)

move /-y "c:\Folder A*.z0*" "E:\Folder B\"

move "c:\Folder A*.zip" "E:\Folder B\"

暂停

但这是棘手的一点(无论如何对我来说)

文件夹 B 是一个热文件夹,当文件进入其中时,系统会拾取它们并移动到 SFTP 站点,由于文件的大小,这需要一些时间。有人告诉我,当之前的文件从文件夹 B 中移出时,我必须一次移动一个文件,并且首先是 .z0*,然后是 .zip。

那么我可以在 .bat 中调用 .vbs 或以 .bat 或其他可以由任务调度程序运行的方式来执行此操作吗?哦忘了说我需要它每周运行一次。

谢谢

4

2 回答 2

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
于 2013-08-01T16:57:18.843 回答
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方法。

于 2013-08-01T23:42:11.670 回答