powershell: 生成随机字符串

ASCII范围内的

获取6个随机字符(字母和数字)

4857是数字0-9,powershell的范围操作符是..,和Perl 5的一样, 所以 48..57就是指(48 49 50 51 52 53 54 55 56 57)的列表。 6590是大写字符A到Z,97122是小写字母。如果需要获取多有的可打印字符(包括空格)的话,范围是32..127

[char]把对应数字转换成字符,例如 [char](66)就是B(大写字母B),C语言使用的小括号来进行类型强制转换。

# 1
-join((48..57 + 65..90 + 97..122) | get-random -count 6 | %{[char]$_})
# 如果不指定-count参数,则前面的list有多少个字符
# get-random就会获取多少个字符,只是顺序打乱了
# 2
-join(0..1024|%{[char][int]((48..57 + 65..90 + 97..122)| Get-Random)})
# 这里的0..1024相当于循环控制,每循环一次后面的%{[char][int]((48..57 + 65..90 + 97..122)| Get-Random)}执行一次,其中在数字字母中随机选一个字符
# 0..1024, like Perl, loop controller
#-join是
字符连接操作符
# 3
-join ([char[]](65..90+97..122) | Get-Random -Count 6)
function Get-RandomString() {
    param(
    [int]$length=10,
    # 这里的[int]是类型指定
    [char[]]$sourcedata
    )

    for($loop=1; $loop –le $length; $loop++) {
            $TempPassword+=($sourcedata | GET-RANDOM | %{[char]$_})
    }
    return $TempPassword
}

Get-RandomString -length 14 -sourcedata (48..127)

Unicode

引用

1. Powershell Reference 3.0: Get-Random
2. Generating A New Password With Windows Powershell
3. Generate Random Letters With Powershell
4. How do I encode Unicode character codes in a PowerShell string literal?

转载于:https://www.cnblogs.com/raybiolee/p/6261928.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值