it-swarm-ja.com

MS-DOSバッチで出力されたすべてのハードドライブ上のすべてのファイルを一覧表示するにはどうすればよいですか?

すべてのハードドライブ(リムーバブルドライブではない)上のすべてのファイル(システムと非表示を含む)を一覧表示するにはどうすればよいですか?

私は次のようなことを考えています:

dir -a -h *.* /s > file.txt

しかし、これは私がいる特定のドライブ用です。

C:、D:などを使用して、そのようなことを行うにはどうすればよいですか。ただし、DOSのドライバーの名前がわからないため、これを行うには.batが必要です(自動リスト)。実装者はドライバーの名前も知ることができません。

2
MacGyver

これは、メディアなしでリムーバブルドライバーをチェックするためのトリックを行うことができます! http://www.ericphelps.com/batch/samples/adrive.bat.txt 。これは文書化されていない機能です!

0
MacGyver

一部のブートディスク(Windows 98緊急ブートディスクを含む)にあるCDドライブ( FINDCD.EXE )を検出できるプログラムがあり、バッチファイルで使用してそれらをスキップできます。

@echo off
findcd.exe
if (%1)==() goto start

:dirit
if not exist %i:\*.* goto done
if (%1)==(%CDROM%) goto done
dir /a/s/o %i:\*.* >> c:\Files.txt

:start
for %i in (c d e f g h i j k l m n o p q r s t u v w x y z) do call %0 %i
goto done

:done

私はこれを頭のてっぺんから一緒に投げました(私は現在Windowsを使用しているのでテストはしていません)が、ほとんどの部分でうまくいくはずです。フロッピードライブには常にAで始まるドライブ文字が割り当てられ、ハードドライブは常にCで始まるため、これはAをスキップすることに注意してください。およびB。

RAMドライブ( FINDRAMD.EXE )を検出してスキップできるプログラムもありますRAM =ドライブがある場合はドライブしますが、さらに作業が必要です(および別のバッチファイル)。通常は例として含まれているSETRAMD.BATを参照してください。

2
mwalsher

DOSのみを使用している場合は、接続されているドライブの種類を検出する方法は次のとおりです。

http://www.dostips.com/DtCodeSnippets.php#Snippets.DrivesAndTypes

これはWindows7コマンドプロンプトでは機能しないため、これ以上拡張することはできませんが、固定ディスクをテストしてディレクトリを実行するためのループを追加することはそれほど難しくありません。

1
Shevek

あなたはとても幸運です。私はまだ古いDS.BTMスクリプト(何年も前に入手したSYSINF.BATの縮小版と最新版)を1台のマシンに持っていましたが、これは抜粋です。これには、JPソフトウェアの4DOSが必要です。これは現在フリーウェアです。ご覧のとおり、DOSからLASTDISK値を取得し、リムーバブルドライブとネットワークドライブを明示的に回避します。

@echo off 
 loadbtm on 
 do d =%@ ascii [A] to%@ ascii [%_ lastdisk] 
 
 iff%@ ready [%@ char [%d]:] EQ 1 then 
 
 iff%@ removeable [%@ char [%d]:] NE 1.AND。 %@ remote [%@ char [%d]:] NE 1 then 
 
 dir/s/a:%@ char [%d]:\ 
 
 endiff 
 
 endiff 
 
 enddo

他の回答でDOSfor Windowsを間違えた人は、この4DOSスクリプト(新しいバージョンの4DOSに更新してから4OS2に移植した4DOS用の20年前のSYSINF.BATスクリプトから取得)がまだあることを知って喜ぶでしょう。 4DOSと同じように、Windows NT6.1上のJPソフトウェアのTCC/LEで動作します。

1
JdeBP

これがコマンドラインメソッドです。バッチで%の代わりに%%を使用するだけです

for %d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (ifexist %d: (dir -a -h %d:\*.* /s > %d.txt))
0
EBGreen