...などと書くことができます。ファイルが空であるか存在しない場合、どのCMDコマンドでエラーが生成されますか?
thatcommand myfile.txt && ECHO Is non-empty || ECHO Is empty or absent
(フォームプロセッサに:。これは完全に問題を記述しない)
...などと書くことができます。ファイルが空であるか存在しない場合、どのCMDコマンドでエラーが生成されますか?
thatcommand myfile.txt && ECHO Is non-empty || ECHO Is empty or absent
(フォームプロセッサに:。これは完全に問題を記述しない)
は、あなたのコード内で同じアプローチを有する唯一つのコマンドにそれを制限するには、あなたが試すことができます
(>nul 2>nul findstr /m "^" "myfile.txt") && echo ok || echo empty or absent
このコードでは、findstr
を使用して、ファイルの内容を何かに一致する正規表現と照合し、ファイル名のみを返します(最初の一致で検索を終了します)。
ファイルが存在し、空でない場合、正規表現に一致するものが見つかります。コマンドは、ファイルが空の場合、すべての可能な一致とファイルが存在しない場合 セットerrorlevel
から1
は、コマンドが直接失敗したコマンドが存在しないerrorlevel
クリア(ファイルが見つかりません)そしてerrorlevel
が1
に設定されているすでにコンポで指摘したように、ファイルサイズのチェックは、おそらくそれを処理するより良い方法です。ファイルが存在する場合は、1つのオプションは
for %%a in ("myfile.txt") do if "%%~za" gtr "0" (echo ok) else (echo empty or absent)
可能性があり、そのサイズは(:文字列は操作が2 よりも大きなサイズの問題を回避するために使用されている比較注意)0
に対してチェックされます。
は、ファイルが存在しない場合、~z
改質剤は"0"
Downvoting。それは質問に答えません。 「例」に注意してください。 – ChrisJJ
@ChrisJJ、確かに、これは露出された言葉で質問に答えることはできませんが、このアプローチがはるかに高速であるため、これを含める必要がありました。 –
よりアルファベット順低い空の文字列が返され、ファイルが0バイトを超えるサイズを存在している場合、それは非空でありますそれ以外の場合は空または不在です。あなたのコードが失敗した場合、あなたのコードの試行と関連する説明であなたの質問を編集して、ファイルサイズをチェックしてここに戻るコマンドを検索して試してみてください。 – Compo