当前位置: 首页 > 知识库问答 >
问题:

. bat文件中的PowerShell命令失败

谢昊乾
2023-03-14

您好,我正在bat文件中运行powershell命令,并收到以下错误:

set "workdir=C:\myproject"
mkdir %workdir%
powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://www.python.org/ftp/python/3.6.1/python-3.6.1.exe', '%workdir%\pyinstaller.exe')"

错误:

Exception calling "DownloadFile" with "2" argument(s): "The request was aborted: Could not create SSL/TLS secure channel."
At line:1 char:1
+ (New-Object System.Net.WebClient).DownloadFile('https://www.python.or ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : WebException

有什么建议吗?

共有1个答案

蔚学真
2023-03-14

请参阅:Powershell将安全协议设置为Tls 1.2,并且:调用WebRequest SSL失败?

您可以使用批处理文件执行这样的操作:

@echo off
Title Download a file with Powershell
color 0A & Mode 60,3
set "workdir=C:\myproject"
If not exist %workdir% mkdir %workdir%
Set "URL=https://www.python.org/ftp/python/3.6.1/python-3.6.1.exe"
Set "FileLocation=%workdir%\pyinstaller.exe"
echo(
echo    Please wait a while ... The download is in progress ...
Call :Download %URL% %FileLocation%
echo Done
Explorer /n,/select,"%FileLocation%" & Exit
::**************************************************************************
:Download <url> <File>
Powershell.exe ^
$AllProtocols = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12'; ^
[System.Net.ServicePointManager]::SecurityProtocol = $AllProtocols; ^
(New-Object System.Net.WebClient).DownloadFile('%1','%2')
exit /b
::**************************************************************************

您还可以使用以下批处理文件下载带有Certutil命令的文件:

@echo off
Title Download a file with Certutil
color 0A & Mode 60,3
set "workdir=C:\myproject"
If not exist %workdir% mkdir %workdir%
Set "URL=https://www.python.org/ftp/python/3.6.1/python-3.6.1.exe"
Set "FileLocation=%workdir%\pyinstaller.exe"
echo(
echo    Please wait a while ... The download is in progress ...
Call :Download %URL% %FileLocation%
echo Done
Explorer /n,/select,"%FileLocation%" & Exit
::------------------------------------------
:Download <url> <File>
Certutil.exe -urlcache -split -f %1 %2>nul
exit /b
::------------------------------------------
 类似资料:
  • 我创建了以下文件: //npminstall.bat 当我从Windows 10命令行(dos)运行以下命令时,命令会触发,但不会触发。我尝试在第一行之后放一个半彩色,如,但所做的只是给我npm的帮助说明。 如何让第二行在之后触发? 补充说明 我发现这也会导致同样的行为: //npminstall.bat 我认为这是因为<code>npm install 后续行动2 //npminstall.ba

  • 本文向大家介绍简单谈谈PowerShell 4.0中的新命令,包括了简单谈谈PowerShell 4.0中的新命令的使用技巧和注意事项,需要的朋友参考一下 随着PowerShell 3.0和Windows Server 2012版本的发布,微软提升了Windows PowerShell的功能,在PowerShell 4.0和Windows Server 2012 R2版本发布时,微软还会继续添加新

  • 无论出于什么原因,当我试图调用我正在编写的C#程序时,我试图在命令行中用“--”传递两个参数,PowerShell不会用我的命令行调用该程序。 例如,我提供命令行: 为什么会这样? 顺便说一句,如果我把它叫做: 它像预期的那样工作。 似乎没有帮助。 我之所以认为这是PowerShell的怪异之处,是因为如果我从cmd.exe运行相同的命令行,一切都会像预期的那样工作。

  • 本文向大家介绍PowerShell入门教程之Cmd命令与PowerShell命令相互调用的方法,包括了PowerShell入门教程之Cmd命令与PowerShell命令相互调用的方法的使用技巧和注意事项,需要的朋友参考一下      单独使用一种脚本来完成一项任务是理想的状态,而现实的情况往往是,因为历史原因、或者团队组成,你不得不将多种脚本或者程序组合在一起,来完成某项任务。本文的讨论范围是Cm

  • 问题内容: 我有一个我需要使用程序执行的程序。有人可以指导我该怎么做吗? 我的命令是 问题答案: 您应该编写一个这样的Java程序,这是一个基于Nirman的技术博客的示例,其基本思想是执行如下调用PowerShell进程的命令: 为了执行Powershell脚本

  • 我正在尝试只使用一个文件。 我的代码是: 暂停 这应该会在PowerShell中打开所有脚本,但当执行bat文件时,cmd窗口会打开,我得到: 终点站的卡德纳广场:“。CategoryInfo:ParserError:(:)[],ParentContainerErrorRecordException FullyQualifiedErrorId:TerminatorExpectedAtonForSt