将文件批量重命名为更有意义的名称
Batch renaming files to a more meaningful name
很快我将开始收到每晚上传的 zip 文件,这些信息需要重命名以使其更有意义。每天晚上都会上传一个 zip 文件,其标签类似于 CallRecording_1-000.zip
。提取后,它将包含以下文件集:
index.html
index.xml
AT1_ID1_TT3_ID2-1607458932.2.WAV
AT1_ID1_TT3_ID2-1607458948.4.WAV
AT1_ID1_TT3_ID6-1607458983.6.WAV
XML 文件包含以下内容:
<all>
<recording_index recapp_id="" recapp_name="" last_generated="0">
<day_index date="2020-12-08">
<recording target_name="Unknown recording" filename="warning%3A" filesize="0" date="1969-12-31 19:00" source="" destination=""/>
<recording target_name="1+ Dialing (11 Digits)" filename="AT1_ID1_TT3_ID2-1607458932.2.WAV" filesize="26K" date="2020-12-08 15:22" source="Softphone Test4" destination="15545595331"/>
<recording target_name="1+ Dialing (11 Digits)" filename="AT1_ID1_TT3_ID2-1607458948.4.WAV" filesize="45K" date="2020-12-08 15:23" source="Softphone Test3" destination="15559639584"/>
<recording target_name="10 Digit Dialing" filename="AT1_ID1_TT3_ID6-1607458983.6.WAV" filesize="59K" date="2020-12-08 15:23" source="Softphone Test4" destination="9545596535"/>
</day_index>
</recording_index>
</all>
我要做的是将一系列文件名转换为上面显示的标签的组合。
期望输出
AT1_ID1_TT3_ID2-1607458948.4.wav
应重命名为 date_source_destination.wav
。根据日期格式如何包含文件名的“禁止”文本,source_destination.wav
就足够了,除非有办法将日期格式转换为 mm-dd-yyyy
基于上述示例的最终输出示例:
AT1_ID1_TT3_ID2-1607458948.4.wav
= 2020-12-08_Softphone Test3_15559639584.wav
为了简单的意图和目的。我正在生成一个 bat 文件,它将在标记为 ExtractFolder
的临时目录中创建,稍后将使用上传日期重命名。
@echo off
for %%z in ("ExtractFolder\AT1*.WAV") do (
for /f tokens^=4^,8^,10^,12^ delims^=^" %%a in ('type "ExtractFolder\index.xml"^|find /i "%%~nxz"') do (
for /f "tokens=1,2 delims=:" %%t in ("%%b") do (
ECHO ren "%%z" "%%t-%%u_%%c_%%d%%~xz"
)
)
)
输出:
ren "ExtractFolder\AT1_ID1_TT3_ID2-1607458932.2.WAV" "2020-12-08 15-22_Softphone Test4_15545595331.WAV"
ren "ExtractFolder\AT1_ID1_TT3_ID2-1607458948.4.WAV" "2020-12-08 15-23_Softphone Test3_15559639584.WAV"
ren "ExtractFolder\AT1_ID1_TT3_ID6-1607458983.6.WAV" "2020-12-08 15-23_Softphone Test4_9545596535.WAV"
注意:我只是通过回显来“解除”ren
命令。当您确定 ECHO
符合您的要求时,请将其删除。
注意:这在很大程度上取决于 xml
文件的格式,不能保证。如果你认为,格式可能会改变,最好切换到一种可以正确解析 xml
的语言(批处理不能)
很快我将开始收到每晚上传的 zip 文件,这些信息需要重命名以使其更有意义。每天晚上都会上传一个 zip 文件,其标签类似于 CallRecording_1-000.zip
。提取后,它将包含以下文件集:
index.html
index.xml
AT1_ID1_TT3_ID2-1607458932.2.WAV
AT1_ID1_TT3_ID2-1607458948.4.WAV
AT1_ID1_TT3_ID6-1607458983.6.WAV
XML 文件包含以下内容:
<all>
<recording_index recapp_id="" recapp_name="" last_generated="0">
<day_index date="2020-12-08">
<recording target_name="Unknown recording" filename="warning%3A" filesize="0" date="1969-12-31 19:00" source="" destination=""/>
<recording target_name="1+ Dialing (11 Digits)" filename="AT1_ID1_TT3_ID2-1607458932.2.WAV" filesize="26K" date="2020-12-08 15:22" source="Softphone Test4" destination="15545595331"/>
<recording target_name="1+ Dialing (11 Digits)" filename="AT1_ID1_TT3_ID2-1607458948.4.WAV" filesize="45K" date="2020-12-08 15:23" source="Softphone Test3" destination="15559639584"/>
<recording target_name="10 Digit Dialing" filename="AT1_ID1_TT3_ID6-1607458983.6.WAV" filesize="59K" date="2020-12-08 15:23" source="Softphone Test4" destination="9545596535"/>
</day_index>
</recording_index>
</all>
我要做的是将一系列文件名转换为上面显示的标签的组合。
期望输出
AT1_ID1_TT3_ID2-1607458948.4.wav
应重命名为 date_source_destination.wav
。根据日期格式如何包含文件名的“禁止”文本,source_destination.wav
就足够了,除非有办法将日期格式转换为 mm-dd-yyyy
基于上述示例的最终输出示例:
AT1_ID1_TT3_ID2-1607458948.4.wav
= 2020-12-08_Softphone Test3_15559639584.wav
为了简单的意图和目的。我正在生成一个 bat 文件,它将在标记为 ExtractFolder
的临时目录中创建,稍后将使用上传日期重命名。
@echo off
for %%z in ("ExtractFolder\AT1*.WAV") do (
for /f tokens^=4^,8^,10^,12^ delims^=^" %%a in ('type "ExtractFolder\index.xml"^|find /i "%%~nxz"') do (
for /f "tokens=1,2 delims=:" %%t in ("%%b") do (
ECHO ren "%%z" "%%t-%%u_%%c_%%d%%~xz"
)
)
)
输出:
ren "ExtractFolder\AT1_ID1_TT3_ID2-1607458932.2.WAV" "2020-12-08 15-22_Softphone Test4_15545595331.WAV"
ren "ExtractFolder\AT1_ID1_TT3_ID2-1607458948.4.WAV" "2020-12-08 15-23_Softphone Test3_15559639584.WAV"
ren "ExtractFolder\AT1_ID1_TT3_ID6-1607458983.6.WAV" "2020-12-08 15-23_Softphone Test4_9545596535.WAV"
注意:我只是通过回显来“解除”ren
命令。当您确定 ECHO
符合您的要求时,请将其删除。
注意:这在很大程度上取决于 xml
文件的格式,不能保证。如果你认为,格式可能会改变,最好切换到一种可以正确解析 xml
的语言(批处理不能)