我想将值“200001”从PowerShell传递给cmd脚本“1%”多个PowerShell脚本使用的cmd脚本,并且每个PowerShell脚本都有自己的值。
PS脚本:
function CallcmdExtract
{
$var_cmd= "D:\ cmd\Generatefile.cmd"
$Invocation = (Get-Variable MyInvocation -Scope 1).Value
$ScriptPath = Split-Path $Invocation.MyCommand.Path
try {
Invoke-Item $var_cmd
}
catch {
throw("ERROR: Problem encountered, error=$_")
}
}
CallcmdExtract
我想要将值传递给它的cmd脚本是
@echo off
IF (%1) == () GOTO EXIT_ERROR
SET CLIENT=%1
.
.
.
答案1
我已经解决了这个问题
- $您想要传递的值 = XXXXXX
- 调用命令 -ScriptBlock {&$cmdpath $Value_you_want_to_pass}
答案2
当将 CMD 作为单独的进程运行时,我传递 tmp 文件,而不是从 powershell 调用:
$size | Out-File -Encoding "ASCII" tmp
通过CMD访问:
set /p size=<tmp
节省了我移植批处理文件到 powershell 脚本的时间。毕竟,64 位计算潜力尚未完全实现,而 16 位和 32 位计算仍然存在,甚至在 64 位硬件上运行。
请注意在 powershell 代码中使用 ASCII 编码,以避免 BOM 和 UTF16 传递给批处理脚本。