标题: [其他] BAT脚本实现文件含身份证信息排错重命名 [打印本页]
作者: xp3000 时间: 2021-5-19 10:31 标题: BAT脚本实现文件含身份证信息排错重命名
本帖最后由 xp3000 于 2021-5-20 21:30 编辑
- @echo off
- for /f "delims=" %%a in ('more +6 "%0"') do (
- type nul>%%a
- )
- pause & exit /b
-
- :需要生成的文件在下面:
- 北京市 张三·000000000000000000000000000000000000000000.jpg
- 张三1719700515841131011719700229841131014666432·上海市.png
- 张三钦州市 45070119830228326X76543248765457.jpg.jpg.jpg.jpg
- 自贡市·510300198002299628510300198002299628855张三.png.png
- 张三0000000000000431103197602286731000000000000·永州市.jpg
复制代码
- @if(0)==(0) echo off&setlocal EnableDelayedExpansion
- @for /f "delims=" %%j in ('dir /b/a-d/on "*.jpg" "*.png"') do (
- @for /f "delims=" %%k in ('echo %%~nj^|cscript -nologo -e:jscript "%~f0"') do (
- del /f /s /q 身份证信息错误的文件.txt>nul 2>nul
- if "%%j" neq "%%k%%~xj" (
- set str=%%k&set year=!str:~6,4!&set month=!str:~10,2!&set day=!str:~12,2!
- if "2!day!" neq "229" (echo.身份证信息:%%k&echo.符合中华人民共和国第二代身份证号命名规则,即将重命名……
- ren "%%j" "%%k%%~xj"&echo.
- ) else (echo.检查到身份证为2月29日,计算平年闰年……
- set /a "y=^!(year%%4)&^!(^!(year%%100))|^!(year%%400)"&set /a x=28+!y!
- if !day! equ !x! (
- echo.出生年为闰年:2月!x!天………………………
- echo.身份证信息:%%k&echo.符合中华人民共和国第二代身份证号命名规则,即将重命名……
- ren "%%j" "%%k%%~xj"&echo.
- ) else (
- echo,出生年为平年:2月!x!天………………………
- echo.身份证信息:%%k&echo.身份证信息错误,忽略重命名…………………&echo.
- echo.%%j>>身份证信息错误的文件.txt
- )
- )
- ) else (
- echo %%j :文件已忽略……&echo.
- )
- )
- )
- )
- pause & exit /b
- @end
-
- var objShell = new ActiveXObject('Shell.Application');
-
- while(!WScript.StdIn.AtEndOfStream) {
- var strFile = WScript.StdIn.ReadLine();
- var strFile = strFile.replace(/.*([1-9][0-9]{5}(19|20)[0-9]{2}(([0][13-9]|11|12)([0][1-9]|[12][0-9]|30)|([0][13578]|10|12)(31)|02([0][1-9]|1[0-9]|2[0-8]|29))[0-9]{3}[0-9X]).*/g, '$1');
- WSH.Echo(strFile);
- }
复制代码
作者: Batcher 时间: 2021-5-19 12:42
回复 1# xp3000
感谢分享!希望可以帮助到有需要的人。
作者: xp3000 时间: 2021-5-20 21:40
- @echo off
- title 验证平年闰年工具
- :1
- SETLOCAL
- set /p year=请输入年份:
- if not defined year goto 1
-
- set /a "yp=!(year%%4)&!(!(year%%100))|!(year%%400)"
-
- if %yp%==0 (echo %year%年:平年2月28天) else (echo %year%年:闰年2月29天)
- ENDLOCAL
- GOTO 1
复制代码
发现验证平年闰年反了,现在调整过来了
作者: 1152 时间: 2021-5-21 12:16
非常有用
作者: 1152 时间: 2021-5-21 12:16
谢谢分享,
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |