এখানে একটি সংক্ষিপ্ত উইন্ডোজ প্রোগ্রাম যা এটি সঠিকভাবে করে (ক্লিপবোর্ড ক্লোবার্বিং না করে)। এটি পাওয়ারশেলের সাথে অভিযোজ্য হওয়া উচিত এবং সময় পেলে আমি এই উত্তরটি আপডেট করতে পারি তবে আপনি কেবল সেই প্রোগ্রামটি সরাসরি ব্যবহার করতে পারেন।
আচ্ছা, পাওয়ারশেল কেমন? অন্য অ্যাপ্লিকেশন ইনস্টল করার প্রয়োজন নেই। দুর্ভাগ্যবশত, আপনি হবে আপনার একটি স্ক্রিপ্ট ফাইল কোথাও তৈরি করা প্রয়োজন PATH
...
সংক্ষিপ্ত সংস্করণ আপনি ব্যবহার করতে পারেন
আপনি যদি ShowInNotepad.bat
নীচের বিষয়বস্তু সহ একটি ব্যাচ ফাইল (উদাহরণস্বরূপ ) তৈরি করেন এবং এটি আপনার PATH
কোথাও রাখেন:
@echo off
clip
powershell -Command $process = Start-Process -PassThru notepad;$SW_SHOW = 5;$sig = '[DllImport("""user32.dll""")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);';Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32;[Win32.NativeMethods]::ShowWindow($process.Id, $SW_SHOW) ^| Out-Null;Add-Type -AssemblyName System.Windows.Forms;[System.Windows.Forms.SendKeys]::SendWait('^^V');
আপনি কেবল echo blah | ShowInNotepad
যে কোনও জায়গা থেকে কল করতে পারেন !
নোট যে এই নেই যে আপনি Windows (Vista- + +) একটি সাম্প্রতিক পর সংস্করণ ব্যবহার করছেন অনুমান এবং প্রতিবন্ধী PowerShell না থাকে বা .NET Framework আনইনস্টল। অন্য কথায়, একটি ডিফল্ট উইন্ডোজ ইনস্টলেশন কাজ করবে।
দৈর্ঘ্য ব্যাখ্যা এবং বিকল্প
আমি সবচেয়ে সহজ উপায়টি ভাবতে পারি তা হল পেস্ট ( Ctrl+ V) ক্রিয়াটি স্বয়ংক্রিয় করা । যা কমপক্ষে অন্য একটি উত্তর ইতিমধ্যে করছে, তবে এটি একটি এএইচকে ব্যবহার করে - পাওয়ারশেলকে একটি লক-ডাউন কর্পোরেট পরিবেশে কাজ করার জন্য আপনার ভাগ্য ভাল হতে পারে।
স্ক্রিপ্টটি নিয়ে চলি, হ্যাঁ?
#start notepad, get process object (to get pid later)
$process = Start-Process -PassThru notepad;
# activate Notepad window
# based on http://stackoverflow.com/a/4994020/1030702
# SW_SHOW activates and shows a window http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx
$SW_SHOW = 5;
$sig = '[DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);';
Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32;
[Win32.NativeMethods]::ShowWindow($process.Id, $SW_SHOW) | Out-Null;
# send a "Ctrl+V" keystroke to the active window
# from http://stackoverflow.com/a/17851491/1030702
Add-Type -AssemblyName System.Windows.Forms;
[System.Windows.Forms.SendKeys]::SendWait('^V');
এটি বেশ সোজা, সুতরাং আমি স্ক্রিপ্টটি ইতিমধ্যে মন্তব্যগুলির চেয়ে বেশি বোঝানোর পক্ষে বিরক্ত করব না।
ব্যবহার
এটি ব্যবহার করতে, আপনাকে কেবল স্ক্রিপ্টটি কোনও .ps1
ফাইলের মধ্যে স্থাপন করতে হবে (উদাহরণস্বরূপ ShowInNotepad.ps1
) এটি আপনার কোথাও রাখুন PATH
এবং তারপরে powershell ShowInNotepad.ps1
ক্লিপবোর্ডে আপনি যে পাঠ্যটি প্রদর্শন করতে চান তা স্থাপন করার পরে কল করুন ।
উদাহরণ:
echo blah | clip && powershell ShowInNotepad.ps1
দুর্ভাগ্যক্রমে, পাওয়ারশেল স্ক্রিপ্টগুলি সম্পাদন করা কখনও কখনও কঠিন হতে পারে (এক্সিকিউশন পলিসি এবং সমস্ত)। অতএব, আমি এই স্ক্রিপ্টটিকে একটি ওয়ান-লাইনারে কনডেন্স করেছি যে আপনি সরাসরি কমান্ড প্রম্পট থেকে কল করতে পারেন, বা এমনকি একটি ব্যাচের ফাইলে স্থান দিতে পারেন:
powershell -Command $process = Start-Process -PassThru notepad;$SW_SHOW = 5;$sig = '[DllImport("""user32.dll""")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);';Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32;[Win32.NativeMethods]::ShowWindow($process.Id, $SW_SHOW) ^| Out-Null;Add-Type -AssemblyName System.Windows.Forms;[System.Windows.Forms.SendKeys]::SendWait('^^V');
আপনি যদি ShowInNotepad.bat
নীচের বিষয়বস্তু সহ একটি ব্যাচ ফাইল (উদাহরণস্বরূপ ) তৈরি করেন এবং এটি আপনার PATH
কোথাও রাখেন:
@echo off
clip
powershell -Command $process = Start-Process -PassThru notepad;$SW_SHOW = 5;$sig = '[DllImport("""user32.dll""")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);';Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32;[Win32.NativeMethods]::ShowWindow($process.Id, $SW_SHOW) ^| Out-Null;Add-Type -AssemblyName System.Windows.Forms;[System.Windows.Forms.SendKeys]::SendWait('^^V');
আপনি কেবল echo blah | ShowInNotepad
যে কোনও জায়গা থেকে কল করতে পারেন !
more
উইন্ডোতেও পাইপ করতে পারেন ।