需要将 Windows 7 中的 %username% 变量截断为七个字符

需要将 Windows 7 中的 %username% 变量截断为七个字符

我使用一个脚本,根据系统 %username% 为 AS400 会话生成会话名称,问题是如果用户名超过 7 个字符,连接将失败。会话名称会附加一个字符,连接支持的总长度为 8 个字符。

有任何想法吗?

答案1

如果我理解正确的话,最好的方法是选择用户名的子字符串。可以这样做:

%username:~0,7%

这将选择用户名的前七个字符。如果您需要以不同的方式截断,第一个数字(0)是子字符串的起始位置,第二个数字(7)是要选择的字符数。

正如 EBGreen 指出的那样,除了批处理之外,还有其他脚本语言。如果您使用 Powershell,语法将是:

$env:UserName.Substring(0,7)

如果您使用 VBScript,语法如下:

WScript.Echo Left(CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERNAME%"), 7)

答案2

干净的方法是创建一个新的环境变量,该变量在登录期间从目录服务器读取并存储在用户的环境中。

这将允许您在中心位置而不是在所有脚本中更改用于生成 7 个字符名称的函数,并且还允许您在创建帐户期间验证唯一性。

相关内容