1

Мне нужно написать пакетный файл, чтобы сделать некоторые перемещения содержимого каталога.

Как я могу получить в пакетной переменной значение пути к профилю, возвращаемое командой net user xxx /domain?

1 ответ1

0

Вы можете использовать цикл for /f и поместить команду net user конвейеру в команду findstr, используя соответствующие tokens и delims в пакетном скрипте, чтобы проанализировать вывод и получить значение из поля User profile которое установлено для учетной записи в AD. ты бежишь против этой команды.

скрипт

@ECHO ON
for /f "tokens=3 delims= " %%a in ('net user <username> /domain ^| findstr /i "profile"') do set profilepath=%%a
echo %profilepath%

Примечания сценария

  • Этот сценарий предполагает, что вы замените <username> ниже явным значением необходимого имени пользователя при запуске, чтобы получить Profile path к профилю из команды net use xxx /domain .

  • Символ каретки перед символом канала (т. ^|) В скобках цикла for /f направляет вывод команды net user в команду findstr поэтому он должен экранировать символ канала, поэтому во время выполнения команды внутри Цикл, который знает, что перенаправляет вывод одной команды как ввод другой команды, в противном случае он запутывается, поэтому просто избегайте его.

  • Знак процента имеет особое значение в пакетных сценариях, поэтому при использовании цикла for внутри пакетного сценария необходимо удвоить знак процента, т. %%a этого заполнителя, чтобы избежать его, гарантируя, что он интерпретируется как один % и может передавать переменную соответственно в пределах петля.


Дополнительные ресурсы

  • FOR /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
    
  • Escape-символы, разделители и цитаты

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .