منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] كيفية تشغيل ملف باتش دون ظهور "نافذةالـ Consol "؟ - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] كيفية تشغيل ملف باتش دون ظهور "نافذةالـ Consol "؟ (/showthread.php?tid=47571)



كيفية تشغيل ملف باتش دون ظهور "نافذةالـ Consol "؟ - AmeenRashed - 06-12-23

السلام عليكم

باستخدام ملف "باتش فايل" أقوم بتشغيل ملف تنفيذى( exe ) لفيجوال بيسك نت
ثم من خلال أوامر هذا الملف الـ Bat أقوم بحذف الملف ، وحذف الملف التنفيذى معاً

المطلوب معرفة الأمر الذى يمكن وضعه داخل الباتش فايل لعدم إظهار نافذة الـ CMD

وهذا هو محتوى الباتش فايل "Runme.bat" المستخدم
PHP كود :
@echo off
cd 
"C:\Ameen\School"
Test.exe
del  Test
.exe Runme.bat 



RE: كيفية تشغيل ملف باتش دون ظهور "نافذةالـ Consol "؟ - أبو خالد الشكري - 07-12-23

(06-12-23, 06:09 PM)AmeenRashed كتب :
السلام عليكم

باستخدام ملف "باتش فايل" أقوم بتشغيل ملف تنفيذى( exe ) لفيجوال بيسك نت
ثم من خلال أوامر هذا الملف الـ Bat أقوم بحذف الملف ، وحذف الملف التنفيذى معاً

المطلوب معرفة الأمر الذى يمكن وضعه داخل الباتش فايل لعدم إظهار نافذة الـ CMD

وهذا هو محتوى الباتش فايل "Runme.bat" المستخدم
PHP كود :
@echo off
cd 
"C:\Ameen\School"
Test.exe
del  Test
.exe Runme.bat 

مرحبا بك الأخ Ameen

يمكنك من خلال برنامجك أن تكتب هذين الأمرين وهما يقومان بعمل المطلوب .
كود :
  Process.Start("C:\Ameen\School\Test.exe")
       My.Computer.FileSystem.DeleteFile("C:\Ameen\School\Test.exe")



RE: كيفية تشغيل ملف باتش دون ظهور "نافذةالـ Consol "؟ - AmeenRashed - 07-12-23

شكراً أخى أبو خالد
كنت قد جربت ذلك من قبل ، ولم يلبى الطلب
توضيح أكتر :
البرنامج المطلوب تشغيله "هو نفسه"  المطلوب حذفه بعد التشغيل
لذلك سوف يتم تنفيذ السطر الأول ،
لكن لن يقوم بعملية الحذف ( السطر الثانى)
PHP كود :
Imports System.IO
Module Module1
    Sub Main
()
 
       Try
            Process
.Start("C:\Ameen\School\Test.exe")
 
           My.Computer.FileSystem.DeleteFile("C:\Ameen\School\Test.exe")
 
       Catch ex As Exception

        End 
Try
 
   End Sub
End Module 



RE: كيفية تشغيل ملف باتش دون ظهور "نافذةالـ Consol "؟ - AmeenRashed - 07-12-23

أخى / 3sem
أشكرك على ردك
المحاولات كثيرة ، لكن طلبى بسيط لمن هو على معرفة بأوامر الباتش فايل
أريد أمر اضعه داخل الملف Runme.bat  يخفى ظهور الشاشة السوداء التى خلف رسالة التأكيد




RE: كيفية تشغيل ملف باتش دون ظهور "نافذةالـ Consol "؟ - AmeenRashed - 07-12-23

تمام .. لقد استخدمت هذا السويتش ( min/ ) من قبل
ولاحظت عمل شاشة الكونسول من خلالها تشغيل لحظى ،
لكن الأهم أن ذلك لم يحذف الملف Test.exe
بينما تم حذف الملف Runme.bat فقط
باختصار : الصيغة التى وضعتها "أنا" فى بداية الموضوع هى الأنسب
ولتظهر الشاشة السوداء كما تريد ومرحباً بها فى أى وقت

على هامش الموضوع : قرأت ملف PDF عن الملفات الدفعية
قد يفيد البعض ممن يريد ذلك " رغم ما به من أخطاء تقنية "
https://www.mediafire.com/file/6g7gvnzb5rbqrca/%25D8%25AA%25D8%25B9%25D9%2584%25D9%2585_%25D8%25A7%25D9%2584%25D9%2585%25D9%2584%25D9%2581%25D8%25A7%25D8%25AA_%25D8%25A7%25D9%2584%25D8%25AF%25D9%2581%25D8%25B9%25D9%258A%25D8%25A9.pdf/file


