1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Hỏi cách mở nhiều file theo thứ tự bằng file batch ?

Chủ đề trong 'Hỏi đáp Tin học' bởi Ba_Phi, 30/03/2009.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. Ba_Phi

    Ba_Phi Thành viên rất tích cực

    Tham gia ngày:
    07/12/2002
    Bài viết:
    1.596
    Đã được thích:
    1
    Hỏi cách mở nhiều file theo thứ tự bằng file batch ?

    Đây là 1 đoạn nội dung file batch mẫu, tôi sưu tầm để chỉ cần bấm vào file batch là nhiều chương trình cùng mở 1 lúc (mỗi lần mở máy, tôi cần mở 10 chương trình cùng lúc trở lên :(( và lập trình bấm 1 phát sắp xếp, hàm SetWindowPos là nó tự chạy đến đúng vị trí trên màn hình để có thể cùng lúc nhìn tất cả chương trình đã mở)

    @echo off

    rem file1
    cd C:start File1.exe


    rem file2
    cd C:start File2.exe

    rem file3
    cd C:start File3.exe

    exit

    Nhưng trên taskbar rõ ràng nó không mở theo thứ tự, có khi file2, file3 lại mở lên trước file1.

    Vậy cần thêm thông số nào cho nó mở theo đúng thứ tự nhỉ ?
    (tôi không thích dùng các chương trình quản lý Startup vì ngại nặng thêm máy, chỉ muốn dùng file batch sẵn có )
  2. Ba_Phi

    Ba_Phi Thành viên rất tích cực

    Tham gia ngày:
    07/12/2002
    Bài viết:
    1.596
    Đã được thích:
    1


    @echo off
    rem file1
    cd C:
    start File1.exe
    rem file2
    cd C:
    start File2.exe
    rem file3
    cd C:
    start File3.exe
    exit
    e*** bài mà bị lỗi, đành thêm đoạn nữa, đây là đoạn code chính xác

  3. tttoan

    tttoan Thành viên gắn bó với ttvnol.com

    Tham gia ngày:
    05/06/2004
    Bài viết:
    2.329
    Đã được thích:
    322
    đơn giản thì thêm lệnh PAUSE sau mỗi lần gọi chương trình
  4. nothinglastz

    nothinglastz Thành viên quen thuộc

    Tham gia ngày:
    18/08/2003
    Bài viết:
    828
    Đã được thích:
    0
    Bài toán của bạn này đưa ra tưởng đơn giản mà thực ra rất phức tạp. Thêm lệnh pause vào sau cũng như vậy thôi, khi thi hành cũng sẽ không mang lại kết qủa như mong muốn được, vì lệnh start trước đó chỉ gọi chương trình rồi nhảy tới lệnh tiếp ngay chứ không hề check là chương trình đó đã đã ở trạng thái nào (như vậy nên mới xảy ra trường hợp chương trình chạy không theo thứ tự). Lệnh start nó có 1 tham số là /wait, tuy nhiên xem ra cũng không sử dụng được vì nó sẽ chờ đến khi chương trình kết thúc (chương trình phải close) thì mới nhảy tới lệnh kế tiếp.
    Điều mà bạn này cần là xác định chương trình được gọi (bằng start) được chạy đến một trạng thái nào đó (vd Unikey chạy xong và put cái icon lên taskbar chẳng hạn) thì mới start chương trình tiếp theo. Cái khó ở đây là chương trình / process đã thôi xử lý nhưng nó vẫn tiếp tục chạy (nền) chứ không exit. Cho nên muốn làm được bạn phải mất công tìm hiểu kỹ các state / flag..của từng chương trình một, từ đó sẽ nắm được nó đang ở đâu, đã ở trạng thái mình cần chưa để tiếp tục, không hề đơn giản chút nào đâu. Có lẽ bạn nên tìm chương trình nào quản lý process được viết sẵn rồi sử dụng, không nên mất thời gian theo hướng này nữa.
  5. tttoan

    tttoan Thành viên gắn bó với ttvnol.com

    Tham gia ngày:
    05/06/2004
    Bài viết:
    2.329
    Đã được thích:
    322
    Mà nhu cầu này cũng hơi lạ, ko hiểu chủ topic định dùng cho mục đích thực tế gì?
  6. Ba_Phi

    Ba_Phi Thành viên rất tích cực

    Tham gia ngày:
    07/12/2002
    Bài viết:
    1.596
    Đã được thích:
    1

    giả sử bạn quản lý 11 tài khoản (11 file khác tên nhau từ 1-11), muốn chọn nhanh tài khoản số3 nhưng thứ tự trên taskbar lại không phải là 3 mà là 1 (tên trên taskbar lại tất cả giống title như nhau đều là Account chẳng hạn, trên taskbar không hề ghi là Acc1 hay acc2 để phân biệt)
    Có thể bạn chưa hiểu, để tóm gọn lần nữa
    Có 11 file có tên là file1, file2, file3... file11
    Khi mở thì trên taskbar chỉ hiện là TaiLieu (không có số kèm theo để phân biệt là TaiLieu1 hay TaiLieu2...)
    Giờ cần file1 ở vị trí 1 trên taskbar
    Giờ cần file2 ở vị trí 2 trên taskbar
    Đúng như bạn nothinglastz nói, có rất nhiều tham số nhưng có vẻ quá khó để thực hiện

Chia sẻ trang này