Tôi cần phải viết một batchfile để thực hiện một số di chuyển nội dung thư mục.
Làm thế nào tôi có thể nhận được vào một biến số giá trị của profilepath được trả về bởi lệnh người dùng net xxx / domain?
Tôi cần phải viết một batchfile để thực hiện một số di chuyển nội dung thư mục.
Làm thế nào tôi có thể nhận được vào một biến số giá trị của profilepath được trả về bởi lệnh người dùng net xxx / domain?
Câu trả lời:
Bạn có thể sử dụng vòng lặp for / f và đặt net user
lệnh được chuyển sang lệnh findstr bằng cách sử dụng tokens
và delims
theo đó trong tập lệnh bó để phân tích đầu ra và lấy giá trị từ User profile
trường được đặt cho tài khoản trong AD mà bạn chạy theo lệnh đó.
@ECHO ON
for /f "tokens=3 delims= " %%a in ('net user <username> /domain ^| findstr /i "profile"') do set profilepath=%%a
echo %profilepath%
Ghi chú kịch bản
Kịch bản này giả định rằng bạn sẽ thay thế
<username>
bên dưới bằng giá trị rõ ràng của tên người dùng cần thiết khi chạy để lấy lệnhProfile path
từnet use xxx /domain
lệnh.Biểu tượng dấu mũ ở phía trước ký hiệu ống (nghĩa là
^|
) trong dấu ngoặc củafor /f
vòng lặp, đầu ra củanet user
lệnh vàofindstr
lệnh để nó thoát khỏi biểu tượng đường ống để tại thời điểm thực hiện lệnh trong vòng lặp, nó biết rằng nó đang chuyển hướng đầu ra của một lệnh như một lệnh khác nhập vào nếu không nó bị nhầm lẫn vì vậy chỉ cần thoát nó.Dấu phần trăm có ý nghĩa đặc biệt trong các tập lệnh bó, vì vậy khi sử dụng một
for
vòng lặp trong tập lệnh bó, bạn cần tăng gấp đôi dấu phần trăm tức là%%a
của trình giữ chỗ này để thoát nó, đảm bảo nó được hiểu là một lần duy nhất%
và có thể chuyển biến tương ứng trong vòng lặp.
For /?
delims=xxx - specifies a delimiter set. This replaces the
default delimiter set of space and tab.
tokens=x,y,m-n - specifies which tokens from each line are to
be passed to the for body for each iteration.
This will cause additional variable names to
be allocated. The m-n form is a range,
specifying the mth through the nth tokens. If
the last character in the tokens= string is an
asterisk, then an additional variable is
allocated and receives the remaining text on