4

コンピュータが FAT32 を使用しているか NTFS を使用しているかをバッチを使用して判断するにはどうすればよいですか。

4

5 に答える 5

7

これを行うにはいくつかの方法があります。

原始的な方法は、chkdsk関心のあるボリュームで実行し、出力をキャプチャすることです。その出力の一部は、ディスクが NTFS であるかどうかを示します。残念ながら、これは期待以上のことを行うため、時間がかかる場合があります。

fsutil fsinfo volumeinfo c:\同様に、次のような出力を解析できます。

Volume Name : Primary
Volume Serial Number : 0x4f70e7b
Max Component Length : 255
File System Name : NTFS
Supports Case-sensitive filenames
Preserves Case of filenames
Supports Unicode in filenames
Preserves & Enforces ACL's
Supports file-based Compression
Supports Disk Quotas
Supports Sparse files
Supports Reparse Points
Supports Object Identifiers
Supports Encrypted File System
Supports Named Streams

ファイル システム名を抽出することで、必要なものを見つけることができます。

少し原始的でない方法は、VBScript と WMI を使用してデバイス配列を調べ、関心のある各ボリュームをチェックすることです。

Win32_LogicalDiskクラス (Windows 2000 以降で使用可能) には、これFileSystemを示す属性があり、次のコードをベースとして使用できます。

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colVols = objWMIService.ExecQuery ("select * from Win32_LogicalDisk")
For Each objVol in colVols
     MsgBox objVol.Name & " : " & objVol.FileSystem
Next
于 2011-08-09T12:07:04.157 に答える
5

FAT ボリュームで代替ファイル ストリーム ( file.name:strmname) を使用しようとすると失敗するようです。

@echo off
set drv=C:
set file=temp.temp

if exist %drv%\%file% del %drv%\%file%
@echo 1 > %drv%\%file%:stream
if not exist %drv%\%file% goto FAT

:NTFS
echo is NTFS
del %drv%\%file%
goto eof

:FAT
echo is FAT
goto eof

:eof
于 2011-08-09T12:23:10.263 に答える
3

これは古い質問ですが、これがドライブ ファイル システムを取得して変数として設定するための私の答えです。選択したドライブに%DriveType%

置き換えC:て、使用場所に応じて以下のコマンドのいずれかを使用します。

バッチ ファイルで使用する場合:

@echo off
for /f "tokens=5" %%a in ('@fsutil fsinfo volumeinfo c:^|findstr /B "File System Name : "') do (@set DriveType=%%a)
echo %DriveType%
pause

コマンド プロンプトで使用する場合:

for /f "tokens=5" %a in ('@fsutil fsinfo volumeinfo c:^|findstr /B "File System Name : "') do @set DriveType=%a
于 2015-08-26T17:20:01.063 に答える
2

これを試して:

@echo off
SET VOLUME_LETTER=c:
fsutil fsinfo volumeinfo %VOLUME_LETTER% 2>NUL | find /I /N "NTFS">NUL

if [%ERRORLEVEL%] == [0] echo NTFS
于 2011-08-09T12:31:41.973 に答える
1

もう 1 つの方法 (管理者権限が必要):

fltmc volumes | find ":"

これにより、すべてのドライブのファイル システム タイプが一覧表示されます。たとえば、「:」の代わりに「C:」を使用して、ドライブでフィルタリングできます。

于 2013-09-08T09:52:44.147 に答える