Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何将变量从批处理文件传递到Powershell脚本_Windows_Powershell_Batch File - Fatal编程技术网

Windows 如何将变量从批处理文件传递到Powershell脚本

Windows 如何将变量从批处理文件传递到Powershell脚本,windows,powershell,batch-file,Windows,Powershell,Batch File,我有一个批处理文件,它将用户文件从一台计算机复制到另一台联网计算机 @echo关闭 cls @输入旧的计算机名 集合/付款资产= REM robocopy.exe\\%asset%\c$\c:\/S/Z/XJD/XJ/XA:SH/XA:T/XD“Dir1”“Dir2”/XF*.dll*.log*.txt*.exe/log+:“\\server\path\%asset%-to-%computername%-Transfer.log”/NP/FP/V/TEE PowerShell.exe-命令“&{

我有一个批处理文件,它将用户文件从一台计算机复制到另一台联网计算机

@echo关闭
cls
@输入旧的计算机名
集合/付款资产=
REM robocopy.exe\\%asset%\c$\c:\/S/Z/XJD/XJ/XA:SH/XA:T/XD“Dir1”“Dir2”/XF*.dll*.log*.txt*.exe/log+:“\\server\path\%asset%-to-%computername%-Transfer.log”/NP/FP/V/TEE
PowerShell.exe-命令“&{Start Process PowerShell.exe-ArgumentList'-ExecutionPolicy Bypass-File”“%~dpn0.ps1”“-动词RunAs}”
暂停
这是我的PowerShell脚本:

$source=“\\${env:asset}\C$\Temp\source”
$dest=“C:\Temp\dest”
写入输出$source
读取主机“按ENTER键退出”
然后我需要调用调用管理员登录的PowerShell脚本,然后传递
%asset%
%useraiu%
变量


我似乎不知道如何将批处理文件中的
%asset%
%useraiu%
传递到PowerShell脚本。

我发现,如果您是从批处理文件调用PowerShell脚本,并且需要使用admin运行PowerShell脚本,则需要使用此语法

PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File """"%~dpn0.ps1"""" """"%asset%"""" ' -Verb RunAs}"
PowerShell脚本名称和参数需要用4个双引号括起来,以便正确处理带有空格的路径/值


这是迄今为止唯一对我有效的解决方案。

你说得对。关于
-Verb
,我弄错了,它是
启动进程的参数,而不是
powershell.exe的参数。对不起,吵闹了。