2009-05-07 11 views
6

MS-DOSではdir *.pdfと入力すると、すべてのPDFファイルがディレクトリに保存されます。すべてを得る方法はありますかしかし PDFファイルはありますか? dir !*.pdfのようなもの?DOS:ファイルタイプを除外するディレクトリのリスト?

ありがとうございます! 。

dir | findstr /vi ".pdf" 

ザ・:私は-v grepすることと等価であるfindstrのための/ Vオプションがあると思う

答えて

12

にテキストが含ましないすべての行を含めるだから私は見ているは​​ずです構文は、私はそれを使用するための多くの必要性を持っていなかったと私は私の現在の場所でWindowsを実行don'r、多少異なる場合があります。

詳細については、コマンドプロンプトから使用します。findstr /?。

または、場合CygWinをインストールする

ls -al | grep -vi '\.pdf$' 

補遺:

私は実際にこれを実現していないが、あなたが使用できるように明らかにまた、正規表現をサポートしています。findstr:ものの彼の一種)は、あなただけのgrep自体を使用することができます

dir | findstr /vi "\.pdf$" 

grepとまったく同じです(私はこれをテストしていませんが、ちょうどTechNetで見つかったので、自分でテストする必要があります)。

+0

+1それはやっているようです - 素敵な仕事です。 –

+0

ありがとう、@アンドリュー、私は本当にそれをテストするためにVMWare Playerをクランクしたくなかった:-) – paxdiablo

+0

素晴らしいです。ありがとう! –

3

あなたはほとんどあなたがやりたいことにはfindstrでDIRを組み合わせることができます:ファイルがmy.pdf.converted.txt呼び出された場合

dir * | findstr /vi .pdf 

注しかし、それは間違ってここに捨てられるということ。

あなたが本当に空想を取得したい場合は、ここではバッチスクリプトのためのより適切な完全に正しいバージョン、だ。関係なくDOSが「楽しい」で何をしてみてください:)

for /f %a in ('dir /b *') do @if "%~xa" neq ".txt" echo %a 

幸運が。

+0

祝福して、私はあなたの "pdf.converted.txt"のような手口を扱っていません。しかし、良いキャッチ! –

+0

XPのfindstrは、通常の方法で行末に一致するように正規表現を処理できることを伝えます – Anonymous

0

私はそれがすでにあなたのために働いていることを知っていますが、これのようなほとんどのバージョンのDOS(少なくとも覚えているもの)でやります。 、あなたが表示したくないものを隠しディレクトリをやって、それらを非表示解除の影響を持っている

Attribに* .badの+ H
DIR/OE
Attribに* .badの-H

。その少し厄介な私は認めなければならないが、それはトリックを行うように見える。

dir | find/V ".pdf" 

をしかし、pdfファイル(複数可)が含まれます、出力の下部にあるファイルの数を覚えている:

0

MS-DOSまたはCMDであなただけのpdfファイルを避けるために入力します。

「.pdf」を「.xxx」(xxxは任意の拡張子)に置き換えて、このコマンドを他の拡張子に使用することもできます。

0

は、ここに1つの簡単な方法別のコマンドにはfindstr /見つけるや配管を使用せずにです:基本的に

for %%a in (*) do (
    if not exist %%~Na.pdf echo %%a 
) 

すべてのファイルをループのための意志ループ。 「存在しない場合」は、* .pdfファイルが印刷されないことを保証します。

%%〜Naは、変数%%のファイル名を拡張子なしで使用することを意味します。

関連する問題