MS-DOSでは、と入力するdir *.pdf
と、すべてのPDFファイルがディレクトリに保存されます。PDFファイル以外のすべてを取得する方法はありますか?のようなものdir !*.pdf
?
ありがとう!
MS-DOSでは、と入力するdir *.pdf
と、すべてのPDFファイルがディレクトリに保存されます。PDFファイル以外のすべてを取得する方法はありますか?のようなものdir !*.pdf
?
ありがとう!
grep-vと同等のfindstrの/vオプションがあると思います(テキストを含まないすべての行を含めます。したがって、次のようになります。
dir | findstr /vi ".pdf"
構文は少し異なる場合があります。使用する必要はあまりなく、現在の場所でWindowsを実行していません。
findstr /?を使用します 詳細については、コマンドプロンプトから。
または、CygWin(この種のものに最適なツール)をインストールする場合は、grep自体を使用できます。
ls -al | grep -vi '\.pdf$'
補遺:
私は実際にはこれに気づいていませんでしたが、どうやらfindstrは正規表現もサポートしているので、次を使用できます。
dir | findstr /vi "\.pdf$"
grepとまったく同じです(これはテストしていません。TechNetで見つけただけなので、自分でテストする必要があります)。
dirとfindstrを組み合わせて、ほぼ必要なことを実行できます。
dir * | findstr /vi .pdf
ただし、ファイルの名前がmy.pdf.converted.txtの場合、ここで誤って破棄されることに注意してください。
本当に凝ったものにしたい場合は、完全に正しいバージョンを次に示します。バッチスクリプトに適しています。
for /f %a in ('dir /b *') do @if "%~xa" neq ".txt" echo %a
何をしようとも頑張ってください:)DOSは「楽しい」です。
私はそれがすでにあなたのために働いていることを知っています、しかしあなたはこのようなDOSのほとんどのバージョン(少なくとも私が覚えているもの)でそれをすることができました。
Attrib * .bad + H
dir / oE
Attrib * .bad -H
これは、表示したくないものを非表示にし、dirを実行してから非表示を解除するという効果があります。それは私が認めなければならない少し厄介ですが、それはトリックを行うようです。
MS-DOSまたはCMDでは、PDFファイルを避けるために次のように入力するだけです。
dir | find/V ".pdf"
ただし、出力の下部にあるファイルの数にはpdfファイルが含まれることに注意してください。
さらに、「。pdf」を「.xxx」に置き換えることで、このコマンドを他の拡張子にも使用できます。ここで、xxxは任意の拡張子です。
findstr / findを使用したり、別のコマンドにパイプしたりしない簡単な方法は次のとおりです。
for %%a in (*) do (
if not exist %%~Na.pdf echo %%a
)
基本的に、forループはすべてのファイルをループします。「存在しない場合」は、*。pdfファイルが印刷されないことを保証します
%%〜Naは、%%a変数のファイル名を拡張子なしで使用することを意味します。