Chạy một lệnh trong tất cả các thư mục con trong một tệp bó


2

Tôi có một tệp bó trông như thế này:

IF EXIST icon.ico (
    attrib -S -H -R desktop.ini
    echo f | xcopy /H /Y "%~dp0desktop.ini.txt" desktop.ini
    attrib +S +H +A desktop.ini
)

Điều này hoạt động hoàn hảo cho nhu cầu của tôi. Câu hỏi của tôi là làm thế nào để tôi chạy nó trong tất cả các thư mục con?

Câu trả lời:


4

Làm cách nào để một lệnh chạy trong tất cả các thư mục con trong một tệp bó?

Bạn có thể dùng for /r cho điều này

Sử dụng tệp bó sau:

for /r "starting_directory" %%a in (.) do (
  pushd %%a
  if exist icon.ico (
    attrib -s -h -r desktop.ini
    echo f | xcopy /h /y "%~dp0desktop.ini.txt" desktop.ini
    attrib +s +h +a desktop.ini
    ) 
  popd 
  )

for / r - Lặp qua các tệp (Recurse thư mục con)

Cú pháp

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

Chìa khóa

drive:path : Cây thư mục nơi chứa các tập tin.

set : Một tập hợp một hoặc nhiều tệp. Ký tự đại diện phải được sử dụng.                    Nếu (bộ) là ký tự dấu chấm (.) Thì FOR sẽ                    lặp qua mọi thư mục.

command : Các lệnh để thực hiện, bao gồm bất kỳ                    tham số dòng lệnh.

%% tham số`: Một tham số có thể thay thế:                    trong một tệp bó sử dụng %% G (trên dòng lệnh% G)

Nguồn cho / r - Lặp qua các tập tin (Recurse thư mục con).


Đọc thêm


Tôi đã tìm ra điều này trước khi thấy câu trả lời của bạn. Giải pháp của bạn giống hệt tôi, cảm ơn!
SportySpice
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.