小编sch*_*d04的帖子

将.EXE编码/解码为Base64

我有一个.NET exe文件,我想将其编码为Base-64字符串,然后在稍后使用Powershell从Base64字符串解码为.exe文件.

到目前为止我生成的.exe文件,然而,该文件不能被Windows识别为可以运行的应用程序,并且总是与我传入编码脚本的文件长度不同.

我想我可能在这里使用了错误的编码,但我不确定.

编码脚本:

Function Get-FileName($initialDirectory)
{   
 [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null
$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$OpenFileDialog.initialDirectory = $initialDirectory
$OpenFileDialog.filter = "All files (*.*)| *.*"
$OpenFileDialog.ShowDialog() | Out-Null
$FileName = $OpenFileDialog.filename
$FileName

} #end function Get-FileName

$FileName = Get-FileName

$Data = get-content $FileName
$Bytes = [System.Text.Encoding]::Unicode.GetBytes($Data)
$EncodedData = [Convert]::ToBase64String($Bytes)
Run Code Online (Sandbox Code Playgroud)

解码脚本:

$Data = get-content $FileName
$Bytes = [System.Text.Encoding]::UTF8.GetBytes($Data)
$EncodedData = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($Bytes))

$EncodedData | Out-File ( $FileName )
Run Code Online (Sandbox Code Playgroud)

powershell base64 encode binaryfiles

19
推荐指数
3
解决办法
3万
查看次数

Vb.NET-'案例“ String1”或“ String2”'试图将“ String2”转换为Long

我正在更新的一段代码使用select case语句比较字符串的值...

我注意到,对于两个可能的值,我最终可能会重复使用相同的代码。

因此,我添加了一个案例:

Case "Yes/No" Or "Continue"
Run Code Online (Sandbox Code Playgroud)

但是,到了这一点,我将抛出一个无效的强制转换异常。

异常表示,它试图将“是/否”转换为Long值而不是字符串。

采用“或“继续””并将其移至带有重复代码段的自己的案例语句中,即可解决此问题。

我试图找出为什么“是/否”或“继续”没有按我期望的方式工作。

我的印象是,我可以在那里写一个表达式,类似于编写If语句时的表达方式。

vb.net select-case

1
推荐指数
1
解决办法
211
查看次数

标签 统计

base64 ×1

binaryfiles ×1

encode ×1

powershell ×1

select-case ×1

vb.net ×1