如果文件的大小不再改变(完全处理),我想将文件从 dir1 移动到 dir2。一个可能的参加是询问 size0(在 0 秒)和 size10(在 10 秒),如果 size0=size10,而不是将文件从 dir1 移动到 dir2。
如何在 windows xp 的命令行中执行此操作?
如果文件的大小不再改变(完全处理),我想将文件从 dir1 移动到 dir2。一个可能的参加是询问 size0(在 0 秒)和 size10(在 10 秒),如果 size0=size10,而不是将文件从 dir1 移动到 dir2。
如何在 windows xp 的命令行中执行此操作?
尝试这个:
@ECHO OFF &SETLOCAL
CD /d dir1
:loop
FOR %%a IN (file) DO SET "size=%%~za"
PING -n 10 localhost >NUL
FOR %%a IN (file) DO IF %%~za equ %size% (move "%%~a" dir2) ELSE GOTO :loop
像这样的东西可能会起作用:
@echo off
setlocal
set "file=C:\path\to\your.file"
set "destination=D:\some\folder"
:loop
call :GetSize "%file%" s1
call :Sleep 10
call :GetSize "%file%" s2
if %s1% neq %s2% goto loop
call :MoveUnlessExists "%file%"
goto :eof
:GetSize
set "%~2=%~z1"
goto :eof
:Sleep
set /a "n=%1+1"
ping -n %n% 127.0.0.1 >nul
goto :eof
:MoveUnlessExists
if not exist "%destination%\%~nx1" move "%~f1" "%destination%\"
goto :eof