Мне нужно написать пакетный файл, чтобы сделать некоторые перемещения содержимого каталога.
Как я могу получить в пакетной переменной значение пути к профилю, возвращаемое командой net user xxx /domain?
Мне нужно написать пакетный файл, чтобы сделать некоторые перемещения содержимого каталога.
Как я могу получить в пакетной переменной значение пути к профилю, возвращаемое командой net user xxx /domain?
Вы можете использовать цикл 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 /?
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