Tôi có cùng một thư mục .bat
và một tệp .exe
. Tôi không thể gọi tệp .exe
từ số .bat
trừ khi tôi đặt đường dẫn tuyệt đối đầy đủ vào tệp đó. Có cách nào để không chỉ định đường dẫn không?Làm cách nào để thực hiện các chương trình trong cùng một thư mục với tệp lô của Windows?
Trả lời
Hãy thử gọi số .exe
với %~dp0
, như sau: %~dp0MyProgram.exe
.
%0
chứa đường dẫn đầy đủ đến tệp được gọi là .bat
.
~dp
nói để lấy ổ đĩa và đường dẫn, bao gồm cả đường nhỏ \
.
có vẻ lạ? Tôi chưa từng làm việc trên cửa sổ cho đôi nhưng
bạn đã thử hàng đầu với có sự khác biệt ./
./program.exe
thực sự nên được? có thể là dơi đang thực hiện từ ngữ cảnh của C: \ Windows hoặc đã làm hàng loạt của bạn làm bất kỳ cd đến một thư mục khác tại một số điểm?
Ý bạn là. \ (Tức là, dấu gạch chéo ngược). –
Tôi nghĩ rằng khi tôi thực thi lô nó đang được thực hiện từ một thư mục khác. –
Có lẽ câu hỏi của tôi là "làm thế nào để tăng gấp đôi nhấp vào một tập tin thực thi và làm cho nó thực hiện trong cùng một thư mục như nó?" –
Tôi đã giải quyết vấn đề này bằng cách thay đổi thư mục đang hoạt động bằng cách sử dụng pushd khi bắt đầu tập lệnh và khôi phục ở cuối tập lệnh bằng cách sử dụng popd. Bằng cách này, bạn luôn có thể giả định thư mục làm việc giống với vị trí của tệp dơi.
pushd %~dp0
ProgramInSameFolderAsBat.exe
popd
- 1. Làm cách nào để chương trình của tôi hoạt động trong Windows Vista và Windows 7?
- 2. Làm cách nào để thực hiện tìm kiếm g ++ cho các tệp tiêu đề trong một thư mục cụ thể?
- 3. Cách lấy thư mục hiện tại trong chương trình C?
- 4. Cách sử dụng Powershell để thực thi chương trình chống lại tất cả các tệp trong thư mục
- 5. Làm cách nào để tăng một tên thư mục bằng cách sử dụng Windows batch?
- 6. Chương trình C++ để thực hiện một Chương trình khác với các đối số dòng lệnh
- 7. Tập lệnh Bash để thực hiện lệnh trên tất cả các tệp trong một thư mục
- 8. Làm cách nào để đọc từ một tệp trong cùng một thư mục?
- 9. Làm cách nào để dừng Phân đoạn mục khỏi thực hiện một lô khi không có mục nào?
- 10. Đặt biến đường dẫn với dấu cách trong đường dẫn trong tệp .cmd của Windows hoặc tệp lô
- 11. Làm thế nào để sao chép các tệp DLL vào cùng thư mục với tệp thực thi bằng CMake?
- 12. Làm cách nào để chạy chương trình java từ một thư mục khác?
- 13. Làm cách nào để tôi có thể thực hiện nhiều thư mục cùng một lúc bằng cách sử dụng subversion?
- 14. Làm cách nào để thoát khỏi chương trình theo lô khi có lỗi?
- 15. Làm cách nào để tìm hàm chính (...) của chương trình?
- 16. Loại trừ các thư mục theo lô-copy-script
- 17. Cách bắt đầu quy trình trong cùng thư mục với tập tin thực thi
- 18. Cách lấy danh sách các tệp/thư mục của url thư mục trong java?
- 19. Làm thế nào để chạy cùng một mã với nhiều tệp (tên tệp khác nhau trong cùng thư mục) trong Matlab?
- 20. Tệp batch của Windows: PID của quá trình cuối cùng?
- 21. Làm cách nào để chạy một chương trình có thư mục làm việc khác với hiện tại, từ trình bao Linux?
- 22. Thực hiện một chương trình khác trong C++
- 23. Làm cách nào để sao chép tệp hoặc thư mục bị khóa trong cửa sổ theo chương trình?
- 24. Làm cách nào để thay đổi phần mở rộng của nhiều tệp trong một thư mục?
- 25. Làm thế nào để thực hiện thao tác tập tin/thư mục với các đặc quyền của người dùng?
- 26. Làm thế nào để thực hiện chương trình một bộ thử nghiệm bằng cách sử dụng JUnit4 theo chương trình?
- 27. Tôi làm cách nào để thực hiện thử nghiệm đột biến của chương trình Java?
- 28. Làm cách nào để sao chép các tệp của tôi từ một thư mục này sang một thư mục khác?
- 29. cách thực hiện chương trình .exe bằng tập lệnh php
- 30. Làm thế nào để bạn thực hiện một chương trình ngủ trong C + + trên Win 32?
+1 phiếu bầu chỉ tìm thấy liên kết này trên tìm kiếm của google - http://weblogs.asp.net/whaggard/archive/2005/01/28/get-directory-path-of-an-executing-batch-file. aspx – house9
Giải thích tốt, cảm ơn! – enderland
Câu trả lời của Patrick Cuff ở trên hoạt động, nhưng không thành công nếu một phần của đường dẫn thư mục có dấu cách trong tên của nó. Để giải quyết vấn đề này, bạn cần đặt dấu nháy kép xung quanh cuộc gọi .exe. "% ~ dp0MyProgram.exe" –