批处理文件以复制创建的最新文件

时间:2013-10-03 06:50:48

标签: batch-file

我是脚本新手,我在互联网上有这个脚本,有谁能请一行一行地解释下面的代码是如何工作的?

@echo off

set "source=C:\temp"
set "dest=c:\paste"

pushd "%source%" ||(
   echo.Source does not exist&pause&goto EOF)

for /f "tokens=*" %%f in (
   'dir /A-D /OD /B') Do set "file=%%f"

popd

xcopy /d /i "%source%\%file%" "%dest%\"

非常感谢您的支持。

1 个答案:

答案 0 :(得分:1)

好吧,不要太复杂:

@echo off :阻止用户查看批处理文件中输入的命令(只能看到输出)

set "var=value" :创建一个名为var的变量,其值为value

pushd "%source%" ||(echo.Source does not exist&pause&goto EOF)

将当前目录更改为varaible source的值,如果有任何输出(即如果有错误),它将暂停并退出给定的erroro消息

<强> for /f "tokens=*" %%f in ('dir /A-D /OD /B') Do set "file=%%f"

将遍历当前目录中的每个文件夹,并将varaible file的值设置为其名称。它将按字母顺序执行此操作,因此此顺序中的最后一个目录将是file的值

popd :将当前目录设置为上一个pushd命令之前的目录

xcopy /d /i "%source%\%file%" "%dest%\" :复制已设置为file值的目录中变量source的值,并将其复制到变量dest

的路径

就是这样。如果您想更好地理解如何使用这些命令,请查找教程。