1

我需要将目录中的最新文件移动、剪切和粘贴到新创建的文件夹位置。该文件是由我没有权限的单独程序创建的。新的目录位置是由下面复制的批处理文件创建的。我从代码示例中找到了一些基础。我只是有点麻烦把这些碎片放在一起。如何将最新文件从目录位置移动到新目录位置?

:: 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

<<此时出乎意料

4

2 回答 2

3

尝试这个:

for /f "tokens=*" %%i in ('dir /od /b /a-d') do set "file=%%~i"
move "%file%" "%date%"

顺便说一句:不要对批处理变量(日期)使用默认环境变量名称。

于 2013-03-14T22:01:23.883 回答
2

您的FOR循环走在正确的轨道上。您只想做一个MOVE而不是COPY,然后在处理第一个项目后退出循环。

FOR /F "delims=" %%I IN ('DIR . /B /O:-D /A-D') DO (
    MOVE "%%I" "%date%"
    GOTO :EOF
)

我添加/A-DDIR排除目录,并删除了<<and >>。(我不确定为什么一开始就在那里。)

于 2013-03-14T18:08:02.200 回答