У меня есть сценарий Perl, который хорошо работает в Windows, однако одна функция требует использования файла .netrc
для получения учетных данных.
Есть ли в Windows эквивалент .netrc
или другого решения для Windows?
У меня есть сценарий Perl, который хорошо работает в Windows, однако одна функция требует использования файла .netrc
для получения учетных данных.
Есть ли в Windows эквивалент .netrc
или другого решения для Windows?
Окна должны быть идентичны, за исключением того, что ваш домашний каталог находится в другом месте.
Попробуйте поискать в %userprofile%
.netrc
.
Если он отсутствует, вы можете создать его в Проводнике, создав новый файл с именем .netrc.
(финал .
исчезнет).
Вам может потребоваться создать переменную среды с именем HOME
которая указывает на %USERPROFILE%
, например так: setx HOME %USERPROFILE%
В ОС Windows откройте cmd.exe
, введите
echo %HOME%
а потом
echo %USERPROFILE%
Вывод должен быть одинаковым. Если не сделать это
setx HOME %USERPROFILE%
Затем создайте файл _netrc
каталоге %USERPROFILE%
и добавьте
machine <hostname1>
login <login1>
password <password1>
Пример здесь
Важный! в Windows вы должны создать
_netrc
вместо.netrc
Подробнее об этом вы можете прочитать здесь
Вы можете проверить, работаете ли вы в Windows, и, если это так, запросить отдельный файл конфигурации, а не искать .netrc
:
my $config_file = '';
if ($^O eq 'MSWin32') {
$config_file = 'c:\\path\\to\\config.ini';
}
else {
$config_file = '~/.netrc';
};
Файл .netrc
по умолчанию находится в $HOME
, эквивалент которого на платформе Windows:c:\{Users|Documents and Settings}\<Username>
- «Users» для Windows Vista и новее, «Documents and Settings». для XP и старше. Вы можете создать там файл .netrc
и заполнить его необходимыми учетными данными, что потребует меньше (или вообще никаких) изменений в вашем коде - однако, он не соответствует соглашениям Windows, которые будут иметь файлы конфигурации в C:\Users\<Username>\AppData\Local\<Developer>\<Program>\
или аналогичные. Вам решать, хотите ли вы изменить свой код в соответствии с соглашением или просто для удобства загляните в базовый каталог профиля пользователя.
Конечно, если вы запускаете скрипт под Cygwin Perl, вы можете просто создать ~/.netrc
для учетной записи пользователя, заполнить его, и сделали.