在桌面创建test目录,里面包含1、2、3文件夹,该三个路径中分别有1.txt、2.txt、3.txt
@echo off
for /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 /e
PAUSE
生产代码:
@echo off
::连接共享盘福
net use \\10.55.4.144 hbzq0817/user:hbzq
net use \\10.55.4.145 hbzq0817/user:hbzq
cd /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%\ATP
xcopy ./* 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_backup
net use \\10.55.4.144 /del
net 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 注释语句