আমার একটি স্ট্রিংয়ের পথ রয়েছে,
"C:\temp\mybackup.zip"
আমি সেই স্ক্রিপ্টে একটি টাইমস্ট্যাম্প likeোকাতে চাই, উদাহরণস্বরূপ,
"C:\temp\mybackup 2009-12-23.zip"
পাওয়ারশেলে এটি করার সহজ উপায় কি আছে?
আমার একটি স্ট্রিংয়ের পথ রয়েছে,
"C:\temp\mybackup.zip"
আমি সেই স্ক্রিপ্টে একটি টাইমস্ট্যাম্প likeোকাতে চাই, উদাহরণস্বরূপ,
"C:\temp\mybackup 2009-12-23.zip"
পাওয়ারশেলে এটি করার সহজ উপায় কি আছে?
উত্তর:
আপনি একটি স্বেচ্ছাকর্ষণ ব্যবহার করে ডাবল-কোটযুক্ত স্ট্রিংয়ে স্বেচ্ছাসেবক পাওয়ারশেল স্ক্রিপ্ট কোডটি সন্নিবেশ করতে পারেন, উদাহরণস্বরূপ, $ () এর মতো:
"C:\temp\mybackup $(get-date -f yyyy-MM-dd).zip"
এবং যদি আপনি অন্য কোথাও থেকে পাথটি পেয়ে থাকেন - ইতিমধ্যে একটি স্ট্রিং হিসাবে:
$dirName = [io.path]::GetDirectoryName($path)
$filename = [io.path]::GetFileNameWithoutExtension($path)
$ext = [io.path]::GetExtension($path)
$newPath = "$dirName\$filename $(get-date -f yyyy-MM-dd)$ext"
এবং যদি পথটি গেট-চাইল্ড আইটেমের আউটপুট থেকে আসে বলে মনে হচ্ছে :
Get-ChildItem *.zip | Foreach {
"$($_.DirectoryName)\$($_.BaseName) $(get-date -f yyyy-MM-dd)$($_.extension)"}
এখানে কিছু পাওয়ারশেল কোড যা কাজ করা উচিত। আপনি এর বেশিরভাগকে কম লাইনে একত্রিত করতে পারেন তবে আমি এটি পরিষ্কার এবং পাঠযোগ্য রাখতে চেয়েছিলাম।
[string]$filePath = "C:\tempFile.zip";
[string]$directory = [System.IO.Path]::GetDirectoryName($filePath);
[string]$strippedFileName = [System.IO.Path]::GetFileNameWithoutExtension($filePath);
[string]$extension = [System.IO.Path]::GetExtension($filePath);
[string]$newFileName = $strippedFileName + [DateTime]::Now.ToString("yyyyMMdd-HHmmss") + $extension;
[string]$newFilePath = [System.IO.Path]::Combine($directory, $newFileName);
Move-Item -LiteralPath $filePath -Destination $newFilePath;
আমি আমাদের সুরক্ষা লগ রফতানি করতে প্রয়োজন এবং সমন্বিত ইউনিভার্সাল সময় তারিখ এবং সময় চেয়েছিলেন। এটি নির্ধারণ করা চ্যালেঞ্জ হিসাবে প্রমাণিত, তবে কার্যকর করার পক্ষে এত সহজ:
wevtutil export-log security c:\users\%username%\SECURITYEVENTLOG-%computername%-$(((get-date).ToUniversalTime()).ToString("yyyyMMddTHHmmssZ")).evtx
যাদু কোডটি কেবল এই অংশ:
$(((get-date).ToUniversalTime()).ToString("yyyyMMddTHHmmssZ"))
hh
12 ঘন্টা সময় হয়, এটি ছাড়া tt
দরকারী নয়। ব্যবহার HH
আপনাকে 24 ঘন্টা সময় দেবে। আমি প্রস্তাব দিই hhmmsstt
বাHHmmss
hh
হয়েছে HH
আমি মনে করি এটি বেশিরভাগ মানুষই চাইবে।
উপরের লিপিটির জন্য ধন্যবাদ। ফাইলটিতে যুক্ত করার জন্য একটি সামান্য পরিবর্তন সঠিকভাবে শেষ হচ্ছে। এটা চেষ্টা কর ...
$filenameFormat = "MyFileName" + " " + (Get-Date -Format "yyyy-MM-dd") **+ ".txt"**
Rename-Item -Path "C:\temp\MyFileName.txt" -NewName $filenameFormat
ব্যবহার:
$filenameFormat = "mybackup.zip" + " " + (Get-Date -Format "yyyy-MM-dd")
Rename-Item -Path "C:\temp\mybackup.zip" -NewName $filenameFormat
$filenameFormat = "mybackup $(Get-Date -Format "yyyy-MM-dd").zip"
যেহেতু ওপি ফর্ম্যাটের সাথে মেলে
get-date -f yyyy-MM-dd
আমাকে বুঝতে এটাই আগে একটি মুহূর্ত জন্য বন্ধ করেছে না-f
অপারেটর কিন্তু সংক্ষিপ্ত রূপ-Format
প্যারামিটার । এটি বরং জায়গাটির বাইরে দেখায়, কোনওরকম :-)