0

そのため、Powershell では、ファイルの Ascii 値を取得して値で除算しようとしています。やりたいことを以下に示しますが、これを行う方法がわかりません。

$value は 300 になります $file は $home\test.txt になります

私がやりたいことは、ファイルの内容を Ascii コード形式で取得することです。そのため、ファイルが「Hello」と言うふりをしましょう。コンテンツを取得すると、次のようになります。

72
101
108
108
111

私が本当にやりたいことは、すべての Ascii 値を適切に取得し、それらをすべて 1 行にまとめることです。こんにちは。

72
101
108
108
111

次のようになります。

72101108108111

次に、上記の数値を $value で割ると、最終的な結果がファイルのコンテンツとして設定されます。それを復号化する唯一の方法は、その数値に正しいキーを掛けてから、通常の Ascii 形式に再度分割することです。

72
101
108
108
111

次に、スクリプトで上記の値を取得し、それらを 1 行にまとめて、次のように表示するようにします。

72101108108111

次に、それを $value で割ると、次のようになります。

240337027027.037

そして、上に表示されているのは、ファイルに設定されたコンテンツです。これを復号化するには、ファイルの内容 (現在は 240337027027.037 になります) を取得し、以前に分割するために使用したのと同じ値を掛けます。正しく行われた場合は、次のようになります。

72101108108111

そして、これは元の Ascii 値に分割されます。

72
101
108
108
111

そして、それが -encoding バイトのファイルのコンテンツとして再度設定され、ファイルの元のコンテンツが取り戻されます。誰もこれを行う方法を知っていますか?

4

1 に答える 1

0

このようなものを使用できますか?

#Set value (I had to set a lower value because your value was way too large to process with a Int32 (and 64 I think)
$value = 22949672

#Convert (had to multiply because dividing casues to small number to be save correctly(it rounds up and ruins the decoding later)
Get-Content .\test.txt -Encoding Byte | % { $_ * $value } | Set-Content .\test2.txt -Encoding Ascii

#Convert back
Get-Content .\test2.txt -Encoding Ascii | % { [byte]($_ / $value) } | Set-Content .\test3.txt -Encoding Byte
于 2013-09-01T12:25:23.903 に答える