我需要移动,剪切和放大将目录中的最新文件粘贴到新创建的文件夹位置。该文件由我没有权限的单独程序创建。新目录位置由批处理文件创建,该文件已在下面复制。我从代码示例中找到了一些基础。我把这些碎片拼凑起来只是有点麻烦。如何将最新文件从目录位置移动到新目录位置?
:: Auto directory date batch (MMDDYYYY format)
:: First parses month, day, and year into mm , dd, yyyy formats and then combines to be DDMMYYYY
:: Setups %date% variable
:: @author Deepu Mohan Puthrote www.deepumohan.com
@echo off
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B
SET date=%yyyy%%mm%%dd%
echo New folder name %date%
MKDIR %date%
我添加到第一个.bat将文件移动到新目录,因为我尝试将文件移动到新目录但是我收到了错误
FOR /F "delims=" %%I IN ('DIR . /B /O:-D') DO COPY %%I <<%date%>>
pause
&LT;&LT;此时出乎意料
答案 0 :(得分:3)
试试这个:
for /f "tokens=*" %%i in ('dir /od /b /a-d') do set "file=%%~i"
move "%file%" "%date%"
BTW:不要对批处理变量使用默认环境变量名称(日期)。
答案 1 :(得分:2)
您使用FOR
循环走在正确的轨道上。你只想做一个MOVE
而不是COPY
,然后在处理完第一个项目后退出循环。
FOR /F "delims=" %%I IN ('DIR . /B /O:-D /A-D') DO (
MOVE "%%I" "%date%"
GOTO :EOF
)
我在/A-D
中添加了DIR
以排除目录,并删除了<<
和>>
。 (我不确定为什么那些人会在那里开始。)