Batch file 批处理文件以复制最近创建的文件
我不熟悉脚本,我在互联网上也有这个脚本,有人能逐行解释一下下面的代码是如何工作的吗Batch file 批处理文件以复制最近创建的文件,batch-file,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
@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%\"
非常感谢您的支持。好的,这并不复杂:
@echo off
:防止用户看到从批处理文件输入的命令(只能看到输出)
设置“var=value”
:创建一个名为var
的变量,其值为value
pushd“%source%”| |(echo.source不存在&暂停&转到EOF)
:
将当前目录更改为varaiblesource
值的目录,如果有任何输出(即,如果有错误),它将暂停并退出,并显示给定的erroro消息
对于/f“令牌=*”%%f in('dir/A-D/OD/B'),请设置“文件=%%f”
:
将遍历当前目录中的每个文件夹,并将varaiblefile
的值设置为其名称。它将按字母顺序执行此操作,因此此顺序最后一个目录将是文件的值
popd
:将当前目录设置为上一个pushd
命令之前的目录
xcopy/d/i“%source%\%file%”“%dest%\”
:复制目录中变量file
的值,该值已设置为source
,并将其复制到变量dest
的路径中
就这样。如果您想更好地了解如何使用这些命令,请参阅教程。好的,这并不复杂:
@echo off
:防止用户看到从批处理文件输入的命令(只能看到输出)
设置“var=value”
:创建一个名为var
的变量,其值为value
pushd“%source%”| |(echo.source不存在&暂停&转到EOF)
:
将当前目录更改为varaiblesource
值的目录,如果有任何输出(即,如果有错误),它将暂停并退出,并显示给定的erroro消息
对于/f“令牌=*”%%f in('dir/A-D/OD/B'),请设置“文件=%%f”
:
将遍历当前目录中的每个文件夹,并将varaiblefile
的值设置为其名称。它将按字母顺序执行此操作,因此此顺序最后一个目录将是文件的值
popd
:将当前目录设置为上一个pushd
命令之前的目录
xcopy/d/i“%source%\%file%”“%dest%\”
:复制目录中变量file
的值,该值已设置为source
,并将其复制到变量dest
的路径中
就这样。如果您想更好地了解如何使用这些命令,请参阅教程。@AlvinMovida如果您找到了,请更正我的答案useful@Monacraft你的文本中有一些错误。它不会遍历目录中的每个文件夹,它会遍历不是文件夹的所有内容。它还将按照日期顺序(而不是字母顺序)执行此操作。OP:需要注意的一点是,xcopy中的
/d
开关仅在源时间比目标时间新时才会复制文件。对于更健壮的批处理文件,如果您总是希望复制此文件,请删除/d
开关,并且FWIW也不需要/i
开关。有关这些开关的帮助,请参见cmd提示符下的XCOPY/?
。谢谢,实际上从未使用过XCOPY
,因为我的工作是围绕基本批处理作业和ftp服务器设置展开的,所以我只使用copy
@AlvinMovida。如果您找到了,请更正我的答案useful@Monacraft你的文本中有一些错误。它不会遍历目录中的每个文件夹,它会遍历不是文件夹的所有内容。它还将按照日期顺序(而不是字母顺序)执行此操作。OP:需要注意的一点是,xcopy中的/d
开关仅在源时间比目标时间新时才会复制文件。对于更健壮的批处理文件,如果您总是希望复制此文件,请删除/d
开关,并且FWIW也不需要/i
开关。有关这些开关的帮助,请参见cmd提示符下的XCOPY/?
。谢谢,实际上从未使用过XCOPY
,因为我的工作围绕基本批处理作业和ftp服务器设置展开,所以我只使用copy