Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.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_Search_Scripting_Delete File - Fatal编程技术网

Windows PowerShell搜索特定文件并将其删除

Windows PowerShell搜索特定文件并将其删除,windows,powershell,search,scripting,delete-file,Windows,Powershell,Search,Scripting,Delete File,我正在学习PS,无法理解这一点: $fileName = @("file1.url","file2.url","file3.url") foreach ($a in $fileName) { Get-ChildItem -Path \\mySharePath\* -include $fileName -Recurse } | Remove-Item -Force 目的是为每个文件名搜索$filename,一旦找到,就删除该文件。从注释中总结。我看到你从本地的机器上得到了它,但试图分享它。如果该

我正在学习PS,无法理解这一点:

$fileName = @("file1.url","file2.url","file3.url")
foreach ($a in $fileName) {
Get-ChildItem -Path \\mySharePath\* -include $fileName -Recurse
} | Remove-Item -Force

目的是为每个文件名搜索$filename,一旦找到,就删除该文件。

从注释中总结。我看到你从本地的机器上得到了它,但试图分享它。如果该共享路径是没有共享文件夹实际路径的服务器,则它将无法工作。您不能浏览这样的服务器以获取其共享。您可以使用WMI或新的服务器模块commandlets从服务器获取共享名,但您必须直接以共享为目标来浏览它,并与之交互

例如,尝试只对“\mysharepath*”服务器进行gci,而不使用include with recurse,则不会得到任何回报。共享路径应为:

\文件服务器\sharedfolder


使用正确的服务器名称和共享文件夹递归,如果文件在共享文件夹中,您将获得正在查找的结果。

运行
获取帮助获取ChildItem-参数Include
告诉我它接受字符串数组,因此,您可以跳过整个
ForEach
循环,只需执行
Get ChildItem\\mySharePath\*-include$filename-recurse | remove item-force
。另外,您使用的
ForEach
错误。要在尝试使用它时使用它,您可以执行
-在循环中包含$a
。您是正确的,但是测试
获取ChildItem\\mySharePath\*-包含$filename-recurse
只会返回我的第一个文件名,即file1.url
$filename=@(“file1.url”、“file2.url”、“file3.url”);Get ChildItem\\mySharePath\*-include$fileName-Recurse | Remove Item-Force
工作正常当我测试它时,它删除了所有3个文件。可能是因为我的实际文件名吗?这些是他们的空间。所以它们就像“file number one.url”,当我创建数组时,我使用双引号来指定文件名;类似这样的内容:
$fileName=@(“文件号1.url”,“文件号2.url”)
仍然不适合我…:|真的不应该。诚然,我在我的C:drive上对文件运行了它,但是我能够递归地搜索一个文件夹,并使用
-Include
参数找到名称中有空格的3个文件。我不认为网络共享会阻碍这一点。