রোবোকপি ইউনিলোগ আউটপুট গীব্রিশ


10

আমি ইউনিকোড লগ তৈরি করার জন্য উইন্ডোজ in-এ রোবোকপি পাওয়ার চেষ্টা করেছি, যেহেতু আমার কাছে ইউনিকোড অক্ষরযুক্ত ফাইল রয়েছে। আমি যে আদেশটি ব্যবহার করেছি:

robocopy C:\mysource D:\mydest /mir /unilog:backup.log /tee

অনুলিপিটি কাজ করে ফাইলটি অনস্ক্রিন আউটপুট সঠিক, লগ ফাইল নিজেই কেবল জিব্বারিশ রয়েছে। আমি কমান্ড প্রম্পট ব্যবহার করি বা পাওয়ারশেল নির্বিশেষে এটি।

কি দেয়? আমি কি ভুল কিছু করছি?


এটিও আমার অভিজ্ঞতা। আপনি কি সমাধান খুঁজে পেয়েছেন?
আন্দ্রে কারন

উত্তর:


6

এক্সপি 27-এ বাগ করুন। এক্সপি 26 তে ডাউনগ্রেড চেষ্টা করুন।

এটি XP27রবকপি (যা উইন্ডোজ 7 এর সাথে আসে) সংস্করণে একটি বাগ হিসাবে উপস্থিত বলে মনে হচ্ছে ।

সংস্করণে XP26(যা উইন্ডোজ ভিস্তার সাথে আসে) /UNILOGআমার জন্য নিখুঁতভাবে পঠনযোগ্য ইউনিকোড লগ ফাইল তৈরি করে।

ইজিআরবোকপি-এর চারপাশে থাকা ভিস্তার একটি অনুলিপি না থাকলে XP26সংস্করণটিও উপস্থিত হয়। (আমি আসলে ইজিরোবকপি নিজেই চেষ্টা করে দেখিনি, এটি robocopy.exeব্যবহার করে এর সেটআপ ফাইলটি সরিয়ে নিয়েছি WinRAR))


2

এক নজরে, আমি বলতে পারি যে রবোকপি দ্বারা লিখিত ফাইলটি ব্যবহার করার সময় /UNILOGএবং /TEEস্যুইচগুলিতে একটি ইউটিএফ -16 লিটল এন্ডিয়ান বাইট ক্রম চিহ্ন রয়েছে যার পরে একটি আইএসও -8859-1 টার্মিনাল টাইপ স্ক্রিপ্ট রয়েছে।

এটি পঠনযোগ্য করার জন্য, আমি উবুন্টুতে নিম্নলিখিতগুলি করেছি:

dd if=robocopy.log ibs=1 skip=2 obs=512        | # Strip the byte order mark
  iconv --from-code ISO-8859-1 --to-code UTF-8 | # Convert to UTF-8
  col -b > robocopy_utf-8.log                    # Interpret control characters

উইন্ডোজ কমান্ড প্রম্পটে যা দেখেছি তার ফলস্বরূপ ফাইলটি মেলে।

আরও পড়া: মানুষ dd, মানুষ iconv, মানুষcol


উইন্ডোতে একই ধরণের রূপান্তর করার কোনও উপায়? আমি পাওয়ারশেলের পাইপে এই রূপান্তরটি চেষ্টা করেছি, তবে কোনও সাফল্যই পাইনি:([System.Text.Encoding]::Unicode).GetString([System.Text.Encoding]::Convert([System.Text.Encoding]::GetEncoding(28591), [System.Text.Encoding]::Unicode, ([System.Text.Encoding]::GetEncoding(28591)).GetBytes($_)))
ফেভার জোসিপোভিচ

এইটা কাজ করে!!!!!
কোরি

1

উইন 7-এ (বাইনারি) ফাইল আউটপুটটি দেখে, / ইউএনআইএলওজি বিকল্পটি অকেজো। এটা প্রমিত ইউনিকোড BOM (FFFE) লিখেছেন, কিন্তু তারপর সব সংকীর্ণ অক্ষর লিখতে আয় ছাড়া অপশন লাইন জন্য (যেমন, / বাইট / s / অনুলিপি করুন: DATS ...), যা প্রকৃত ইউনিকোড হয়। এর পর, এটা ANSI অক্ষর ফিরে ফিরে আসে এবং তা হয়ে যায় না হল UTF-8, হয়; অর্থাত্, যদি আপনার পথের প্রশস্ত অক্ষর সহ একটি ফাইল নাম থাকে, তবে এটি সরুতে রূপান্তরিত হবে? ' অক্ষর।

