Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 对视频批处理文件重命名器进行最后润色/调整_Datetime_Batch File_Rename_Batch Processing - Fatal编程技术网

Datetime 对视频批处理文件重命名器进行最后润色/调整

Datetime 对视频批处理文件重命名器进行最后润色/调整,datetime,batch-file,rename,batch-processing,Datetime,Batch File,Rename,Batch Processing,当前代码: @echo off setlocal EnableExtensions EnableDelayedExpansion :: Create Empty Folder rd /Q "%Temp%\Temp" 2>nul & mkdir "%Temp%\Temp" :: Loop through Folders pushd "xPath=c:\processing" for /d %%D in (*) do call :Process "%%~fD" popd goto

当前代码:

@echo off
setlocal EnableExtensions EnableDelayedExpansion

:: Create Empty Folder
rd /Q "%Temp%\Temp" 2>nul & mkdir "%Temp%\Temp"

:: Loop through Folders
pushd "xPath=c:\processing"
for /d %%D in (*) do call :Process "%%~fD"
popd
goto End


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:Process <Parent>
:: Folder Name
set "xFolder=%~nx1"

:: Set Sub Folder
if not exist "%~1\VIDEO\" goto :eof
pushd "%~1\VIDEO"

:: Loop through Videos
for /f "delims=" %%A in ('dir *.avi /b') do if exist "%%~fA" (
    set "xDateWritten=%%~tA"
    set "xDateGMT=0000/00/00 00:00:00"
    for /f "tokens=1,2" %%X in ('robocopy . "%Temp%\Temp" "%%~nxA" /TS /FP /NS /NC /NP /NJH /NJS /NDL /L') do set "xDateGMT=%%X %%Y"
    rem Format = FF-FF-YYYYMMDD-HHhMMmSSs-FF-FF.ext
set "xFrame=00,00000"
for /f %%X in ('exiftool -p "$Framerate,$Framecount" "%%~fA"') do set "xFrame=%%~X"
set "xSize=%%~zA"
set "xName=%xFolder:~0,2%-%xFolder:~2,2%-!xDateWritten:~6,4!!xDateWritten:~0,2!!xDateWritten:~3,2!-!xDateWritten:~11,2!h-!xDateWritten:~14,2!m-!xDateGMT:~17,2!s-%xFolder:~4,2%-%xFolder:~6,2%%%~xA"
echo !xName!
ren "%%~fA" "!xName!"
echo !xName!,!xSize!,!xFrame!>>C:\processing\RenameOutput.csv
)
popd
goto :eof


