Мне нужен пакетный файл, который переместит все файлы из одной папки в другую, с возможностью запланировать это как задачу, которая будет запускаться дважды в день.
Я знаю всю команду перемещения и т. д., но, похоже, перемещается по одному файлу или целой папке.
Мне нужно, чтобы папка осталась, а файлы внутри переместились.
Привет, Кайл!
решение1
Следующий сценарий может помочь:
@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
Для объяснения см. rem
комментарии иРесурсы(обязательно к прочтению):
- (справочник команд)Индекс AZ командной строки Windows CMD
- (дополнительные особенности)Синтаксис командной строки оболочки Windows CMD
- (
%~#
и т.д. специальная страница)Аргументы командной строки (параметры) - (
>>
и2>&1
т.д. специальная страница)Перенаправление