tôi một câu trả lời đầu tiên theo kinh nghiệm:.
for /f %%s in (version.txt) do ...
công trình tốt, trên mỗi máy tính
dường for /f
làm việc với một tên tập tin, không phải với bất kỳ d os lệnh như 'loại tên tập tin'.
Tuy nhiên, điều đó không đúng cho tất cả các máy tính khách hàng của tôi (trên một số, các 'loại filename' hoạt động tốt)
Nếu bạn muốn 15 điểm (dễ dàng?) ;-), bạn có thể để lại một câu trả lời cho câu hỏi:
tại sao 'for/f' đôi khi không hoạt động với bất kỳ thứ gì khác ngoài tên tệp. Và tại sao nó chỉ đóng phiên DOS?
Edit: (!) 3 năm sau, barlop phải đối mặt với một tình huống tương tự, chi tiết trong câu hỏi "for /f
closes cmd prompt immediately?". Kết luận của ông là:
COMSPEC
đã được liệt kê khi làm SET
+ ENTER.
Vì vậy, tôi đã mở cửa sổ biến môi trường và thấy COMSPEC
không được liệt kê dưới biến người dùng hoặc biến hệ thống. Tôi đã thêm nó vào System Variables, bắt đầu một dấu nhắc lệnh, và nó có vẻ hoạt động tốt.
thread on ss64 forum này được đề cập trong câu trả lời cho câu hỏi của chủ nhà, chứa các chi tiết.
Các pháo kích ra trong "for
" loop để hoàn thành 'dir
' (hoặc bất kỳ lệnh mà bạn đã yêu cầu điền vào) yêu cầu ComSpec
được thiết lập để tải lại cmd
cửa sổ.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ComSpec=
%SystemRoot%\system32\cmd.exe
Cảm ơn bạn đã chỉnh sửa, Oli: Tôi muốn gắn thẻ câu hỏi đó 'script', nhưng tự động hoàn thành trên thẻ SO đã lừa tôi;) – VonC