получение значения profilepath в пакетной переменной


1

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

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


% userprofile% - это то, что вы ищете. Это стандартная переменная.
music2myear

Ответы:


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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.