2009-04-24 43 views
6

gì là cách nhanh nhất bằng cách sử dụng hệ điều hành DOS kịch bản hoặc PowerShell để chạy lệnh này đơn giản trên một thư mục và tất cả các thư mục con của nó:Chạy một lệnh đơn giản sử dụng PowerShell đệ quy trên một thư mục

convert filename.jpg -resize 620x620 "R:\processed\filename.jpg" 

DOS hàng loạt kịch bản cho thư mục duy nhất:

FOR %%a in (*.jpg) DO convert %%a -resize 620x620 "R:\processed\%%a" 

Tôi muốn chạy đệ quy này trên cấu trúc thư mục và có đầu ra khớp với phân cấp đầu vào. Tôi đã tìm PowerShell là cách dễ nhất, nhưng tôi không thể học PowerShell trong 5 phút tôi phải làm nhiệm vụ này!

Lưu ý: không phải là nó có liên quan, nhưng convert là từ ImageMagick.

Trả lời

21

Trong PowerShell:

Sử dụng công tắc -recurse và ống dẫn đến foreach. Ví dụ:

dir -recurse -include *.jpg | %{convert $_.FullName -resize 620x620 "R:\processed\$_"} 

(Lưu ý rằng dấu% là bí danh của đối tượng tìm kiếm).

+0

cảm ơn. xin lỗi vì lười biếng. tôi sẽ kiểm tra nó ra –

+0

@dangph Cảm ơn bạn đã làm rõ! – zdan

+0

"R: \ processed \ $ _. Tên" phải là "R: \ processed \ $ ($ _. Name)" để lấy tên tệp trong chuỗi. –

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