我有一个在 Windows 上运行良好的 Perl 脚本,但有一个功能需要使用.netrc
文件来检索凭据。
Windows 上是否有与 等效的.netrc
或其他解决方案?
答案1
除了您的主目录位于不同位置之外,Windows 应该是相同的。
尝试在%userprofile%
目录中查找.netrc
。
如果丢失,您可以在资源管理器中通过创建一个名为.netrc.
(最后一个.
将消失)的新文件来创建它。
你可能需要创建一个名为的环境变量,HOME
指向%USERPROFILE%
,如下所示:setx HOME %USERPROFILE%
答案2
答案3
您可以检查您是否在 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>
-- Windows Vista 及更新版本的“用户”,XP 及更早版本的“文档和设置”。您可以.netrc
在那里创建一个文件并使用必要的凭据填充它,这将需要更少(或不需要)更改代码 -- 但是,它不符合 Windows 的惯例,Windows 的惯例是将配置文件放在C:\Users\<Username>\AppData\Local\<Developer>\<Program>\
或类似目录中。您可以自行决定是修改代码以符合惯例,还是只是为了方便起见而查看用户配置文件基目录。
当然,如果您在 Cygwin Perl 下运行该脚本,您只需创建~/.netrc
用户帐户,填充它,然后就完成了。