:End
endlocal
pause
@echo关闭
setlocal EnableExtensions EnableDelayedExpansion
::创建空文件夹
rd/Q“%Temp%\Temp”2>nul&mkdir“%Temp%\Temp”
::循环浏览文件夹
pushd“xPath=c:\processing”
对于(*)中的/d%%d,执行调用:处理“%%~fD”
邻苯二胺
转到终点
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:进程
::文件夹名称
设置“xFolder=%~nx1”
::设置子文件夹
如果不存在“%~1\VIDEO\”转到:eof
pushd“%~1\VIDEO”
::循环浏览视频
对于/f“delims=”('dir*.avi/b')中的%%A,如果存在则执行“%%~fA”(
设置“xDateWrite=%%~tA”
设置“xDateGMT=0000/00/00:00:00”
对于('robocopy.%Temp%\Temp”“%~nxA”/TS/FP/NS/NC/NP/NJH/NJS/NDL/L)中的/f“令牌=1,2”%%X,请设置“xDateGMT=%%X%%Y”
rem格式=FF-FF-YYYYMMDD-HHMMMSSS-FF-FF.ext
设置“xFrame=0000000”
对于/f%%X in('exiftool-p“$Framerate,$Framecount”“%%~fA“'),请设置“xFrame=%%~X”
设置“xSize=%%~zA”
设置“xName=%xFolder:~0,2%-%xFolder:~2,2%-!xDateWrited:~6,4!!xDateWrited:~0,2!!xDateWrited:~3,2!-!xDateWrited:~11,2!h-!xDateWrited:~14,2!m-!xDateGMT:~17,2!s-%xFolder:~4,2%-%xFolder:~6,2%%xA”
echo!xName!
任“%%~fA”!xName!”
echo!xName!,!xSize!,!xFrame!>>C:\processing\RenameOutput.csv
)
邻苯二胺
后藤:eof
:结束
端部
暂停
我以前认为我的文件夹结构是:

C:\processing\15010107\Video\files.avi

,但事实上

C:\processing\15010107\Video\filedate\files.avi

,所以我需要它比以前多搜索一个子文件夹


此外,重命名的文件需要具有24小时格式,目前它输出的是pm时间,但没有pm标志,这可能会与am文件混淆。

我认为这些更改应该涵盖您的新问题

  • 将文件夹循环更改为同时循环子
    filedate
    文件夹
  • Process
    函数现在采用两个参数,即
    parent
    文件夹和
    current
    文件夹
  • 小时现在调整为24小时格式
  • 完整脚本(添加注释)

    @echo关闭
    setlocal EnableExtensions EnableDelayedExpansion
    ::创建空文件夹
    rd/Q“%Temp%\Temp”2>nul&mkdir“%Temp%\Temp”
    ::循环浏览文件夹
    pushd“xPath=c:\processing”
    对于(*)中的/d%%d,如果存在请执行“%%~fD\VIDEO\”(
    pushd“%%~fD\VIDEO\”
    对于(*)中的/d%%S,执行调用:处理“%%~fD”“%%~fS”
    邻苯二胺
    )
    邻苯二胺
    转到终点
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    :进程
    ::文件夹名称
    设置“xFolder=%~nx1”
    ::设置工作目录
    如果不存在“%~f2”转到:eof
    pushd“%~f2”
    ::循环浏览视频
    对于/f“delims=”('dir*.avi/b')中的%%A,如果存在则执行“%%~fA”(
    rem检索文件时间戳
    设置“xDateWrite=%%~tA”
    rem使用RoboCopy检索秒数
    设置“xDateGMT=0000/00/00:00:00”
    对于('robocopy.%Temp%\Temp”“%~nxA”/TS/FP/NS/NC/NP/NJH/NJS/NDL/L)中的/f“令牌=1,2”%%X,请设置“xDateGMT=%%X%%Y”
    rem检索视频帧信息
    设置“xFrame=0000000”
    对于/f%%X in('exiftool-p“$Framerate,$Framecount”“%%~fA“'),请设置“xFrame=%%~X”
    rem检索文件大小
    设置“xSize=%%~zA”
    rem调整为24小时
    设置“xHour=!xDateWrited:~11,2!”
    如果“!xDateWrited:~17,2!”==“PM”集/a“xHour+=12”
    rem格式=FF-FF-YYYYMMDD-HHh-MMm-SSs-FF-FF.ext
    设置“xName=%xFolder:~0,2%-%xFolder:~2,2%-!xDateWrited:~6,4!!xDateWrited:~0,2!!xDateWrited:~3,2!-!xHour!h-!xDateWrited:~14,2!m-!xDateGMT:~17,2!s-%xFolder:~4,2%-%xFolder:~6,2%%xFolder:~xA”
    rem显示、重命名和保存
    echo!xName!
    任“%%~fA”!xName!”
    echo!xName!,!xSize!,!xFrame!>>C:\processing\RenameOutput.csv
    )
    邻苯二胺
    后藤:eof
    :结束
    端部
    暂停
    
    我认为这些更改应该涵盖您的新问题

  • 将文件夹循环更改为同时循环子
    filedate
    文件夹
  • Process
    函数现在采用两个参数,即
    parent
    文件夹和
    current
    文件夹
  • 小时现在调整为24小时格式
  • 完整脚本(添加注释)

    @echo关闭
    setlocal EnableExtensions EnableDelayedExpansion
    ::创建空文件夹
    rd/Q“%Temp%\Temp”2>nul&mkdir“%Temp%\Temp”
    ::循环浏览文件夹
    pushd“xPath=c:\processing”
    对于(*)中的/d%%d,如果存在请执行“%%~fD\VIDEO\”(
    pushd“%%~fD\VIDEO\”
    对于(*)中的/d%%S,执行调用:处理“%%~fD”“%%~fS”
    邻苯二胺
    )
    邻苯二胺
    转到终点
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    :进程
    ::文件夹名称
    设置“xFolder=%~nx1”
    ::设置工作目录
    如果不存在“%~f2”转到:eof
    pushd“%~f2”
    ::循环浏览视频
    对于/f“delims=”('dir*.avi/b')中的%%A,如果存在则执行“%%~fA”(
    rem检索文件时间戳
    设置“xDateWrite=%%~tA”
    rem使用RoboCopy检索秒数
    设置“xDateGMT=0000/00/00:00:00”
    对于('robocopy.%Temp%\Temp”“%~nxA”/TS/FP/NS/NC/NP/NJH/NJS/NDL/L)中的/f“令牌=1,2”%%X,请设置“xDateGMT=%%X%%Y”
    rem检索视频帧信息
    设置“xFrame=0000000”
    对于/f%%X in('exiftool-p“$Framerate,$Framecount”“%%~fA“'),请设置“xFrame=%%~X”
    rem检索文件大小
    设置“xSize=%%~zA”
    rem调整为24小时
    设置“xHour=!xDateWrited:~11,2!”
    如果“!xDateWrited:~17,2!”==“PM”集/a“xHour+=12”
    rem格式=FF-FF-YYYYMMDD-HHh-MMm-SSs-FF-FF.ext
    设置“xName=%xFolder:~0,2%-%xFolder:~2,2%-!xDateWrited:~6,4!!xDateWrited:~0,2!!xDateWrited:~3,2!-!xHour!h-!xDateWrited:~14,2!m-!xDateGMT:~17,2!s-%xFolder:~4,2%-%xFolder:~6,2%%xFolder:~xA”
    rem显示、重命名和保存
    echo!xName!
    任“%%~fA”!xName!”
    echo!xName!,!xSize!,!xFrame!>>C:\processing\RenameOutput.csv
    )
    邻苯二胺
    后藤:eof
    :结束
    端部
    暂停
    
    关于24小时格式,我在这里回答了您的意见:新的子文件夹名称是动态的还是静态的(总是
    fil
    
    @echo off
    setlocal EnableExtensions EnableDelayedExpansion
    
    :: Create Empty Folder
    rd /Q "%Temp%\Temp" 2>nul & mkdir "%Temp%\Temp"
    
    :: Loop through Folders
    pushd "xPath=c:\processing"
    for /d %%D in (*) do if exist "%%~fD\VIDEO\" (
        pushd "%%~fD\VIDEO\"
        for /d %%S in (*) do call :Process "%%~fD" "%%~fS"
        popd
    )
    popd
    goto End
    
    
    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    :Process <Parent> <Working>
    :: Folder Name
    set "xFolder=%~nx1"
    
    :: Set Working Directory
    if not exist "%~f2" goto :eof
    pushd "%~f2"
    
    :: Loop through Videos
    for /f "delims=" %%A in ('dir *.avi /b') do if exist "%%~fA" (
        rem Retrieve the file time stamp
        set "xDateWritten=%%~tA"
        rem Retrieve the Seconds using RoboCopy
        set "xDateGMT=0000/00/00 00:00:00"
        for /f "tokens=1,2" %%X in ('robocopy . "%Temp%\Temp" "%%~nxA" /TS /FP /NS /NC /NP /NJH /NJS /NDL /L') do set "xDateGMT=%%X %%Y"
        rem Retrieve the Video frame information
        set "xFrame=00,00000"
        for /f %%X in ('exiftool -p "$Framerate,$Framecount" "%%~fA"') do set "xFrame=%%~X"
        rem Retrieve the file size
        set "xSize=%%~zA"
        rem Adjust to 24 hours
        set "xHour=!xDateWritten:~11,2!"
        if "!xDateWritten:~17,2!"=="PM" set /a "xHour+=12"
        rem Format = FF-FF-YYYYMMDD-HHh-MMm-SSs-FF-FF.ext
        set "xName=%xFolder:~0,2%-%xFolder:~2,2%-!xDateWritten:~6,4!!xDateWritten:~0,2!!xDateWritten:~3,2!-!xHour!h-!xDateWritten:~14,2!m-!xDateGMT:~17,2!s-%xFolder:~4,2%-%xFolder:~6,2%%%~xA"
        rem Display, Rename, and Save
        echo !xName!
        ren "%%~fA" "!xName!"
        echo !xName!,!xSize!,!xFrame!>>C:\processing\RenameOutput.csv
    )
    popd
    goto :eof
    
    
    :End
    endlocal
    pause