0
如何引用Invoke-WebRequest的-OutFile参数中的通配符?Invoke-WebRequest -OutFile <filename>带有文件名中的通配符
$filename = "Image[1].jpg"
$uri = [System.Uri]"http:/url/to/image.jpg"
Invoke-WebRequest -Uri $uri -OutFile $filename
此代码给了我一个例外:
Cannot perform operation because the wildcard path Image[1].jpg did not resolve to a file.
Technet 说
两件事情,这里要注意。首先,我们用单引号括起了路径名。这不是强制性的,但它使我们的命令在眼睛上更容易一些。 (你会在一分钟内看到)。其次,我们需要在两个反勾号字符(``)前面加上方括号。这告诉PowerShell我们想把左方括号当作普通字符而不是通配符。就像我们说的,它看起来很疯狂,但它的工作原理:
$filename = 'Image``[1``].jpg'
给我:
Cannot perform operation because the wildcard path Image``[1``].jpg did not resolve to a file.
更改文件名
$filename = "Image``[1``].jpg"
不会产生异常,但保存文件的名称是
Image`[1`].jpg
我很想更改文件名,但需要在下载时保持相同的名称。
关于如何使这项工作的任何想法?
THX
林困惑,为什么你需要一个OUTFILE通配符? – ArcSet
这是一个已报告的问题https://github.com/PowerShell/PowerShell/issues/3174没有任何评论。声称有解决方法,但没有提及任何。 @ArcSet我不认为提问者在outfile上需要通配符... – TessellatingHeckler
@ArcSet我不需要在outfile上使用通配符,但Powershell会解释任何[,],* ,?在作为通配符的路径中。 [和]是Windows文件名的合法字符,我试图下载一个包含[和]并保存文件名的文件。 –