【发布时间】:2018-11-21 20:06:44
【问题描述】:
我对脚本有点陌生,这是我的任务:
一个包含 X 个文件的文件夹。每个文件都包含一些 Word 文档、Excel 表格等。在这些文件中,有一个客户名称,我需要分配一个 ID 号。
此更改将影响此文件夹中包含此客户名称的所有文件。
如何使用 Windows Power Shell 做到这一点?
$configFiles = Get-ChildItem . *.config -rec
foreach ($file in $configFiles)
{
(Get-Content $file.PSPath) |
Foreach-Object { $_ -replace " JOHN ", "123" } |
Set-Content $file.PSPath
}
这是正确的方法吗?
【问题讨论】:
-
你将不得不以不同的方式做事。 [grin] PoSh 不能直接编辑 word 文档或 excel 电子表格。您可以安装一个 PoSh 模块来处理电子表格[我认为 ImportExcel 就是这样的一个名称]。编辑 MSWord 文档需要使用 COM 打开 MSWord 并对其进行控制。使用带有 powershell 的 COM 对象进行查找。 ///// 顺便说一句,
PSPath参数不是通常推荐用于您正在做的事情的参数。而是使用.FullName属性。 -
您要重命名文件,还是要修改文件的内容?这是两个完全不同的操作。
-
Word 和 Excel 文档以专有的 XML 类型格式存储。你真的不能用powershell编辑这些文档的内容。看看 MS Office 互操作。 docs.microsoft.com/en-us/dotnet/csharp/programming-guide/…
-
@AnsgarWiechers 修改内容。示例:更改具有此人名的所有文件中的数字的人名
-
如果你想修改文件的内容,方法取决于 Lee_Dailey 已经指出的文件类型。并非所有文件都是纯文本文件(特别是 MS Office 文件不是)。
标签: powershell scripting