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

使用PowerShell循环访问目录中的文件

端木令
2023-03-14

如何更改下面的代码来查看目录中的所有.log文件,而不是只查看一个文件?

我需要循环遍历所有文件,删除所有不包含“step4”或“step9”的行。目前,这将创建一个新文件,但我不确定如何在这里使用for each循环(newbie)。

$In = "C:\Users\gerhardl\Documents\My Received Files\Test_In.log"
$Out = "C:\Users\gerhardl\Documents\My Received Files\Test_Out.log"
$Files = "C:\Users\gerhardl\Documents\My Received Files\"

Get-Content $In | Where-Object {$_ -match 'step4' -or $_ -match 'step9'} | `
Set-Content $Out

共有1个答案

方宁
2023-03-14

试一试:

Get-ChildItem "C:\Users\gerhardl\Documents\My Received Files" -Filter *.log | 
Foreach-Object {
    $content = Get-Content $_.FullName

    #filter and save content to the original file
    $content | Where-Object {$_ -match 'step[49]'} | Set-Content $_.FullName

    #filter and save content to a new file 
    $content | Where-Object {$_ -match 'step[49]'} | Set-Content ($_.BaseName + '_out.log')
}
 类似资料:
  • 我正在寻找一种方法来迭代目录中的30个文件,并从他们删除基于其他文件中的id行。这些文件包含两列——ID和一个值,没有列名。另一个文件只包含一个应该删除的id(“id”)列(“ids_toberemoved”)。30个文件清理后,我想把它们导出到其他文件夹。 这是我目前掌握的情况: 我在迭代数据帧并用‘IDs _ tobe removed’连接它们的步骤中遗漏了一些东西,以便删除具有匹配id的行。

  • 问题内容: 我有一个图片目录,我想循环浏览并执行一些文件计算。可能只是缺乏睡眠,但是我将如何使用PHP在给定目录中查找,并使用某种for循环遍历每个文件? 谢谢! 问题答案: scandir: 或glob可能更适合您的需求:

  • 我正在尝试使用Gulp从主目录复制所选文件,但以下操作无法完成此操作: 什么是正确的设置为使其工作?文档对此非常简洁。

  • 我正在尝试访问。我已经使用ebconfig将json文件下载到/tmp/目录,以在S3上存储私钥。 但它给了我以下错误 错误:EACCES:权限被拒绝,打开“/tmp/firebaseadminsdk”。json’ 文件中有一段说 第二个条目使用S3Auth身份验证方法从指定的URL下载私钥,并将其保存到/etc/pki/tls/certs/server。钥匙然后,代理服务器可以从此位置读取私钥,

  • 我有一个包含许多子目录的目录,其中包括一个名为OLD的目录。这个旧文件夹也可能位于任何子目录中,并包含存档文件 根目录A 文件1。txt 文件2。txt 旧的 文件1。txt 文件1。txt 老 子目录E 文件7。txt 旧的 我需要在Talend中创建一个作业,该作业将查找所有OLD文件夹(在主目录和子目录中)并从该文件夹中删除文件。我可以使用tFilelist来屏蔽要删除的文件。但无法弄清楚如