কমান্ড-লাইনের মাধ্যমে প্রোগ্রামগুলি শুরু করুন, তবে কেবল ইতিমধ্যে চালু না থাকলে


13

আমি নীচে ব্যাচ ফাইলটি নিয়ে এসেছি, এবং এটি দুর্দান্ত কাজ করছে। তবে, আমি এটি কোড করার কোনও উপায় আছে কিনা তা জানতে চাই যাতে কোনও প্রোগ্রাম ইতিমধ্যে চালু থাকলে এটি এড়িয়ে যায় এবং পরবর্তীটি চালু করে launch আশা করি এটা বোধ গম্য। যেকোনো উপদেশ সাদরে গৃহীত হবে।

@echo off    
pushd    
start "" cmd /c cscript "C:\Users\User\Desktop\Work.vbs"    
start "C:\Program Files\Microsoft Office\Office15" Outlook.exe    
start "C:\Program Files\Microsoft Office\Office15" Lync.exe    
start "C:\Program Files (x86)\Google\Chrome\Application" chrome.exe    
runas /savecred /user:"DOMAIN\User_Adm" "C:\Program Files (x86)\VMware\Infrastructure\Virtual Infrastructure Client\Launcher\VpxClient.exe"    
runas /savecred /user:"DOMAIN\User_Adm" "mmc.exe \"My_Tools.msc\"

1
চুপ। পাওয়ারশেল ভাল।
কলব ক্যানিয়ন

উত্তর:


20

প্রদত্ত নামের জন্য চলমান সমস্ত অ্যাপ্লিকেশন চেক করতে টাস্কলিস্টটি ব্যবহার করে এখানে একটি উদাহরণ ।
অন্যথায় এটি প্রোগ্রাম শুরু করে। আমি নিশ্চিত যে আপনি এটি আপনার প্রয়োজনের সাথে খাপ খাইয়ে নিতে পারেন

tasklist /nh /fi "imagename eq notepad.exe" | find /i "notepad.exe" > nul ||
(start notepad.exe)

নিশ্চিত হয়ে নিন যে এগুলি সবই এক লাইনে রয়েছে, এই সাইটটি এটির ফর্ম্যাট করে যাতে এটি বিরতি দেয় ||- এটি ভাঙবেন না
সিএডি ব্লোক

3

আমি আমার স্ক্রিপ্টে টাসলিস্টটি প্রয়োগ করেছি এবং এটি মনোযোগের মতো কাজ করে।
এখানে আমার মতো একই প্রশ্ন থাকা অন্য কারও জন্য।

@echo off
pushd
tasklist /nh /fi "imagename eq iexplore.exe" | find /i "iexplore.exe" > nul ||(start Work.vbs)
tasklist /nh /fi "imagename eq outlook.exe" | find /i "outlook.exe" > nul ||(start outlook.exe)
tasklist /nh /fi "imagename eq lync.exe" | find /i "lync.exe" > nul ||(start lync.exe)
tasklist /nh /fi "imagename eq chrome.exe" | find /i "chrome.exe" > nul ||(start chrome.exe)
tasklist /nh /fi "imagename eq VpxClient.exe" | find /i "VpxClient.exe" > nul || runas /savecred /user:"DOMAIN\User_Adm" "C:\Program Files (x86)\VMware\Infrastructure\Virtual Infrastructure Client\Launcher\VpxClient.exe"
tasklist /nh /fi "imagename eq mmc.exe" | find /i "mmc.exe" > nul || runas /savecred /user:"DOMAIN\User_Adm" "mmc.exe \"My_Tools.msc\"

3
@echo off      
tasklist /FI "IMAGENAME eq outlook.exe" | find /i "outlook.exe"      

IF ERRORLEVEL 2 GOTO LOOP2
IF ERRORLEVEL 1 GOTO LOOP1 

:LOOP1 
  start notepad.exe
goto EXIT     

:LOOP1 
  start outlook.exe 
goto EXIT 

:EXIT

1

এখানে পাওয়ারশেল সংস্করণ (সিএমডি পরিবর্তে) দেওয়া আছে।

(আপনি " powershell.exe" কল করে সিএমডি থেকে পাওয়ারশেল চালাতে পারেন ।

এই লিপিটি নিম্নলিখিতটি করে:

  1. নির্দিষ্ট প্রক্রিয়াটির জন্য প্রক্রিয়া তালিকাটি পরীক্ষা করে এবং যদি প্রক্রিয়াটি তালিকায় খুঁজে পাওয়া যায় না ...
  2. এটি নির্ধারিত স্থানে নির্দিষ্ট প্রোগ্রামে (প্রোগ্রাম ফাইলগুলির মতো) অনুসন্ধান করবে এবং এটি চালাবে।

এই উদাহরণে, আমি ব্যবসায়ের জন্য স্কাইপ শুরু করছি (একে "" লিংক ")।

এখানে একটি 1 লাইনার রয়েছে:

if (!((Get-Process | select ProcessName).ProcessName | where {$_ -like "*lync*"})){&(where.exe /R "C:\Program Files (x86)\Microsoft Office" "lync.exe")}

এখানে একটি মন্তব্য করা সংস্করণ:

# If there isn't a running process that contains "lync"...
if (!((Get-Process | select ProcessName).ProcessName | where {$_ -like "*lync*"}))
{
    # Find the executable somewhere in program files (x86), and run it.
    &(where.exe /R "C:\Program Files (x86)\Microsoft Office" "lync.exe")
}

(আপনাকে আসলে এক্সিকিউটেবলের জন্য অনুসন্ধান করতে হবে না, পরিবর্তে আপনি সরাসরি এটি চালাতে পারেন - তবে এক্সিকিউটেবলের জন্য অনুসন্ধান করা এমএস অফিস আপডেটের জন্য অনুমতি দেয় যা কখনও কখনও ইনস্টল ডিরেক্টরি পরিবর্তন করতে পারে)

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