高分求助-用bat命令获取文件名、文件路径、修改日期并列表

高分求助-用bat命令获取文件名、文件路径、修改日期并列表,第1张

@Echo off

:: +-----------------------------------------------+ ::

:: | BAT-GO团员wkdxz At:2010-08-21 13:58:43 | ::

:: +-----------------------------------------------+ ::

setlocal enabledelayedexpansion&pushd %~dp0

(for %%b in ("D:\My Documents\01" "D:\My Documents\02" "D:\My Documents\03" "D:\My Documents\04") do for /f "delims=" %%a in ('dir /s/b/a-d "%%~b\a" 2^>nul') do (

set xz=%%~ta

echo %%~nxa,%%~dpa,!xz:~,10!))>xzcsv

set /p choise=是否要立刻打开列表文件(y/n)[y]:

if /i "%choise%"==n (exit /b) else start "" xzcsv

新建一个Excel文件,将原文件名、修改后文件名按照中格式,输入到表中。(行数不限)

新建一个txt文件,将表格内容复制到txt文件中。

将新建的txt文件另存为“重命名bat”

将bat文件与需要重命名的文件放在同一文件夹下面,然后双击“重命名bat”

不清楚你的实际文件/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xxbat,编码选ANSI,跟要处理的文件放一起双击运行

<# :

cls&echo off&cd /d "%~dp0"&mode con lines=5000

rem 将当前目录里多个jpg文件按照拍摄日期划分/归类到不同文件夹里

set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4

title %#% +%$%%$%/%_% %z%

set "current=%cd%"

powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"

echo;%#% +%$%%$%/%_% %z%

pause

exit

#>

$b=[Convert]::FromBase64String("IC0tPiA=");

$c=[TextEncoding]::DefaultGetString($b);

Add-Type -AssemblyName 'Systemdrawing';

$current=$env:current;

$files=@(dir -literal $current|{(@("jpg","jpeg") -contains $_Extension) -and ($_ -is [SystemIOFileInfo])});

for($i=0;$i -lt $fileslength;$i++){

    $t='';

    $img=[SystemDrawingImage]::FromFile($files[$i]FullName);

    foreach($it in $imgPropertyItems){

        if($itId -eq 0x9003){

            $t=[SystemTextEncoding]::ASCIIGetString($itValue) -replace '\x00$','';

            break;

        }

    }

    $imgDispose();

    if($t -ne ''){

        $newfolder=($ttrim()replace(':','-') -split '\s+')[0];

        if(-not (test-path -literal $newfolder)){[void][IODirectory]::CreateDirectory($newfolder);}

        $files[$i]Name+$c+$newfolder;

    }

}

一种方法是使用一个命令行工具叫做 TimeBackexe,它可以修改文件的创建时间和修改时间。您可以下载这个工具,并将它和一个批处理脚本放在同一个文件夹下,然后运行批处理脚本。批处理脚本的内容大致如下:

@echo off

for %%a in (mp4) do (

for /f "tokens=1-6 delims=/: " %%b in ('TimeBack /f "%%a" ^| find "创建时间"') do (

ren "%%a" "%%a-%%b%%c%%d-%%e%%fmp4"

)

)

这个脚本会遍历当前文件夹下的所有 mp4 文件,读取它们的创建时间,并在文件名后面加上日期和时间。如果您想修改时间格式或者其他细节,您可以根据自己的需要修改脚本。

另一种方法是使用一个软件叫做 Bulk Rename Utility,它是一个强大的批量重命名工具,支持多种规则和选项。您可以下载并安装这个软件,然后打开它,选择您想要重命名的 mp4 文件,在右侧的面板中设置好重命名规则,并点击开始按钮。重命名规则中有一个选项叫做 Date (7) ,它可以让您根据文件的创建日期或者修改日期来重命名文件。您可以在这里选择合适的日期格式和分隔符。

以下批处理能实现:

1、每次检查1txt的修改时间

2、与上一次记录的时间对比

3、相同不做任何处理,不同则在2_logtxt中记1笔时间变化记录

4、更新2txt的时间

请把下面的批处理存为mymonitorbat

@echo off

@if not exist 2txt @for /f "tokens=1,2 delims= " %%a in ('dir d:\1txt^|find "20"') do @echo %%a %%b>2txt

@for /f "tokens=1,2 delims= " %%a in ('dir d:\1txt^|find "20"') do @echo %%a %%b>_2txt

@set /p old= <2txt

@set /p new= <_2txt

@if not %old%==%new% (

@echo Record %date% %time%: file %1 modified time changed to %new%>>2_logtxt

@del 2txt

@ren _2txt 2txt

)

自动发送邮件这个我就没办法了,有个smtpsendexe可以实现cmd下发邮件,但您的域里必须有台smtp服务器才行,如果您有那从网上就能下载,写好命令加到最后一行括号前就行了。

以上就是关于高分求助-用bat命令获取文件名、文件路径、修改日期并列表全部的内容,包括:高分求助-用bat命令获取文件名、文件路径、修改日期并列表、bat 获得当前时间然后重命名一个文件、bat或其他命令执行获取图片创建时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9494236.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存