IL MIO SCOPO: voglio fare un programma C++ che possa usare i comandi dos. OPZIONE: posso creare un file batch e inserirvi i comandi dos. ma come usare questo file dal programma C++ ...?come possiamo usare un file batch in C++?
risposta
Probabilmente si desidera esaminare le chiamate system
, ShellExecute
e CreateProcess
per individuare quale sia appropriato in questo scenario.
system("mybatchfile.bat");
È possibile utilizzare chiamata di sistema in C++ programma da eseguire tutti i comandi che il programma C++ ottiene da parte dell'utente.
Sono disponibili due opzioni per eseguire file batch su Windows da C/C++.
Innanzitutto, è possibile utilizzare system (o _wsystem per caratteri larghi).
"La funzione del sistema passa comando per l'interprete dei comandi, che esegue la stringa come un comando del sistema operativo. Sistema riferisce alla COMSPEC e variabili di ambiente PATH che individuano il file di comando interprete (file denominato CMD. EXE in Windows 2000 e versioni successive. "
Oppure è possibile utilizzare direttamente CreateProcess.
Si noti che per i file batch:
"per eseguire un file batch, è necessario avviare l'interprete dei comandi; impostato lpApplicationName per cmd.exe e impostare lpCommandLine ai seguenti argomenti:/c più il nome di il file batch. "
//example that makes and then calls a batch file
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
int main(int argc, char *argv[])
{
ofstream batch;
batch.open("mybatchfile.bat", ios::out);
batch <<"@echo OFF\n";
batch <<":START\n";
batch <<"dir C:\n";
batch <<"myc++file 2 >nul\n";
batch <<"goto :eof\n";
batch.close();
if (argc==2)
{
system("mybatchfiles.bat");
cout <<"Starting Batch File...\n";
}
}
Mettere comandi DOS all'interno script batch sembra una buona idea. Quindi puoi ovviamente usare il comando system
.
Ma se il programma C++ richiede anche lo stdout dello script batch in esecuzione, è necessario provare: _popen
o _wpopen
.
Per ulteriori informazioni e codice visita del campione MSDN.
- 1. Come usare psake da un file batch?
- 2. Possiamo usare "C" extern nel file C senza #ifdef __cplusplus?
- 3. come possiamo decomprimere un file nell'obiettivo c?
- 4. Possiamo usare & in url?
- 5. Includere un file batch in un file batch
- 6. come usare goto in script batch
- 7. Possiamo usare una variabile python per contenere un intero file?
- 8. Possiamo usare pom.xml in ANT
- 9. l'esecuzione di un file batch da C#
- 10. Perché non possiamo usare le stringhe C come SEL?
- 11. Come passare parametri a un file batch utilizzando C#
- 12. File batch: maschera file
- 13. Come possiamo usare MSHTML con VBA?
- 14. Possiamo usare come parola chiave Documentdb?
- 15. Menu in file batch
- 16. Come sovrascrivere i file esistenti in batch?
- 17. come possiamo usare startActivityforResult() per l'intento dell'email?
- 18. possiamo usare xpath con BeautifulSoup?
- 19. Come eseguire un file batch in modalità 64 bit da un file batch in modalità 32 bit
- 20. Come possiamo usare gli elementi dell'array come contatori in java?
- 21. Eseguire un file batch in una nuova finestra dal batch?
- 22. Come ottengo l'equivalente di dirname() in un file batch?
- 23. Come posso eseguire un comando batch in C# direttamente?
- 24. Come modificare la directory dell'utente corrente in un file batch
- 25. Possiamo usare Foundation con HTML5Boilerplate?
- 26. Come leggere l'input dalla console in un file batch?
- 27. Possiamo usare QT con C# per creare GUI?
- 28. Come eseguire un file batch da java?
- 29. Come sovrascrivere un file di testo da un file batch
- 30. Errore in un file batch chiamato
È ':: CreateProcess (L" cmd.exe "' funziona davvero? Ho ottenuto l'errore 2, ERROR_FILE_NOT_FOUND. MA, Nella stessa chiamata, se si sostituisce con 'L" c: \\ Windows \\ System32 \\ cmd.exe "", quindi funziona miracolosamente ... – Liviu