السلام عليكم
باستخدام ملف "باتش فايل" أقوم بتشغيل ملف تنفيذى( 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 Y | 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 Y | DEL C:\Ameen\School\Test.exe
RD C:\Ameen\School\Test.exe
CLS
IF EXIST C:\Ameen\School\Test.exe GOTO TRYAGAIN
CLS
DEL %0
للأسف هذه الأوامر لا تحقق الطلب
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