nhận giá trị profilepath trong biến lô


1

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?


% userprofile% là những gì bạn đang tìm kiếm. Đó là một biến tiêu chuẩn.
nhạc2myear

Câu trả lời:


0

Bạn có thể sử dụng vòng lặp for / f và đặt net userlệnh được chuyển sang lệnh findstr bằng cách sử dụng tokensdelimstheo đó trong tập lệnh bó để phân tích đầu ra và lấy giá trị từ User profiletrường được đặt cho tài khoản trong AD mà bạn chạy theo lệnh đó.

Kịch bản

@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ệnh Profile pathtừ net use xxx /domainlệ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ủa for /fvòng lặp, đầu ra của net user lệnh vào findstrlệ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 forvò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à %%acủ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.


Tài nguyên khác

  • CHO / F
  • FindStr

  • 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
    
  • Nhân vật thoát, dấu phân cách và dấu ngoặc kép

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.