DOS/Windows のコマンドラインで空のファイルを作成するにはどうすればよいでしょうか?
私は試した:
copy nul > file.txt
しかし、ファイルがコピーされたことが常に表示されます。
標準の cmd に別の方法はありますか?
それは、触るCygwin からのコマンド、またはその他の非標準コマンド。コマンドはスクリプトから実行する必要があるため、キーストロークは使用できません。
ベストアンサー1
リダイレクトなしでは、リュック・ヴーまたはエリック・コンスタントプロス ポイント 外に:
copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt
「バッチファイルから空のテキストファイルを作成するにはどうすればいいですか?「(2008)では次のことも指摘している。
type NUL > EmptyFile.txt
# also
echo. 2>EmptyFile.txt
copy nul file.txt > nul # also in qid's answer below
REM. > empty.file
fsutil file createnew file.cmd 0 # to create a file on a mapped drive
C:\Users\VonC\prog\tests>aaaa > empty_file
'aaaa' is not recognized as an internal or external command, operable program or batch file.
C:\Users\VonC\prog\tests>dir
Folder C:\Users\VonC\prog\tests
27/11/2013 10:40 <REP> .
27/11/2013 10:40 <REP> ..
27/11/2013 10:40 0 empty_file
私が使っている最も短いものは基本的に Nomad のものです:
.>out.txt
エラーが発生します:
'.' is not recognized as an internal or external command
しかし、このエラーはstderrにあります。そして、>
stdoutにリダイレクトするだけで、何も生成されません。そのため、空の
ファイルが作成されます。ここではエラーメッセージは無視できます。または、次のようにします。
雨の答え、リダイレクト先NUL
:
.>out.txt 2>NUL
(元の回答、2009 年 11 月)
echo.>filename
(echo ""
実際にはファイルに "" が入ります。また、 '.' がなければ、ファイルにecho
" " が入ります...)Command ECHO activated
注: 結果のファイルは空ではありませんが、戻り行シーケンス (2 バイト) が含まれます。
これ議論実際の空のファイルに対する真のバッチ ソリューションを示します。
<nul (set/p z=) >filename
dir filename
11/09/2009 19:45 0 filename
1 file(s) 0 bytes
"
<nul
" はコマンドnul
への応答をパイプしset/p
、使用される変数は変更されません。 の場合と同様にset/p
、等号の右側の文字列は CRLF なしのプロンプトとして表示されます。
ここでは「等号の右側の文字列」が空なので、結果は空のファイルになります。
cd. > filename
(で言及されている)との違いは、パトリック・カフの回答また、0 バイト長のファイルも生成します) の最大の問題は、この「ちょっとしたリダイレクト」(トリック) を使用して、 CR なしで行をエコー<nul...
できることです。
<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt
コマンド
dir
はファイル サイズを 11 バイトとして示す必要があります: "helloworld!
"。