本帖最后由 fatcat 于 2012-4-20 14:30 编辑
回复 12# tousyo88 - @echo off & setlocal enabledelayedexpansion
-
- REM 备份原始日期时间格式
- for /f "tokens=2*" %%a in ('reg query "HKCU\Control Panel\International" /v sShortDate^|find/i"sSh"') do set "sShortDate=%%~b"
- for /f "tokens=2*" %%a in ('reg query "HKCU\Control Panel\International" /v sTimeFormat^|find/i"sTi"') do set "sTimeFormat=%%~b"
-
- REM 修改日期时间格式
- >nul reg add "HKCU\Control Panel\International" /v sShortDate /t REG_SZ /d "yyyyMMdd" /f
- >nul reg add "HKCU\Control Panel\International" /v sTimeFormat /t REG_SZ /d "HH:mm:ss" /f
-
- set "dttm=!date!|!time:~0,8!"
-
- cd /d "d:\szt"
- for /f "delims=" %%i in ('dir /x/b/a-d/on') do echo %%~nxi^|%%~zi^|!dttm!
-
- REM 还原原始日期时间格式
- >nul reg add "HKCU\Control Panel\International" /v sShortDate /t REG_SZ /d "!sShortDate!" /f
- >nul reg add "HKCU\Control Panel\International" /v sTimeFormat /t REG_SZ /d "!sTimeFormat!" /f
-
- pause
- exit
复制代码 用 date, time 这两个环境变量获取的是当前的系统日期和时间, 不是文件相关的日期时间
要想 %%~zi 能成功扩展, 2 种方式可选: 1. 工作目录先行设置为 "d:\szt"; 2. 用 dir 的 /s 参数显示文件的全路径, 但若有子目录, 也会把文件列出.
^| 是避免 | 成为 管道, 转义只需在左边加上 ^ |