Board logo

标题: [日期时间] [已解决]批处理怎样获取完整的文件创建时间需要到秒? [打印本页]

作者: yangfengoo    时间: 2018-8-21 15:18     标题: [已解决]批处理怎样获取完整的文件创建时间需要到秒?

本帖最后由 yangfengoo 于 2019-7-12 21:39 编辑

获取完整的文件创建时间需要到秒
dir 命令只能到分钟 还有其它命令吗?
[attach]11400[/attach]
这几天整理照片发现新问题,经过几次存储转移后,创建时间会改变不准确,观察后发展拍摄时间才是不会变,能不能获取详细信息里照片的拍摄时间,需要精确到秒,手机上网不能传图片。
最好是bat代码,其它代码亦可。


http://www.bathome.net/thread-15792-1-1.html
作者: Batcher    时间: 2018-8-21 17:02

  1. wmic datafile where "Name='C:\\Test\\a.txt'" get CreationDate /value
复制代码

作者: yhcfsr    时间: 2018-8-21 17:30

  1. @set @n=0/*&echo off
  2. dir /a-d/s/b|Cscript -nologo -e:jscript "%~f0"
  3. pause&exit /b */
  4. var fso=new ActiveXObject('scripting.FileSystemObject');
  5. while(!WSH.StdIn.AtEndOfStream)
  6. {
  7. file=fso.GetFile(WSH.StdIn.ReadLine());
  8. WSH.Echo(file.DateCreated,'\t'+file);
  9. }
复制代码
把脚本放在源目录
作者: yangfengoo    时间: 2018-8-21 20:35

回复 3# yhcfsr


    VBS代码不了解,运行没问题,第9行要小修一下我要的是圈起来的时间。
作者: yhcfsr    时间: 2018-8-22 07:12

本帖最后由 yhcfsr 于 2018-8-22 07:18 编辑

有意思,标题是创建日期,图片是修改日期.顺便说下,这是JS,虽然和VBS没有区别
最近的修改日期:file.DateLastModified
最近的访问日期:file.DateLastAccessed

作者: WHY    时间: 2018-8-22 09:59

  1. PowerShell "dir 'E:\Test\' -Recurse | ?{$_ -is [IO.FileInfo]} | ForEach{$_.LastWriteTime.ToString('yyyy-MM-dd HH:mm:ss') + ' ' + $_.FullName}"
复制代码

作者: yangfengoo    时间: 2019-7-10 21:56

本帖最后由 yangfengoo 于 2019-7-10 21:56 编辑


获取完整的文件创建时间需要到秒
dir 命令只能到分钟 还有其它命令吗?

这几天整理照片发现新问题,经过几次存储转移后,创建时间会改变不准确,观察后发展拍摄时间才是不会变,能不能获取详细信息里照片的拍摄时间,需要精确到秒,手机上网不能传图片。
最好是bat代码,其它代码亦可。
作者: WHY    时间: 2019-7-12 11:03

PowerShell 脚本
  1. [void][Reflection.Assembly]::LoadWithPartialName('System.Drawing');
  2. forEach ( $file In (dir E:\Test\*.jpg -File) ){
  3.     $image = [System.Drawing.Image]::fromFile($file.FullName);
  4.     try {
  5.         $propItem = $image.GetPropertyItem(0x9003).Value;        #0x9003=拍摄时间;0x0132=最后更新时间
  6.         $dateStr  = [char[]]$propItem -join '' -replace '\x00$'; #日期字符串
  7.         $dateStr + "`t" + $file.Name;
  8.     } catch {
  9.         "NULL`t`t`t" + $file.Name;   #无拍摄日期时回显NULL
  10.     }
  11. }
  12. pause
复制代码
结果:
2019:07:11 08:12:18     img002.jpg
NULL                    img004.jpg
2019:07:11 08:12:32     img100.jpg
2019:07:11 08:11:47     img101.jpg
作者: WHY    时间: 2019-7-12 11:16

本帖最后由 WHY 于 2019-7-12 13:17 编辑

Test.bat
需要下载第三方工具jhead.exe
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1* delims=:" %%i in ('jhead *.jpg ^| findstr /b /r /i /c:"File Name" /c:"Date/Time"') do (
  4.     set "curLine=%%j"
  5.     if "!curLine::=!" NEQ "!curLine!" (
  6.         echo;!curLine:~1! !preLine!
  7.     ) else if /i "!preLine:~-3!" EQU "jpg" (
  8.         echo;NULL !preLine!
  9.     )
  10.     set "preLine=%%j"
  11. )
  12. if /i "!preLine:~-3!" EQU "jpg" (echo;NULL !preLine!)
  13. pause
复制代码
结果:
2019:07:11 08:12:18      img002.jpg
NULL                     img004.jpg
2019:07:11 08:12:32      img100.jpg
2019:07:11 08:11:47      img101.jpg
请按任意键继续. . .
作者: yangfengoo    时间: 2019-7-12 21:40

回复 8# WHY


    感谢




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2