RE: كيفية تشغيل ملف باتش دون ظهور "نافذةالـ Consol "؟ - Hossam 2005 - 09-12-23

السلام عليكم ورحمة الله وبركاته

لحذف ملف ال Test.exe اكتب الكود التالي في ملف bat

PHP كود :
@ECHO OFF
 
:TRYAGAIN
 
ECHO DEL C:\Ameen\School\Test.exe
 RD C
:\Ameen\School\Test.exe
 CLS
 
IF EXIST C:\Ameen\School\Test.exe GOTO TRYAGAIN 

وإذا أردت أن يقوم ملف ال bat  بحذف نفسه بعد حذف ملف ال Test.exe اجعل الكود كما يلي

PHP كود :
@ECHO OFF
 
:TRYAGAIN
 
ECHO DEL C:\Ameen\School\Test.exe
 RD C
:\Ameen\School\Test.exe
 CLS
 
IF EXIST C:\Ameen\School\Test.exe GOTO TRYAGAIN
 CLS
 DEL 
%



RE: كيفية تشغيل ملف باتش دون ظهور "نافذةالـ Consol "؟ - AmeenRashed - 11-12-23

للأسف هذه الأوامر لا تحقق الطلب
ECHO Y | DEL C:\Ameen\School\Test.exe
RD C:\Ameen\School\Test.exe

فالسطر الأول يحذف الملف Test.exe والمطلوب تشغيله قبل الحذف
والسطر الثانى RD المفروض أنه خاص بحذف فولدر

الجديد فقط هو الأمر DEL %0


RE: كيفية تشغيل ملف باتش دون ظهور "نافذةالـ Consol "؟ - asmarsou - 11-12-23

وعليكم السلام ورحمة الله وبركاته

جرب تشغيل ملف الباش من خلال اضافة سكريبت اخر من نوع vbs سيفي بالغرض
طريقة عمل ملف ال vbs :
قم بفتح ملف تكست جديد و ضع فيه الاسطر التالية

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "tst.cmd" & Chr(34), 0
Set WshShell = Nothing

____________________________________
لا تنسى تغيير "tst.cmd" باسم ملف الباتش الخاص بك والامتداد ايضا .bat
او cmd مع الابقاء على النقاط كما هي   

ثم احفظ ملف التكست تحت امتداد .vbs

سينتج لك ملف دفعي جديد من نوع سكريبت vbs سيشغل لك ملف الباتش دون ظهور اي نافذه
ويمكنك ايضا حذف هذا الاخير (ملف ال vbs) باضافة امر الحذف في ملف الباتش لديك
ولا تنسى وضع ملف ال vbs مع ملف ال bat او  cmd


RE: كيفية تشغيل ملف باتش دون ظهور "نافذةالـ Consol "؟ - AmeenRashed - 11-12-23

جميل جداً ... فعلاً تم الهدف .
أصبح الآن عندى ثلاث ملفات  Runme.bat ، Test.exe
والملف الذى أشرت به وليكن أسمه  start.vbs
وعند البدء بتشغيل start.vbs  سوف يقوم باستدعاء
Runme.bat
الذى يقوم بتشغيل Test.exe ثم حذف Test.exe  ثم حذف نفسه(  Runme.bat )
ويتبقى عندى الملف الأسكربت  start.vbs
ومن الأفضل أن يقوم بحذف نفسه ( Start.vbs ) أيضاً بعد القيام بمهمته
وإذا تحقق ذلك ،
أليس من الأفضل الإستغناء عن الملف Runme.bat  من خلال أوامر  VBS

الملف Start.vbs
PHP كود :
Set WshShell CreateObject("WScript.Shell")
WshShell.Run chr(34) & "Runme.bat" Chr(34), 0
Set WshShell 
Nothing 

الملف  Runme.bat
PHP كود :
@echo off
cd 
"C:\Ameen\School"
Test.exe
del  Test
.exe Runme.bat 



RE: كيفية تشغيل ملف باتش دون ظهور "نافذةالـ Consol "؟ - asmarsou - 14-12-23

ادا اردت الاستغناء عن ملف الrunme.bat و الابقاء عن ملف ال start.vbs فسيكون هذا الاخير كما يلي
كود :
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "Test.exe" & Chr(34), 0
Const DeleteReadOnly = TRUE
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile("Test.exe"), DeleteReadOnly
objFSO.DeleteFile("Start.vbs.vbs"), DeleteReadOnly
Set WshShell = Nothing