Powershell,使用 contains 检查文件是否包含某个单词

2023-11-22

我正在尝试创建一个 powershell 脚本,该脚本查看给定目录下的所有文件和文件夹,然后将 .properties 文件中给定单词的所有实例更改为另一个给定单词的实例。

我在下面写的内容就是这样做的,但是我的版本控制注意到每个文件中的更改,无论它是否包含要更改的单词的实例。为了解决这个问题,我尝试在获取/设置内容之前检查文件中是否存在该单词(如下所示),但是它告诉我 [System.Object[]] 不包含名为“包含”的方法。我认为这意味着 $_ 是一个数组,所以我尝试创建一个循环来遍历它并一次检查每个文件,但它告诉我它无法索引到 System.IO.FileInfo 类型的对象。

谁能告诉我如何更改下面的代码来检查文件是否包含 wordToChange ,然后应用它所做的更改。

$directoryToTarget=$args[0]
$wordToFind=$args[1]
$wordToReplace=$args[2]

Clear-Content log.txt

Get-ChildItem -Path $directoryToTarget -Filter *.properties -Recurse | where { !$_.PSIsContainer } | % { 


If((Get-Content $_.FullName).Contains($wordToFind))
{
    Add-Content log.txt $_.FullName
    (Get-Content $_.FullName) | 
     ForEach-Object { $_ -replace $wordToFind , $wordToReplace } | 
     Set-Content $_.FullName
}



}

谢谢你!


尝试这个:

$directoryToTarget=$args[0]
$wordToFind=$args[1]
$wordToReplace=$args[2]

Clear-Content log.txt

Get-ChildItem -Path $directoryToTarget -Filter *.properties -Recurse | where { !$_.PSIsContainer } | % { 

$file = Get-Content $_.FullName
$containsWord = $file | %{$_ -match $wordToFind}
If($containsWord -contains $true)
{
    Add-Content log.txt $_.FullName
    ($file) | ForEach-Object { $_ -replace $wordToFind , $wordToReplace } | 
     Set-Content $_.FullName
}

}

这会将文件的内容放入数组中$file然后检查每一行的单词。每行结果 ($true/$false) 被放入一个数组中$containsWord。然后检查数组以查看是否找到了该单词($True存在变量);如果是这样那么if loop is run.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Powershell,使用 contains 检查文件是否包含某个单词 的相关文章

