මට අවශ්ය වූයේ ලිපිගොනු ක්ලෝන කිරීම / අනුපිටපත් කිරීම වෙනත් ගොනුවකින්, දේශීයව, සහ කණ්ඩායම් ගොනුවකින් භාවිතා කළ හැකි 'ස්පර්ශ' අංගයයි.
එබැවින් වීඩියෝ ගොනුව කාණ්ඩ ගොනුවට 'ඇදගෙන යන්න', FFMPEG ධාවනය වේ, පසුව ආදාන ගොනුවෙන් 'නිර්මාණය කළ දිනය' සහ 'දිනය වෙනස් කරන ලදි' ප්රතිදාන ගොනුවට පිටපත් වේ.
කණ්ඩායම් ලිපිගොනු යුනිකෝඩ් ගොනු නම් හැසිරවීමේදී භයානක බව, පේවර්ෂෙල් ලිපිගොනු නාම සංකේත සමඟ අවුල් වන අතර ඒවා දෙවරක් පැන යාම බියකරු සිහිනයකි.
මගේ විසඳුම වූයේ 'ස්පර්ශය' කොටස වෙනම පවර්ෂෙල් ස්ක්රිප්ටයක් බවට පත් කිරීමයි, එය මා විසින් 'CLONE-FILE-DATE.ps1' ලෙස නම් කළ අතර එහි අඩංගු වන්නේ:
param
(
[Parameter(Mandatory=$true)][string]$SourcePath,
[Parameter(Mandatory=$true)][string]$TargetPath
)
(GI -LiteralPath $TargetPath).CreationTime = (GI -LiteralPath $SourcePath).CreationTime
(GI -LiteralPath $TargetPath).LastWriteTime = (GI -LiteralPath $SourcePath).LastWriteTime
මගේ 'CONVERT.BAT' කාණ්ඩ ගොනුව තුළ උදාහරණ භාවිතය මෙන්න:
%~dp0\ffmpeg -i "%~1" ACTION "%~1-output.mp4"
CHCP 65001 > nul && PowerShell -ExecutionPolicy ByPass -File "%~dp0\CLONE-FILE-DATE.PS1" "%~1" "%~1-output.mp4"
මම හිතන්නේ පවර්ෂෙල් කියවිය හැකි බැවින් කණ්ඩායමේ කථාව පැහැදිලි කරනු ඇත:
% ~ dp0 යනු කණ්ඩායම් ගොනුවේ වත්මන් නාමාවලියයි.
% ~ 1 යනු උපුටා දැක්වීම් නොමැතිව කණ්ඩායමට වැටෙන ගොනුවේ මාර්ගයයි.
CHCP 65001> nul අක්ෂර UTF-8 ලෙස සකසා ප්රතිදානය ගිල දමයි.
-ExecutionPolicy ByPass මඟින් ගෝලීය ප්රතිපත්තිය වෙනස් කිරීමකින් තොරව පවර්ෂෙල් ධාවනය කිරීමට ඔබට ඉඩ සලසයි.