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

wil*_*fun 4 windows-7 script environment-variables

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

有任何想法吗?

Sai*_*cko 13

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

%username:~0,7%
Run Code Online (Sandbox Code Playgroud)

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

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

$env:UserName.Substring(0,7)
Run Code Online (Sandbox Code Playgroud)

如果您使用 VBScript,则语法为:

WScript.Echo Left(CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERNAME%"), 7)
Run Code Online (Sandbox Code Playgroud)

  • 我假设脚本语言和 SaintWacko 一样是批处理的。不过作为补充,在 Powershell 中,您可以执行 $env:UserName.Substring(0,7) (2认同)