随机推荐

  • Hadoop MapReduce 读取文本文件

    我正在尝试编写一个 MapReduce 程序 它可以读取输入文件并将输出写入另一个文本文件 我计划为此使用 BufferedReader 类 但我真的不知道如何在 MapReduce 程序中使用它 我怎样才能为其编写代码片段 附 我对 Ha
  • Meteor.js:查找所有文档并以相反的自然顺序返回

    我正在尝试返回集合中的所有文档 以将其与模板中的 each 一起使用 我的代码如下所示 return Answers find sort natural 1 但文档按自然顺序返回 而不是反向 有谁知道为什么 我从 MongoDB 文档中获取
  • WinMerge:如何在比较中忽略特定单词?

    当我在 Windows 平台上使用 WinMerge 比较 2 个文件时 您知道如何忽略特定单词吗 我的意思是我想对 WinMerge 说 不要关心那串单词 房子 花园等 所以当比较这两行时 the house is at london t
  • 由于来自 localhost 的 CORS 问题,请求失败

    我在 SO 和不同的博客上看到了几十个问题 并用 答案 谈论这个问题 但都无济于事 我的本地计算机 Ubuntu 16 04 上有一个 React js 应用程序 在本地 我尝试通过运行来测试它npm start它会打开浏览器http 本地
  • 列出所有当前打开的文件句柄? [复制]

    这个问题在这里已经有答案了 可能的重复 检查Python中打开了哪些文件 Hello 是否可以获得所有当前打开的文件句柄的列表 我认为它们存储在环境中的某个位置 我对这个函数感兴趣 因为我想安全地处理出现致命错误时打开的任何文件 即关闭文件
  • 使用 Python 使用 IAM 角色连接到 Redshift

    我正在使用 sqlalchemy 和 psycopg2 将 python 连接到 redshift engine create engine postgresql user password hostname port database n
  • Slick,如何将查询映射到继承表模型?

    Slick 如何将查询映射到继承表模型 IE 我有表A B C A 是 父 表 B 和 C 是 子 表 我想知道的是我应该如何使用 slick 对此进行建模 以便 A 将是抽象的 B C 具体类型 并且查询 A 中的行将导致 B 或 C 对
  • 为什么 for_each 通过 move 返回函数

    我正在阅读文档std for each here http en cppreference com w cpp algorithm for each并看到返回值是std move f 为什么标准强制在返回值中移动输入参数 既然输入参数是按值
  • C++11 中的 POD 和继承。 struct的地址==第一个成员的地址吗?

    我编辑了这个问题以避免分心 在任何其他问题有意义之前 需要先解决一个核心问题 向任何现在看来答案似乎不那么相关的人道歉 让我们设置一个具体的例子 struct Base int i 没有虚方法 也没有继承 通常是一个非常愚蠢和简单的对象 因
  • 如何在 Nuxt 3 应用程序中添加页面加载器

    我正在使用 Nuxt 3 构建一个应用程序 我想添加一个页面加载器直到网站加载 根据本文 有一种简单但有限的解决方案和一种完全定制的解决方案 内置
  • Oracle:消除表和模式名称之间的歧义

    假设我有模式A and B 在模式中A我想打电话包X在模式中B 然而 有一个包B在模式中A A package B B package X 当我从架构 A 调用时 begin b x foo end 它寻找程序X包装内B i e A B X
  • Python:freeze.py 在哪里?

    有人知道 2 6 5 的 freeze py 安装在哪里吗 我似乎无法在任何地方找到它 是不是被拔出来换成别的东西了 它就在它一直在的地方 在下面Tools 在源分布中
  • 如何使用 Work Light 通过服务器端 javascript 发出 HTTPS 请求?

    我正在玩弄IBM 工作灯 并且我正在尝试创建一个适配器来从Google 地点 API 我想调用这个网址 https maps googleapis com maps api place search json key AIzaSyCTlPm
  • Haskell 中目录的流式递归下降

    我正在尝试使用 Haskell 进行目录结构的递归下降 我只想根据需要 懒惰地 检索子目录和文件 我编写了以下代码 但是当我运行它时 跟踪显示在第一个文件之前访问了所有目录 module Main where import Control
  • Haskell 中生成列表的唯一组合的函数

    是否有一个 Haskell 函数可以从列表中生成给定长度的所有唯一组合 Source 1 2 3 uniqueCombos 2 Source 1 2 1 3 2 3 我尝试在 Google 中查找 但找不到专门执行此操作的函数 排列不会给出
  • H5py存储字符串列表的列表

    h5py 是否有可能创建一个由字符串列表组成的数据集 我尝试创建一个可变长度的嵌套数据类型 但这会导致我的 python 解释器出现分段错误 def create dataset h5py file data I am a sentecne
  • 我们可以在 Web 应用程序中同时使用 jQuery 和 AngularJS 吗?

    我们可以在 Web 应用程序中同时使用 jQuery 和 AngularJS 吗 我读过一些建议 说不要在项目中同时使用两者 因为两者都有不同的生命周期 我们的要求是使用 ASP NET WebApi 和 AngularJS 构建响应式 W
  • 我应该在我的最新项目中使用 Cocoa 绑定吗?

    我正在启动一个项目 我认为该项目将从绑定中受益 我有一个源列表表 几个浏览器视图等 但我认为如果没有它们 它也是相当可行的 也许更容易理解 根据我有限的经验 我发现绑定很难排除故障 而且非常 神奇 例如 很难在任何地方插入日志记录来找出哪里
  • 使用正则表达式检查密码强度

    该功能是查看密码的强度 如果满足以下条件 则被认为是强的 长度大于或等于10个字符 它至少包含一位数字 至少有一个大写字母 一个小写字母 密码只能包含 ASCII 拉丁字母或数字 有没有办法减少函数中的代码量 请帮我使函数代码少于200个字
  • Powershell,使用 contains 检查文件是否包含某个单词

    我正在尝试创建一个 powershell 脚本 该脚本查看给定目录下的所有文件和文件夹 然后将 properties 文件中给定单词的所有实例更改为另一个给定单词的实例 我在下面写的内容就是这样做的 但是我的版本控制注意到每个文件中的更改