1

У меня есть сценарий Perl, который хорошо работает в Windows, однако одна функция требует использования файла .netrc для получения учетных данных.

Есть ли в Windows эквивалент .netrc или другого решения для Windows?

3 ответа3

4

Окна должны быть идентичны, за исключением того, что ваш домашний каталог находится в другом месте.

Попробуйте поискать в %userprofile% .netrc .

Если он отсутствует, вы можете создать его в Проводнике, создав новый файл с именем .netrc. (финал . исчезнет).

Вам может потребоваться создать переменную среды с именем HOME которая указывает на %USERPROFILE% , например так: setx HOME %USERPROFILE%

1

В ОС Windows откройте cmd.exe , введите

echo %HOME%

а потом

echo %USERPROFILE%

Вывод должен быть одинаковым. Если не сделать это

setx HOME %USERPROFILE%

Затем создайте файл _netrc каталоге %USERPROFILE% и добавьте

machine <hostname1>
login <login1>
password <password1>

Пример здесь

Важный! в Windows вы должны создать _netrc вместо .netrc

Подробнее об этом вы можете прочитать здесь

0

Вы можете проверить, работаете ли вы в 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 для учетной записи пользователя, заполнить его, и сделали.

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