我想制作一个用于查找和替换文件中多个字符串的小脚本(使用批处理和PowerShell组合)。这些文件总是不同的,所以我总是需要进入批处理并更改文件名Get-Content
和Out-File
。 现在我添加了一个提示来插入文件名,我给这个参数,所以我可以以某种方式搜索和编辑$filename.txt
例如。由于这个脚本是躺在就像我的文件相同的文件夹查找带文件名变量的文件(获取内容)
$filename = Read-Host -Prompt 'Input filename'
(gc $filename.txt) -replace 'foo', 'bar' | Out-File $filename.txt
:
这里与仅更换一个字符串正常PowerShell代码(我将在一个批处理文件稍后重新整合这一点)不会需要一条路。
我还发现gc
无法读取变量,这正是我的问题在这里:我得到一个错误代码,该参数不能绑定到“路径”,因为它是NULL。
我找不到别的样子,发现了很多线程如何出文件中的变量或如何获得文件内容为一个变量,但没有安装到我的情况,所以我真的很感激任何帮助你们!
我不明白为什么你需要批处理和PowerShell。如果你在PowerShell中工作,那么我认为你最好放弃批处理。如果你想使用批处理,那么你可以考虑我的[JREPL.BAT混合JScript /批处理实用工具](http://www.dostips.com/forum/viewtopic.php?t=6044)。您可以使用SET/P来提示FileName变量的值。然后,你可以简单地使用'调用jrepl“foo”“bar”/ L/F'%FileName%“/ O -' – dbenham
我想我已经找到了这个批处理,但是我对所有内容都感到困惑哈哈, d实际上只需要在最后添加这部分? 我知道这个/ P选项,但我试图在一个批处理中与powershell一起使用,并且不起作用 Powershell因为人们一直在说:既然powershell是预先安装而不是批量使用 也许因为和你的批处理一样,我需要很多代码才能使批处理工作与PowerShell一样简单 我想批量集成它,朋友也可以使用它。所以我需要它尽可能简单。 – Shoru