كيف أجعل Powershell يقوم بتشغيل ملف دفعي ثم يظل مفتوحًا؟

StackOverflow https://stackoverflow.com/questions/14300

  •  08-06-2019
  •  | 
  •  

سؤال

على سبيل المثال؛مع موجه الأوامر القديم سيكون:

cmd.exe /k mybatchfile.bat
هل كانت مفيدة؟

المحلول

أسقط في مثيل cmd (أو في الواقع PowerShell نفسه) واكتب هذا:

powershell -?

سترى أن powershell.exe يحتوي على معلمة "-noexit" التي تخبره بعدم الخروج بعد تنفيذ "أمر بدء التشغيل".

نصائح أخرى

عند تشغيل PowerShell.exe، ما عليك سوى توفير ملف -لا خروج التبديل مثل ذلك:

PowerShell -NoExit -File "C:\SomeFolder\SomePowerShellScript.ps1"

PowerShell -NoExit -Command "Write-Host 'This window will stay open.'"

أو إذا كنت تريد تشغيل ملف ثم تشغيل أمر وإبقاء النافذة مفتوحة، فيمكنك القيام بشيء مثل هذا:

PowerShell -NoExit "& 'C:\SomeFolder\SomePowerShellScript.ps1'; Write-Host 'This window will stay open.'"

ال -يأمر يتم تضمين المعلمة إذا لم يتم توفيرها، وهنا نستخدم & لاستدعاء البرنامج النصي PowerShell، و ; يفصل أوامر PowerShell.

وأيضا في الجزء السفلي من مشاركة مدونتي أعرض تغييرًا سريعًا في السجل يمكنك إجراؤه ليظل PowerShell مفتوحًا دائمًا بعد تنفيذ برنامج نصي/أمر، بحيث لا تحتاج دائمًا إلى توفير مفتاح -NoExit بشكل صريح طوال الوقت.

أنا متأكد من أنك اكتشفت هذا بالفعل ولكني قمت بنشره للتو

$CreateDate = (Get-Date -format 'yyyy-MM-dd hh-mm-ss')

$RemoteServerName ="server name"
$process = [WMICLASS]"\\$RemoteServerName\ROOT\CIMV2:win32_process"  
$result = $process.Create("C:\path to a script\test.bat") 
$result | out-file -file "C:\some path \Log-$CreatedDate.txt"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top