স্পষ্টতই এটি এমএসএফটি থেকে ঠিক করার কোনও আগ্রহ নেই, যেহেতু এটি কিছু সময়ের জন্য এইভাবে ছিল, এবং আমার সমস্ত আপডেট রয়েছে।


"প্রকৃত ইউনিকোড" এনকোডিংয়ের মতো জিনিস নেই। আপনি কি ইউটিএফ -16 / ইউসিএস -2 বলতে চাচ্ছেন? এই "ইউনিলোগ" নামকরণের জন্য প্রথমে বুট করা এমএসের দোষ ...
নাস বানভ

1

আমি উইন্ডোজে আমার অপঠনযোগ্য, ইউনিকোড-ফর্ম্যাট রোবোকপি লগ ফাইলগুলি স্থির করেছি (যা দুর্ঘটনাক্রমে পাওয়ারশেলের আউট-ফাইল থেকে ইউনিকোড আউটপুটে সাধারণ রোবকপি আউটপুট যুক্ত করে তৈরি করা হয়েছিল):

পাওয়ারশেলে:

$bytes = [System.IO.File]::ReadAllBytes('C:\Temp\RoboCopyLog.txt')
$len = $bytes.Length
#Remove the Unicode BOM, and convert to ASCII
$text = [System.Text.Encoding]::ASCII.GetString($bytes,2,$len -2)
$text

উপরের কোডটি সমস্ত ফাইলের আকারের জন্য কাজ না করে!

(কোডের জন্য ক্রেডিট: আমি ফার্ডিনানড প্র্যান্টলের এই পোস্টটি থেকে কোডটি রূপান্তর করেছি: স্ট্যাকওভারফ্লো - পাওয়ারশেলের সাথে বাইনারি ফাইলগুলি পড়ুন / পার্স করুন


আউটপুটটিতে ইউনিকোড অক্ষর না থাকলে এটি কাজ করে; অন্যথায়, এই অক্ষরগুলি ASCII তে রূপান্তরিত হয়।
কার্পোপার

1

ইউটিএফ -8 কোড পৃষ্ঠাটি ব্যবহার করুন, তারপরে উইনওয়ার্ড রূপান্তরকারী চালান

আপনার ফাইল বা ডিরেক্টরিতে যদি ইউনিকোড অক্ষর থাকে তবে /unilogপ্যারামিটার সহ রবোকপি কমান্ড দেওয়ার আগে কমান্ডটি ব্যবহার করুন chcp 65001। (কোড পৃষ্ঠা 65001 হল ইউটিএফ -8 ।)

একবার আপনি মঙ্গলে ইউনিকোড লগ হয়ে গেলে, কেবল এমএস ওয়ার্ডে এটি খুলুন Unicode (UTF-8)এবং এটি সংরক্ষণ করুন:

এমএস ওয়ার্ড ফাইল রূপান্তর ডায়ালগ


0

আপনার ক্ষেত্রে, পাওয়ারশেলের কমান্ডটি এরকম কিছু করে:

robocopy C:\mysource D:\mydest /mir | Out-File backup.log

কর্মক্ষেত্রটি হ'ল আপনি বিল্ট-ইন / ইউনিলোগ পরামিতিগুলির পরিবর্তে আউট-ফাইল ব্যবহার করেন। আপনি ঠিক একই লগ ফাইলটি পাবেন তবে এখন এটি ইউনিকোডে সঠিকভাবে লেখা হবে।


4
অবশ্যই এটি ইউনিকোড হবে তবে কোনও বিশেষ ইউনিকোড অক্ষর থাকবে না। এটি কেবল এএসসিআইআই আউটপুটটি ইউনিকোডে অনুবাদ হয়েছে।
জোশিপোভিচ

0

chcpডান কোড পৃষ্ঠা সহ রোবোকপি কমান্ডের আগে কমান্ডটি চালান ।

ইউটিএফ -8 এর জন্য (রোবোকপি এবং হিব্রু এবং সম্ভবত আরও ভাষা নিয়ে কাজ করছে না):

chcp 65001 | Out-Null

হিব্রু জন্য:

chcp 1255 | Out-Null 

সম্পূর্ণ কোড পৃষ্ঠার তালিকা: https://docs.microsoft.com/en-us/windows/desktop/intl/code-page- شناختফায়ার্স

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.