【问题标题】:Get user name from the command line on different platforms从不同平台的命令行获取用户名
【发布时间】:2012-07-25 06:29:13
【问题描述】:

在 MATLAB 中有没有办法获取启动会话的用户的用户名?

我对 WindowsLinuxMac OSX 的解决方案感兴趣。我想如果解决方案是特定于平台的,那么两种解决方案都可以按如下方式集成:

if ispc
    user_name = % method 1
elseif isunix
    user_name = % method 2
elseif ismac
    user_name = % method 3
end

【问题讨论】:

    标签: matlab platform-independent


    【解决方案1】:

    在 Windows 上获取它:

    getenv('USERNAME')

    【讨论】:

    • 再详细一点怎么样。
    【解决方案2】:

    如何使用 Java(适用于 MATLAB 支持的所有平台):

    user_name = java.lang.System.getProperty('user.name')
    

    【讨论】:

    • 绝对是更便携/优雅/可靠的解决方案。
    • 毫不奇怪,如果从命令行运行matlab -nojvm,这将不起作用。
    • 还可能必须包含在char(user_name) 中,才能将sprintfswitch 语句等转换为典型的matlab char 数组。
    【解决方案3】:
    if isunix
        [~, user_name] = system('whoami') % exists on every unix that I know of
        % on my mac, isunix == 1
    elseif ispc
        [~, user_name] = system('echo %USERDOMAIN%\%USERNAME%') % Not as familiar with windows,
                                % found it on the net elsewhere, you might want to verify
    end
    

    希望对您有所帮助!您可能还想添加一个else I'm confused 子句,以防万一您发现该系统不是unix 也不是pc。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 2013-09-25
      • 2012-08-16
      • 2012-09-23
      • 1970-01-01
      • 1970-01-01
      • 2012-01-16
      相关资源
      最近更新 更多