2012-01-17 34 views
14
for /r %%i in (*) do (echo %%i) 

Kết quả trongdòng duy nhất cho tuyên bố: %% i 'bất ngờ vào lúc này'

%% tôi đã bất ngờ vào thời điểm này

Tại sao?

+1

Không phải là '% i' bên trong' for' thực tế? Giống như tham số cho 'echo'. – Blindy

+0

Từ trong một loạt hoạt động tốt cho tôi, có bất kỳ mã nào khác trong tệp không? –

+4

% cho dòng lệnh, %% cho tệp hàng loạt. –

Trả lời

21

Bạn phải cố gắng chạy lệnh từ dòng lệnh chứ không phải từ trong tệp lô. Sử dụng một% thay vì hai khi chạy từ dòng lệnh.

for /r %i in (*) do (echo %i) 

Gõ HELP FOR from the command line và đọc đoạn thứ 3.

+0

Nếu bạn thấy "Tôi đã bất ngờ tại thời điểm này", hãy đọc http://stackoverflow.com/questions/14509652 trước khi cắt và dán câu trả lời này vào tệp của bạn. – Leo

0

Cú pháp:

FOR /R [[drive:]path] %%parameter IN (set) DO command 

Cần con đường trước %% i ... đó là lý do nó Unexpected

Nếu bạn muốn làm * cho thư mục hiện tại, chỉ cần sử dụng cho "\". đường dẫn

for /r ".\" %%i in (*) do (echo %%i) 
+0

Đường dẫn ** NOT ** được yêu cầu sau tùy chọn/r. Nó mặc định là thư mục hiện tại. – dbenham

+0

meh ... người dùng đã chỉ định tập tin theo lô và đó là điều duy nhất tôi thấy mất tích. Vì vậy, đó là vấn đề về PEBKAC =/ – Mechaflash

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