كيف يمكنني استخدام VB.NET لتنفيذ ملف دفعي على كمبيوتر آخر؟

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

سؤال

في vb.net 2008، أريد تنفيذ ملف دفعي موجود على جهاز كمبيوتر آخر. لا يوجد خطأ، ولكن لا شيء يحدث. هنا هو الرمز:

Dim pStart As New System.Diagnostics.Process
Dim startInfo As New System.Diagnostics.ProcessStartInfo(serverpath & "\file.bat")
startInfo.RedirectStandardOutput = True
startInfo.WindowStyle = ProcessWindowStyle.Hidden
startInfo.UseShellExecute = False
pStart = System.Diagnostics.Process.Start(startInfo)
pStart.WaitForExit()
pStart.Close()
هل كانت مفيدة؟

المحلول

لتشغيل عملية على جهاز كمبيوتر بعيد، يمكنك استخدام sysinternals مجانا psexec..

يمكنك الاتصال به مع المعلمات المناسبة والحصول على الأذونات المطلوبة كما تفعل في التعليمات البرمجية الخاصة بك.

نصائح أخرى

لم أحاول أبدا إنشاء عملية باستخدام ملف دفعي كقابل للتنفيذ. كان علي دائما استخدام cmd.exe كبرنامج. هذا عملت من أجلي في الماضي:

Dim startInfo As New System.Diagnostics.ProcessStartInfo("cmd.exe", "/c " & serverpath & "\file.bat")

يحكي "/ c" كجزء من قائمة الوساطة CMD.EXE للخروج بعد اكتمال ملف الدفعات.

إذا كنت ستستخدم RedirectedStandStOutPtutptutptutptutoutput، فأنت تريد حقا استخدام RedirectedStandardError، ثم اشترك أيضا في أحداث فئة العملية لالتقاط البيانات على تلك التدفقات (DovexDatareceiesed and ErrordatareAece). وإلا فلن يكون لديك طريقة لتصحيح البرنامج النصي الدفعي الخاص بك.

هذا يقرأ مثل مشكلة الأذونات. أود استكشافه بهذه الطريقة إذا لم تستبعدها بعد.
هل حاولت تشغيل نفس الملف الدفعي من الكمبيوتر المحلي؟
إذا كانت مشكلة أذونات، فيمكنك حلها إما نسخ الملف محليا قبل تنفيذها أو تعيين محرك الأقراص إلى الكمبيوتر البعيد حيث يكون الملف ثم قم بتنفيذ ملف الدفعات من المسار الجديد.

بالإضافة إلى ذلك، لا نعرف حقا ما هو في الملف الدفعي الذي يمكن أن يسبب مشكلة. أود إما نشر ملف دفعي أو إذا لم تتمكن من نشر ملف الدفعات استخدم ملف دفعي يمكنك نشره. مثال ملف دفعي سوف يكتب وقت التاريخ الحالي إلى ملف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top