2012-02-16 38 views
37

Tôi muốn nén một thư mục chứa các tệp. Vì vậy, inorder để làm điều đó tôi cần phải lặp qua toàn bộ danh sách tập tin và thực hiện lệnh 7za. (Phiên bản dòng lệnh 7zip)%% A bất ngờ tại thời điểm này

for /f %%A in ('"G:\Files Sample\zip\txt\*.t 
xt"') do 7za -tzip "%%A.zip" "%%A" 

Tuy nhiên, cửa sổ cho biết lệnh này không hợp lệ.

Thông báo lỗi là

%%A was unexpected at this time 

Làm thế nào để tôi vượt qua những vấn đề này?

Trả lời

59

%%A được sử dụng khi bạn sử dụng một chương trình hàng loạt (* .bat)

thử loại bỏ một '%'

+0

yup đã giúp, và cũng có một điểm cần lưu ý, bạn cần phải đặt lệnh dir/b bên trong khu vực trong ngoặc vuông – klijo

+0

Bạn đã cứu sống tôi :) – VenomVendor

+0

Cũng cần lưu ý rằng bạn không thể sử dụng một cái gì đó như% tập tin có vẻ như. Chỉ có một chữ cái duy nhất được cho phép tham số. – fschmitt

3

Nếu bạn đang làm việc đó từ dòng lệnh, bạn không cần phải thoát khỏi%, vì vậy %a là đủ. Bạn chỉ cần sử dụng %%a từ các tệp hàng loạt.

Ngoài ra, bạn muốn chọn các tệp thay vì thực thi "G: \ Tệp mẫu \ zip \ txt \ *. Txt" làm lệnh, là công tắc /f kết hợp với dấu nháy đơn. Lệnh đầy đủ sẽ là: for %A in ("G:\Files Sample\zip\txt\*.txt") do 7za -tzip "%A.zip" "%A"

0

Hãy thử điều này trong một tập tin thực thi.

FOR "G:\Files Sample\zip\txt\" %%G IN (*.txt) DO 7za -tzip "%%G.zip" "%%G" 

Thêm /R làm tùy chọn tìm kiếm tệp trong tất cả thư mục con.

Một lời giải thích tốt các phương pháp cmd- bạn có thể tìm thấy ở ss64

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