تنقذ بيانات الأنابيب إلى ملف مع وظيفة Windows 'Shellexecute'
-
21-09-2019 - |
سؤال
أنا أستخدم ''Shellexecuteوظيفة في Windows Vista
هل هناك أي طريقة لتنشيط الإخراج إلى ملف؟
بمعنى آخر
mysqldump.exe '-u user1 -ppassword dbname> theoutputfile.sql
هنا الكود الخاص بي
theProgram := 'MySqlDump.exe';
itsParameters := '-u user1 -ppassword dbName';
rslt := ShellExecute(0, 'open',
pChar (theProgram),
pChar (itsParameters),
nil,
SW_SHOW);
تعديل:
لقد حاولت
itsParameters := '-u user1 -ppassword dbName > TheOutputFile.Sql';
لكن هذا لا يعمل
المحلول
@charles ، يمكنك استخدام إعادة توجيه simbol ">" في shellexecute ، ولكن باستخدام cmd.exe وهو مترجم أمر Windows.
جرب هذه العينة
ShellExecute(0,nil,'cmd.exe','/c MySqlDump.exe -u user1 -ppassword dbName > TheOutputFile.Sql',nil,sw_normal);
خيارات أخرى هي استخدام الأنابيب ، يمكنك العثور على مثال لطيف للغاية في هذا حلقة الوصل.
نصائح أخرى
في هذا السيناريو ، من المحتمل أن يكون استخدام نهج (باستثناء البرنامج النصي CMD) _popen بدلا من Shellexecute.
أو الأفضل من ذلك ، استخدم خيار ملف الرئاسة إلى MySqLdump.
لا يمكن أن يشهد صحة هذا الرمز أو الموقع ، لكنني سمعت عنه doscommand.pas أكثر من مرة. سوف أتحقق من ذلك الليلة عندما أصل إلى المنزل.
يجب أن تبدأ العملية باستخدام عمليه الخلق وتوفير طرف واحد من الأنبوب الذي تقوم بإنشائه في Hstroutput من StartupInfo بنية. هناك الكثير من الأمثلة على الإنترنت.