You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell/CMD自动化向SetPassword.exe传入两次密码

自动化命令行程序的密码重复输入验证流程

PowerShell 方案

方法1:管道传递标准输入

如果目标程序SetPassword.exe支持读取标准输入,这是最简单的实现方式:

  1. 先生成随机密码,再将密码(两次,用换行分隔)通过管道传给程序:
# 生成12位包含大小写字母和数字的随机密码,可调整Count值改变长度
$randomPassword = -join ((65..90) + (97..122) + (48..57) | Get-Random -Count 12 | ForEach-Object {[char]$_})

# 传递两次密码给程序
"$randomPassword`n$randomPassword" | .\SetPassword.exe

方法2:使用.NET Process类(兼容更多程序)

部分程序可能不接受管道输入,而是直接读取控制台缓冲区,这时用.NET的Process类更可靠:

# 生成随机密码
$randomPassword = -join ((65..90) + (97..122) + (48..57) | Get-Random -Count 12 | ForEach-Object {[char]$_})

# 配置进程启动参数
$processStartInfo = [System.Diagnostics.ProcessStartInfo]@{
    FileName               = ".\SetPassword.exe"
    RedirectStandardInput  = $true
    UseShellExecute        = $false
    CreateNoWindow         = $true
}

# 启动进程并输入密码
$process = [System.Diagnostics.Process]::Start($processStartInfo)
$process.StandardInput.WriteLine($randomPassword)
$process.StandardInput.WriteLine($randomPassword)
$process.StandardInput.Close()
$process.WaitForExit()

CMD 方案

方法1:Echo 管道输入

适用于支持标准输入的程序:

@echo off
:: 生成简单随机密码,可替换为更复杂的生成逻辑
set "randomPassword=ABC123xyz789"
:: 连续输出两次密码,通过管道传递给程序
(echo %randomPassword% & echo %randomPassword%) | SetPassword.exe

方法2:VBScript 辅助(兼容更多场景)

如果CMD管道无效,用VBScript模拟控制台输入:

  1. 创建SetPasswordAuto.vbs脚本:
Set objShell = CreateObject("WScript.Shell")
' 生成12位随机密码
randomPassword = GenerateRandomPassword(12)
' 启动程序并输入两次密码
Set objExec = objShell.Exec("SetPassword.exe")
objExec.StdIn.WriteLine(randomPassword)
objExec.StdIn.WriteLine(randomPassword)
objExec.StdIn.Close()

' 随机密码生成函数
Function GenerateRandomPassword(length)
    Dim chars, i, randNum
    chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
    Randomize
    GenerateRandomPassword = ""
    For i = 1 To length
        randNum = Int((Len(chars) * Rnd) + 1)
        GenerateRandomPassword = GenerateRandomPassword & Mid(chars, randNum, 1)
    Next
End Function
  1. 在CMD中执行:
cscript //nologo SetPasswordAuto.vbs

注意事项

  • 优先使用标准输入传递的方式(管道/Process类),比模拟键盘输入(如SendKeys)更稳定可靠
  • 如果目标程序使用密码掩码(输入时不显示字符),只要它是读取标准输入,上述方法依然有效
  • 随机密码生成逻辑可根据需求调整,比如添加特殊字符、调整长度等

内容的提问来源于stack exchange,提问作者Zac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 08:25:21