更改.exe文件中的字符串

时间:2015-11-25 12:33:19

标签: scripting

我想知道如何更改.exe文件中的字符串。它是一个包含8个文件的列表,这些文件具有相同的内容但在不同的路径中使用。这些路径(文件夹)命名为1-8。现在我必须将该字符串("单词类1和#34;)更改为2-8("单词类2,...")我用Notepad ++手动完成了一周现在,但它耗费时间,我不想再使用Notepad ++。 :)

我不介意任何解决这个问题的方法,所以,就是这样。 到目前为止,我尝试使用PowerShell,但我无法弄清楚如何使用get-content& amp; select_string但它没有按预期工作。

感谢您阅读并回答我的问题。 (抱歉有些错别字)

1 个答案:

答案 0 :(得分:-1)

您只想替换.exe中的某些值?

我就是这样做的。

您需要提供一个CSV文件,标题为OLD的第一列,标题为new的第二列。

这是我制作的假.exe文件:

7deeadc7-a2b3-4c47-8cf6-61f09d986977ham
d1ea8982-4a04-4f2b-8e5a-244965921fccsam
b4a8f37a-c607-405b-8493-9b9b0e79673btam
0922496b-3064-4958-a6b0-46f61a711860turkey
e5f30554-e50e-4b61-aaa3-3797d9e0ed5ccheese
82e3d77f-53d5-49ef-bf84-b872dbbe556ffork
60a01cad-f6c4-44cc-af1a-fafb20377a12rice
e2cd71a1-7c34-456f-9af4-924f79874c38yummy
c85da055-c47e-41be-a0f8-5c320fa05317linux
7dbee5fc-87d5-4900-80c5-00818514d5b4morp
d9941dfe-dd97-422d-9088-2cecf4904fdepoo
05eaf9b3-09a2-45ea-b9a0-4c78ff9156f2pot
8c75d00d-4157-45b9-86df-74226790674fpoe
f0e77eb5-35fa-47f5-b89e-d1b5ef3c726fpoh
1d1ffc02-fee0-446d-aeac-940ab2864a76pof

最后只有一堆guid。现在,这是我的示例.csv文件,包含我们想要的所有替换。

OLD,NEW
ham,pork
sam,Frodo
linux,Window
morp,porp
poo,restroom

最后,这是作为PowerShell函数执行此操作的代码。

Function Refresh-File {
param($inputCSV,$inputfile)

$file = get-content $inputfile

Foreach ($replacement in (Import-csv $inputCSV)){

    $file = $file -replace $replacement.old,$replacement.New

}
$file | set-content $inputfile

}

这样称呼:Refresh-File -inputCSV T:\replace.csv -inputfile T:\blah.exe

这是我运行此文件后的.exe文件,只是值部分,以显示它是否有效:

pork
Frodo
tam
turkey
cheese
fork
rice
yummy
Window
porp
restroom
pot
poe
poh
pof

由于您需要自动执行此操作,因此只需每天制作一个新的replacement.csv文件即可。然后运行此代码。如果你以前从未编写完整的PS1脚本文件,作为快速摘要,复制该函数,将其粘贴到记事本或PowerShell ISE中,然后在脚本的最后一行,输入命令语法来调用该函数。保存并享受。