コマンドプロンプトから(またはバッチファイルで)ファイルのサイズを変更するにはどうすればよいですか?
ファイルをバイナリとして扱う必要があります。ファイル形式は無関係で任意です。
ファイルを拡張すると、ゼロが埋め込まれます。
ファイルを縮小すると、ファイルが切り捨てられます。
言い換えると:
SetEndOfFile
コマンドプロンプトの機能をどのように複製しますか?
コマンドプロンプトから(またはバッチファイルで)ファイルのサイズを変更するにはどうすればよいですか?
ファイルをバイナリとして扱う必要があります。ファイル形式は無関係で任意です。
ファイルを拡張すると、ゼロが埋め込まれます。
ファイルを縮小すると、ファイルが切り捨てられます。
言い換えると:
SetEndOfFile
コマンドプロンプトの機能をどのように複製しますか?
回答:
機能がDOSシェルにネイティブに存在するとは思わない。仕事を終わらせるには別のプログラムを使用する必要があると思う。以下にいくつかの可能性を示します。
Truncと呼ばれるツールを使用すると、自分が望んでいることを正確に行うことができます。
Truncは、指定されたサイズにファイルを切り捨てるためのWindowsコマンドラインアプリです。ファイルの拡大にも使用できます。
ファイルをどのようにパディングするか(たとえば、ゼロまたはゴミ)を正確に調べるには、試してみる必要があります。
fsutilはWindows XP以上のシステムツールであり、役立つ可能性のある機能を備えているようです。具体的には、このfsutil file
サブコマンドは、長さを設定し、ファイルをゼロに設定できるように見えます。
具体的には:
fsutil file createnew "C:\temp\myfile" 1024
ゼロで埋められた1024バイトのファイルを作成しますが、ファイルを切り捨てる方法がわかりません。有効なデータ長を設定するコマンドがありますが、EOFマーカーを次のように変更するようには見えません。
setvaliddataの使用
NTFSには、ファイル長に2つの重要な概念があります。ファイルの終わり(EOF)マーカーと有効なデータ長(VDL)です。EOFは、ファイルの実際の長さを示します。VDLは、ディスク上の有効なデータの長さを識別します。VDLとEOFの間の読み取りは、C2オブジェクトの再利用要件を維持するために自動的に0を返します。
UVHDは、あなたが求めている機能を持っているように見える16進エディタです。唯一の問題は、DOSではなくWindows / SFU(Unix用サービス)でのみ機能することです。それがエンドユーザーにとって実際に何を意味するのか私は実際には知りませんが、SFUがVistaとWin 7で削除されたという漠然とした疑いがあります。
trunc
私は必要なことをします。ああ、そして注意:SFU(または、むしろ、SUA-"Unixベースアプリケーションのサブシステム"、別名Interix)は、Windows 7では削除されませんでした。それは今だオプション unfortuntately、究極のバージョンでコンポーネント。:\
fsutil
、回答を使用して任意の長さのファイルを作成する別の方法を見つけましたが、先ほど触れたように、ファイルを切り捨てる有効な方法がわかりません。
Windows用のBSD truncateビルドを試してください。
編集:2GB以上のファイルでは機能しません。
大きなファイルでうまく機能する代替手段: