本文共 1624 字,大约阅读时间需要 5 分钟。
在桌面创建test目录,里面包含1、2、3文件夹,该三个路径中分别有1.txt、2.txt、3.txt
@echo offfor /f "delims=" %%a in ('dir /b /ad /od "C:\Users\23597\Desktop\test"') do ( set "folder=%%~fa")rem 打开了修改日期最新的文件夹rem start explorer "%folder%"rem 显示文件夹rem dir /on/b %folder%cd %folder%xcopy %folder%\*.* ..\ /y /s /ePAUSE
生产代码:
@echo off ::连接共享盘福net use \\10.55.4.144 hbzq0817/user:hbzqnet use \\10.55.4.145 hbzq0817/user:hbzqcd /d V:\importFiles\md %date:~0,4%%date:~5,2%%date:~8,2%cd /d X:for /f "delims=" %%a in ('dir /b /ad /od "x:"') do ( set "folder=%%~fa")cd /d %folder%\ATPxcopy ./* V:\importFiles\%date:~0,4%%date:~5,2%%date:~8,2%\ /y::备份xcopy V:\importFiles\%date:~0,4%%date:~5,2%%date:~8,2%\* D:\khxx_backupnet use \\10.55.4.144 /delnet use \\10.55.4.145 /del
说明:
setlocal enabledelayedexpansion:开启本地环境变量延迟扩展阅读:
批处理运行命令的机制:批处理读取命令时是按行读取的(对于for命令等,其后用一对圆括号闭合的所有语句也当作一行),在处理之前要完成必要的预处理工作,这其中就包括对该行命令中的变量(%var_name%)赋值。开启本地环境变量延迟后,在读取了一条完整的语句之后,不立即对该行的变量赋值,而是在执行某个单条语句之前再对变量进行赋值,也就是说“延迟”了对变量的赋值。开启本地环境变量延迟后,原有变量的界定符由 “%” 改成"!"for循环语法
for /f %variable IN (‘command’) DO command [command-parameters]dir /o-d /tc /b test*.html:按文件创建时间降序显示test开头的.html文件
dir命令选项
/b 使用空格式(没有标题信息或摘要)。 /o 用分类顺序列出文件。 排列顺序:d 按日期/时间(从先到后) - 反转顺序的前缀 /t 控制显示或用来分类的时间字符域。 c 创建时间a 上次访问时间 w 上次写入的时间例:
dir /od:按日期/时间升序显示 dir /o-d:按日期/时间降序显示 dir /tw: 时间列输出为修改时间(默认)if not !filename! == “” (
goto iconv ) 如果变量filename不为空,则表示取到了值, goto iconv 跳转到iconv标签,继续执行标签后的语句%%a:文件完整信息
%%~da:文件所在驱动器信息 %%~pa:文件所在路径信息 %%~na:文件名信息 %%~xa:文件后缀信息 %%~za:文件大小信息 %%~ta:文件修改时间信息 %%~dpa:文件所在驱动器和所在路径信息 %%~nxa:文件名及后缀信息 %%~pnxa:文件所在路径及文件名和后缀信息 %%~dpna:文件驱动器、路径、文件名信息 %%~dpnxa:文件驱动器、路径、文件名、后缀信息rem 注释语句
转载地址:http://eufci.baihongyu.com/