【问题标题】:batch file to copy the Most Recent File created用于复制创建的最新文件的批处理文件
【发布时间】:2013-10-03 06:50:47
【问题描述】:

我是脚本新手,我在互联网上有这个脚本,任何人都可以逐行解释以下代码的工作原理吗?

@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%\"

非常感谢您的支持。

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    好的,这并不复杂:

    @echo off:防止用户看到从批处理文件中输入了什么命令(只能看到输出)

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

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

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

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

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

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

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

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

    【讨论】:

    • @AlvinMovida 如果您觉得我的回答有用,请让我的回答正确
    • @Monacraft 您的文字有一些错误。它不会遍历目录中的每个文件夹,它会遍历 NOT 文件夹中的所有内容。它也会按日期顺序(不按字母顺序)
    • @ OP:需要注意的一点是,xcopy 中的/d 开关只会在source time is newer than the destination time 时复制文件。对于更强大的批处理文件,如果您始终希望复制此文件,请删除 /d 开关,并且 FWIW 也不需要 /i 开关。在 cmd 提示符下查看 XCOPY /? 以获取有关这些开关的帮助。
    • 谢谢,实际上从未使用过xcopy,因为我的工作围绕着基本的批处理作业和ftp 服务器设置,我只使用copy
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    相关资源
    最近更新 更多