আমি অন্য কোনও ফাইল থেকে ফাইলের তারিখগুলি স্থানীয়ভাবে ক্লোনিং / সদৃশ করার 'স্পর্শ' বৈশিষ্ট্যটি চেয়েছিলাম এবং একটি ব্যাচ ফাইল থেকে ব্যবহারযোগ্য হয়ে উঠতে চাই।
সুতরাং ব্যাচ ফাইলটিতে 'ড্রাগ এবং ড্রপ' ভিডিও ফাইলটি এফএফএমপিইজি চালায়, তারপরে ইনপুট ফাইল থেকে 'তারিখ তৈরি করা' এবং 'তারিখ সংশোধিত' আউটপুট ফাইলে অনুলিপি হয়ে যায়।
আপনি যতক্ষণ না ব্যাচ ফাইলগুলি ইউনিকোড ফাইলের নামগুলি পরিচালনা করার ক্ষেত্রে ভয়ানক, অনলাইনে পাওয়ারশেল ফাইলের নাম প্রতীকগুলি নিয়ে মেসেজ করে এবং ডাবল পলায়নগুলি দুঃস্বপ্ন বলে মনে হয় ততক্ষণে এটি প্রথমে সহজ মনে হয়েছিল।
আমার সমাধানটি 'স্পর্শ' অংশকে একটি আলাদা পাওয়ারশেল স্ক্রিপ্ট তৈরি করেছিল যা আমি 'ক্লোন-ফাইল-তারিখ.পিএস 1' বলেছিলাম এবং এতে রয়েছে:
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
তারপরে এখানে আমার 'কনভার্ট.ব্যাট' ব্যাচ ফাইলের মধ্যে উদাহরণ ব্যবহার রয়েছে:
%~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 হ'ল ফাইলের ব্যাচটি কোট ছাড়াই বাদ দেওয়া হয়েছে।
সিএইচসিপি 65001> নুল ইউটিএফ -8 এ অক্ষর সেট করে এবং আউটপুট গিলে ফেলে।
এক্সচেশনপলিসি বাইপাস আপনাকে বৈশ্বিক নীতি পরিবর্তন করার প্রয়োজন ছাড়াই পাওয়ারশেল চালানোর অনুমতি দেয়, যা সেখানে লোকজন দুর্ঘটনাক্রমে স্ক্রিপ্টগুলি চালানো রোধ করতে পারে।