【发布时间】:2021-01-20 17:52:57
【问题描述】:
我有两个文件,一个是名为 validator.bat 的批处理文件,另一个是 powershell 脚本 checker.ps1
validator.bat
@echo OFF
set/p "pass=>"
echo %pass%
变量 pass 将使用 powerhell 脚本赋值。
checker.ps1
$pwd1 = Read-Host "Enter your passowrd: "
$pwd2 = 'password'
if ($pwd1 -ceq $pwd2) {
Write-Host "matched"
} else {
Write-Host "differ"
}
我想将输出字符串 "matched"/"differ" 分配给 bat 文件中的 pass 变量,但只使用 powershell 脚本或其代码。 我在 Google 和 Youtube 上进行了很多搜索,但找不到解决问题的方法。 请帮帮我。
【问题讨论】:
-
环境变量是每个会话。因此,如果您使用
set在 cmd.exe 中创建/更改 EnvVar ...它只会被该会话和该会话的子会话看到。你能在一个会话中完成所有这些吗? -
是的,我可以一次完成。我需要通过将其写入 bat 文件来运行 powershell 的完整代码,但这不允许我输入数据。那我将如何获得价值?
-
如果你在 powershell 中做所有事情......那么你将不需要解决将 BAT/CMD 与 PoSh 混合的问题。如果你做不到,那么
save to a file的想法可能是你唯一的希望。 -
我想在 powershell 中做所有事情,但我知道某些任务的 bat 文件代码,我不知道如何转换为 powershell。还有一些我在powershell中知道的功能,我不知道如何在Bat中使用。????
-
感谢您的“为什么”! [grin] 如果您将事情翻译成一个 powershell 脚本,您可能会更好......但是如果您很着急,那么请执行 DougMaurer 的答案中所示的操作.
标签: powershell batch-file variables powershell-2.0 powershell-3.0