30/09/2018, 19:00

Shell window viết bởi c,c++

Hiện e đang viết 1 shell window bằng c,c++
có tham khảo trên msdn và cũng làm được 1 số cơ bản như thời gian,chạy,tắt 1 tiến trình…
nhưng khi tìm kiếm hàm in ra danh sách tiến trình thì k hiểu lắm dir .
cách 1 shell có thể thực hiện 1 file .bat??? (e k hiểu cái này lắm ,viết .bat để chạy j đó thì e còn hiểu )
mong mọi người giúp đỡ…

*grab popcorn* viết 21:16 ngày 30/09/2018

.bat được chạy mặc định bằng cmd.exe
Tức khi chạy file.bat, đường dẫn của nó sẽ đường truyền vào argument vị trí 1. Từ đó cmd đọc file.bat với đường dẫn trên, lấy các commands trong đó ra và thực thi.

Còn về lệnh dir bạn có thể tham khảo ở đây: http://stackoverflow.com/questions/612097/how-can-i-get-the-list-of-files-in-a-directory-using-c-or-c

leogem viết 21:09 ngày 30/09/2018

.bat thì t biết cách tạo,tạo 1 số .bat dễ làm…
nhưng ý t là cách để 1 shell thực hiện 1 file .bat?
.bat thực hiện nhờ các hàm,câu lệnh trên cmd,giờ nếu như muốn shell thực hiện thì chả nhẽ phải xây dựng lại các hàm,lệnh đó,…
=> việc xây dựng lại thì tạm thời có thể với các lệnh đơn giản nhưng để .bat liên kết vs shell?? thì sao???

*grab popcorn* viết 21:09 ngày 30/09/2018

Ý bạn là muốn tạo 1 chương trình thực thi được file .bat? Và các lệnh trong đó vẫn chạy trên cmd? Ko cần làm lại?? ô-o
Mình chưa hiểu ý bạn lắm

leogem viết 21:07 ngày 30/09/2018

ý mình là muốn tạo 1 chương trình chạy từ c,c++ có thể thực thi được file .bat?
ví dụ : như nếu chạy file .exe thì sau khi chạy xong sẽ hiện ra cửa sổ cho tiến trình đó
thực thi đây có thể là chạy dc file .bat đó ( đã thử test cùng lệnh vs .exe nhưng .bat k chạy??)
hoặc tạo dc .bat trên đó thì sao nhỉ?? ==

*grab popcorn* viết 21:03 ngày 30/09/2018

THeo mình biết thì file .bat chả qua là file khi mở lên. cmd sẽ đọc các lệnh trong file đó và thực hiện ._.
Nên nếu bạn muốn làm 1 phần mềm thực thi file .bat thì chỉ cần read nó như 1 text file rồi dùng hàm system để thực thi lệnh là đc
(Hy vọng đúng ý bạn )

leogem viết 21:16 ngày 30/09/2018

bạn nói rõ hơn đoạn đọc nó như 1 text file rồi dùng hàm system để thực thi lệnh được không?
mình không hiểu rõ ý đoạn này lắm?

*grab popcorn* viết 21:06 ngày 30/09/2018

tức là

istream f;
string commands;
f.open("a.bat");
while(!f.eof) {
 getline(cin,commands);
 system("commands.c_str()");
 //hàm system là hàm mà nó sẽ thực thi 1 câu lệnh dos/terminal được đưa vào.
}
leogem viết 21:12 ngày 30/09/2018
#include"conio.h"
#include"stdio.h"
#include"string.h"
#include"stdlib.h"

void main()
{
char w[255];
FILE *f=fopen("testbat.bat","rt");
if(f==NULL)
	{
	printf("\nLoi doc file.");
	getch();
	exit(1);
	}
else
	{
	while(!feof(f))
		{
		fgets(w,255,f);
		printf(""); 
		puts(w); // system ???
		}
	fclose(f);
	//printf("\nDoc thanh cong.\n");
	}
getch();
}

hnay mới rảnh làm thử,đọc đc text,xử lý được dấu enter cho cmd nhưng k biết cho hàm system vào kiểm j???

Thành Phạm viết 21:04 ngày 30/09/2018
Làm sao để có thể hiển thị syntax highlighting bằng markdown? Các bạn phải đánh dấu ``` như ví dụ dưới đây Chú ý, dấu ``` được tạo ra bởi nút nằm bên trái số 1 trên bàn phím, nút này sẽ là ~ khi bấm giữ Shift Ví dụ cho C Nội dung: ``` void main() { } ``` Và đừng quên ``` ở cuối Kết quả void main() { } Ví dụ cho Pascal Nội dung: ``` Program HelloWorld; Begin WriteLn('Hello world!') {no ";" is required after the last statement of a block - adding one adds a "null stateme…
leogem viết 21:02 ngày 30/09/2018

ok.t ra rồi.thanks :))))
hóa ra chỉ cần system(w) chứ nếu viết như kiểu system(“commands.c_str()”) thì máy sẽ tự hiểu là mình đang dùng hàm system vs giá trị commands.c_str() nên sẽ báo k nhận điên được

Bài liên quan
0