منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيفية تشغيل ملف باتش دون ظهور "نافذةالـ Consol "؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

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

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

وهذا هو محتوى الباتش فايل "Runme.bat" المستخدم
PHP كود :
@echo off
cd 
"C:\Ameen\School"
Test.exe
del  Test
.exe Runme.bat 
(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")
شكراً أخى أبو خالد
كنت قد جربت ذلك من قبل ، ولم يلبى الطلب
توضيح أكتر :
البرنامج المطلوب تشغيله "هو نفسه"  المطلوب حذفه بعد التشغيل
لذلك سوف يتم تنفيذ السطر الأول ،
لكن لن يقوم بعملية الحذف ( السطر الثانى)
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 
أخى / 3sem
أشكرك على ردك
المحاولات كثيرة ، لكن طلبى بسيط لمن هو على معرفة بأوامر الباتش فايل
أريد أمر اضعه داخل الملف Runme.bat  يخفى ظهور الشاشة السوداء التى خلف رسالة التأكيد

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

على هامش الموضوع : قرأت ملف PDF عن الملفات الدفعية
قد يفيد البعض ممن يريد ذلك " رغم ما به من أخطاء تقنية "
https://www.mediafire.com/file/6g7gvnzb5...9.pdf/file
السلام عليكم ورحمة الله وبركاته

لحذف ملف ال 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 
%
للأسف هذه الأوامر لا تحقق الطلب
ECHO Y | DEL C:\Ameen\School\Test.exe
RD C:\Ameen\School\Test.exe

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

الجديد فقط هو الأمر DEL %0
وعليكم السلام ورحمة الله وبركاته

جرب تشغيل ملف الباش من خلال اضافة سكريبت اخر من نوع 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
جميل جداً ... فعلاً تم الهدف .
أصبح الآن عندى ثلاث ملفات  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 
ادا اردت الاستغناء عن ملف ال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