gpt4 book ai didi

powershell - 内部逻辑的Powershell问题

转载 作者:行者123 更新时间:2023-12-03 00:22:26 25 4
gpt4 key购买 nike

我在Powershell 1.0中遇到了一件奇怪的事情,但我不明白为什么Powershell会对这种情况使用react。

情况:我在驱动器上用字母e创建了几个zip文件:

现在我要全部删除。但是我的e:驱动器上还有更多的zip文件。因此,我只想删除此特定文件夹及其子文件夹中的那些文件夹。

我要为此使用的命令是:

PS E:\> Get-ChildItem -Path E:\Webdev\icons\ -Include *.zip -Recurse -Name -Force | Remove-Item -Force

但是,执行后,我遇到了很多错误,都说

Cannot find path E:\test.zip because it does not exist.



实际上,在e的正下方没有test.zip这样的文件:
它确实存在于我提交脚本的图标文件夹下。

解决的方法是将目录更改为icons文件夹,然后在其中执行命令。

但这是不合逻辑的。我想说出应该在哪个目录中删除文件,然后仅在该目录中删除它们。为什么Powershell开始在当前目录中查找文件,这对我来说还是个谜。

有人可以向我解释一下吗?

最佳答案

如果在管道的末尾删除Remove-Item,您将看到返回的所有路径名都相对于您通过-PathGet-ChildItem参数输入的路径。因此,Remove-Item在当前目录中查找Get-ChildItem返回的所有路径。

正如capar所建议的,-Name参数是这里的问题。删除它可以确保您获得File对象,其中Remove-Item可以轻松找到该文件:

Get-ChildItem -Path E:\Webdev\icons\ -Include *.zip -Recurse -Force | Remove-Item -Force

将按预期工作。如果可以用对象来解决某些问题,请不要陷入字符串级别:-)

关于powershell - 内部逻辑的Powershell问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/763008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com