是否有针对依赖 netrc 的程序的 Windows 解决方案?

是否有针对依赖 netrc 的程序的 Windows 解决方案?

我有一个在 Windows 上运行良好的 Perl 脚本,但有一个功能需要使用.netrc文件来检索凭据。

Windows 上是否有与 等效的.netrc或其他解决方案?

答案1

除了您的主目录位于不同位置之外,Windows 应该是相同的。

尝试在%userprofile%目录中查找.netrc

如果丢失,您可以在资源管理器中通过创建一个名为.netrc.(最后一个.将消失)的新文件来创建它。

可能需要创建一个名为的环境变量,HOME指向%USERPROFILE%,如下所示:setx HOME %USERPROFILE%

答案2

Windows 操作系统打开cmd.exe,输入

echo %HOME%

进而

echo %USERPROFILE%

输出应该相同。如果不相同,请执行以下操作

setx HOME %USERPROFILE%

之后创建_netrc目录中的文件%USERPROFILE%并添加

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

例子这里

重要的!在 Windows 上你应该创建_netrc代替.netrc

您可以阅读更多相关内容这里

答案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用户帐户,填充它,然后就完成了。

相关内容