切り捨てる必要のあるファイルが最大300個あります(ファイルの先頭から指定されたバイト数を削除する必要があります)。 16進ファイルエディタを使用して1つずつ実行できますが、処理する必要のあるファイルの数を考えると、かなり大変な作業になります。
これに対する自動化されたソリューションはありますか? (オペレーティングシステムはWindows 7 64ビットです。)
dd
にはスキップオプションがあります。
ファイルごとにdd if=MyFile of=my_new_file skip=BytesToSkip
を使用できます
オプションでループ内(ターゲットディレクトリのbashなど)for a in * ; do echo processing $a ; dd if=$a of=$a.shorter skip=300 ; done
正しいバイト数、KBまたはMBでスキップを調整します
ファイルが大きい場合、ブロックサイズ(bs = X)で再生すると、処理速度が上がる可能性があります。
どうぞ...
Powershellコード:
$PATH = "d:\My Dir"
$BYTES_TO_TRIM = 10
$files = dir $PATH | where { !$_.PsIsContainer }
foreach ($file in $files) {
Write-Output "File being truncated: $($file.FullName)"
Write-Output " Original Size: $($file.Length) bytes"
Write-Output " Truncating $BYTES_TO_TRIM bytes..."
$byteEncodedContent = [System.IO.File]::ReadAllBytes($file.FullName)
$truncatedByteEncodedContent = $byteEncodedContent[$BYTES_TO_TRIM..($byteEncodedContent.Length - 1)]
Set-Content -value $truncatedByteEncodedContent -encoding byte -path "$($file.FullName)"
Write-Output " Size after truncation: $((Get-Item $file.FullName).Length) bytes"
Write-Output "Truncation done!`n"
}