2013-03-07 22 views
7

Tôi có một cấu trúc thư mục đó trông như thế này:Sử dụng kéo và thả từ thư mục khác vào một tập tin batch không hoạt động

project 
    bin 
     my_program.exe 
     misc_stuff.exe 
    DROP_OVER_ME.bat 
    input_file.txt 

Về cơ bản, tôi muốn để có thể kéo và thả các tập tin đầu vào trên đầu trang của tệp hàng loạt DROP_OVER_ME.bat và chuyển nó trên đường dẫn của tệp đầu vào tới tệp exe.

Đây là những gì tập tin thực thi của tôi trông giống như:

@echo off 
start bin/my_program.exe %1 
exit 

Khi tôi kéo và thả input_file.txt so với tập tin thực thi, mọi thứ hoạt động tốt - my_program.exe nhận thành công đường dẫn của tập tin đầu vào và chạy.

Tuy nhiên, khi input_file.txt nằm ngoài thư mục dự án, kéo và thả nó làm cho các tập tin thực thi ném lên một thông báo popup nói

của Windows can not find 'bin/my_program.exe'. Đảm bảo bạn đã nhập đúng tên và sau đó thử lại.

Làm cách nào để sửa tệp hàng loạt để tôi có thể kéo và thả tệp từ bất kỳ vị trí tùy ý nào bên trong hệ thống tệp của mình?

Trả lời

7

Âm thanh giống như tập lệnh batch đang dựa vào thư mục làm việc hiện tại làm thư mục bạn đang kéo từ chứ không phải thư mục chứa tập lệnh. (Bạn có thể kiểm tra điều này bằng cách thêm một echo %cd% && pause để kịch bản của bạn nếu bạn muốn.) Hãy thử thay đổi kịch bản của bạn như sau để loại bỏ bất kỳ sự mơ hồ về đường dẫn file:

@echo off 
cd /d "%~dp0" 
start "" "bin\my_program.exe" "%~f1" 
exit /b 
+0

tôi phải loại bỏ các dấu ngoặc kép quanh 'bin \ my_program.exe 'để làm cho nó hoạt động (nó tiếp tục mở tập tin văn bản trong notepad), nhưng ngoài ra, nó hoạt động hoàn hảo, cảm ơn! – Michael0x2a

+0

Ồ, vâng, vì tham số đầu tiên được mong đợi bằng 'bắt đầu' là tiêu đề của cửa sổ. Tôi nên thêm dấu ngoặc đơn trống trước phần 'bin \ my_program.exe'. Tôi sẽ sửa nó ở trên. Xin lỗi vì điều đó. – rojo

Các vấn đề liên quan