تنقذ بيانات الأنابيب إلى ملف مع وظيفة Windows 'Shellexecute'

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

  •  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 بنية. هناك الكثير من الأمثلة على الإنترنت.

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