i = ['title', 'email', 'password2', 'password1', 'first_name',
'last_name', 'next', 'newsletter']
a, b = i.index('password2'), i.index('password1')
i[b], i[a] = i[a], i[b]
Вы можете использовать переменную имени пользователя: % USERNAME%
Имя пользователя:
echo %USERNAME%
Имя домена:
echo %USERDOMAIN%
Вы можете получить полный список переменных среды, выполнив команду set
из командной строки.
Он должен быть в % USERNAME%
. Очевидно, что его можно легко подделать, поэтому не полагайтесь на него в целях безопасности.
Полезный совет: введите в командной строке set
список всех переменных среды.
Меня всегда раздражало, что в Windows нет некоторых из более полезных небольших утилит для создания сценариев Unix, таких как who / whoami , ] sed и AWK . В любом случае, если вам нужно что-то надежное, получите Visual Studio Express и скомпилируйте следующее:
#include <windows.h>
#include <stdio.h>
int main(int argc, char **argv) {
printf("%s", GetUserName());
}
И просто используйте это в своем командном файле.
% USERNAME% даст вам имя пользователя текущего запущенного процесса. В зависимости от того, как вы запускаете командный файл, это не обязательно то же самое, что имя текущего пользователя. Например, вы могли запускать свой командный файл через запланированную задачу, из службы и т. Д.
Вот более надежный способ получить имя пользователя, вошедшего в систему в данный момент, путем очистки имени пользователя, запустившего Задача explorer.exe:
for /f "TOKENS=1,2,*" %%a in ('tasklist /FI "IMAGENAME eq explorer.exe" /FO LIST /V') do if /i "%%a %%b"=="User Name:" set _currdomain_user=%%c
for /f "TOKENS=1,2 DELIMS=\" %%a in ("%_currdomain_user%") do set _currdomain=%%a & set _curruser=%%b