Tôi cần sao chép nhiều tệp trong một tệp lô duy nhất. Các tập tin có tên Unicode để ánh xạ tới các mã khác nhau.Lô Windows: Các tham số Unicode cho lệnh sao chép (robo)
Ví dụ:
set ArabicFile=ڊڌڵڲڛشس
set CyrillicFile=щЖЛдЉи
set GermanFile=Bücher
copy %ArabicFile% SomePlaceElse
copy %CyrillicFile% SomePlaceElse
copy %GermanFile% SomePlaceElse
Vấn đề: file hàng loạt không thể Unicode.
Câu hỏi: Làm cách nào để viết tên tệp Unicode vào tệp lô để lệnh sao chép nhận dạng chúng?
Ghi chú:
Tôi không quan tâm như thế nào tên tập tin được hiển thị.
Trên thực tế, tệp thực thi không chỉ sao chép những tệp này, tôi vừa đơn giản hóa mô tả để làm cho vấn đề rõ ràng hơn.
Đúng batch file:
Với câu trả lời Arnout của tôi sửa đổi tập tin thực thi của tôi như sau. Nó bây giờ hoạt động chính xác mà không đòi hỏi một sự thay đổi phông chữ (mà sẽ là lộn xộn, như Arnout nhận xét).
@echo off
chcp 65001
set ArabicFolder=ڊڌڵڲڛشس
set CyrillicFolder=щЖЛдЉи
set GermanFolder=Bücher
robocopy /e d:\temp\test\%ArabicFolder% d:\temp\test2\%ArabicFolder% /log:copy.log
robocopy /e d:\temp\test\%CyrillicFolder% d:\temp\test2\%CyrillicFolder% /log+:copy.log
robocopy /e d:\temp\test\%GermanFolder% d:\temp\test2\%GermanFolder% /log+:copy.log
Thay đổi phông chữ * có thể * cần thiết nếu bạn dự định sử dụng đầu ra lệnh có thể chứa Unicode;) – Joey
Umm, vâng, đó là ý của tôi với "miễn là bạn không viết đầu ra không phải ASCII cho bàn điều khiển" ... – Arnout
Cool, công trình này ;-) Chỉ gotcha: làm thế nào để tôi đặt phông chữ từ bên trong một tập tin thực thi? Các tập tin thực thi là để chạy trên nhiều máy tính và tôi không thể cấu hình lại chúng trước khi chạy kịch bản của tôi. Và thay đổi phông chữ là bắt buộc - nếu tôi không thay đổi phông chữ, các lệnh đặt không thành công. –