o que procuro é um arquivo em lote que mova todos os arquivos de uma pasta para outra, com o objetivo de agendar isso como uma tarefa para ser executada duas vezes ao dia.
Eu conheço todo o comando move, etc., mas parece ser um arquivo por vez ou a própria pasta
preciso que a pasta permaneça lá, mas os arquivos dentro dela sejam movidos
Felicidades Kyle
Responder1
O próximo script pode ajudar:
@ECHO OFF >NUL
SETLOCAL enableextensions
set "folderIn=D:\test\Files In"
set "folderOu=D:\test\Files Out"
set "logFile=%folderOu%\movelog.txt"
set "logToDo=>> "%logFile%" 2>&1"
rem above line causes that moved file names will be logged to file %logFile%
rem unrem next line if you need no log
rem set "logToDo="
set /A "filesInNo=0"
for /f "tokens=*" %%# in ('dir /B "%folderIn%\*.*" 2^>NUL') do set /A "filesInNo+=1"
(
echo === %date% %time% === %filesInNo%
if %filesInNo% GTR 0 (
move /Y "%folderIn%\*.*" "%folderOu%\"
) else (
rem Nothing to copy
)
)%logToDo%
rem next line for debugging purposes only
if not "%*"=="" type "%logFile%"
ENDLOCAL
goto :eof
Para explicação, veja rem
comentários eRecursos(leitura obrigatória):
- (referência de comando)Um índice AZ da linha de comando do Windows CMD
- (particularidades adicionais)Sintaxe de linha de comando do shell CMD do Windows
- (
%~#
etc. página especial)Argumentos de linha de comando (parâmetros) - (
>>
,2>&1
etc. página especial)Redirecionamento