批量隐藏 Invoke-WebRequest
Posted
技术标签:
【中文标题】批量隐藏 Invoke-WebRequest【英文标题】:Hiding Invoke-WebRequest in a batch 【发布时间】:2020-05-17 15:55:53 【问题描述】:我正在尝试在我的 .bat 文件中下载一个 exe,但我无法隐藏输出
$progressPreference = 'silentlyContinue'
| Out-Null
和$null 2>&1.
我不知道为什么它们都不起作用。
这是我正在使用的脚本。
powershell "Invoke-WebRequest http://example.com/example.exe -OutFile "%UserProfileDir%\AppData\LocalLow\example_Data\example.exe"
它完美地下载了 exe,但我无法隐藏输出。
【问题讨论】:
[1] 你在说什么输出?进度条? [2] 是否有理由在此过程中涉及 Bat/CMD 的东西? 是的。我在谈论进度条,我在 bat 中做一些其他的事情,所以我必须使用它。这只是其中的一部分 如果您必须使用 bat 文件,则调用.ps1
脚本,而不仅仅是命令。将无进度设置放在该脚本中,然后仅从脚本中发送您需要的内容。然后让 bat/CMD 处理剩下的事情。 ///// 我想不出任何理由使用 Bat 文件。 Bat 文件所做的大多数事情都可以在 PoSh 中完成——包括调用几乎任何实用程序。 [咧嘴]
【参考方案1】:
您可以从这个批处理文件中获得灵感:
@echo off
set URL=https://www.google.tn/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
set FileName=%~dp0Google_Logo.png
Call :Download %URL% %FileName%
Start "" %FileName% & Exit
::*********************************************************************************
:Download <URL> <FILE>
Powershell.exe -command "(New-Object System.Net.WebClient).DownloadFile('%1','%2')"
exit /b
::*********************************************************************************
【讨论】:
OP只想使用Invoke-WebRequest,目的是隐藏进度条。 @WasifHasan,阅读What difference is there between WebClient and HTTPWebRequest classes in .NET?。WebClient
似乎是HTTPWebRequest
使用的较低级别的函数。 Invoke-WebRequest
是一个包装器(一个 cmdlet)。如果使用WebClient
避免了所有更高级别的进度条内容,那么我认为它是+1。以上是关于批量隐藏 Invoke-WebRequest的主要内容,如果未能解决你的问题,请参考以下文章
iOS 14隐藏功能:敲一敲iPhone背面截屏批量隐藏App...