コンピュータに搭載されているすべてのディスク ドライブのリストを (とりわけ) 取得するバッチ スクリプトを作成しようとしています。基本的なコードは次のようになります。
REM Build the list of disk drives to monitor
SETLOCAL enabledelayedexpansion
FOR /f "skip=1 tokens=1 delims=:" %%a in ('"WMIC logicaldisk WHERE drivetype=3 GET deviceid"') do (
SET "DISK_DATABASES=!DISK_DATABASES!%%a|"
SET "DRIVES_TO_MONITOR=!DRIVES_TO_MONITOR!%%a:\\|"
)
後で使用するために、形式がわずかに異なる 2 つのリストを作成していることは明らかです。ただし、これを実行すると、得られる出力は次のようになります。
C|D|E||
C:\\|D:\\|E:\\|:\\|
今、私はどちらの場合も末尾のパイプを期待しており、それを管理できますが、そこに余分な空白のエントリがある理由が本当に混乱しています. コマンドを手動で実行するwmic
と、実際には出力の最後に空白行があることがわかりますが、私の理解では、/f
空白行を無視することになっていました。
オンECHO
にすると、最後の行が改行/改行などとして入っているように見えます。私が期待していることを行う方法はありますか?何か不足していますか?この最後の行を除外する条件をループに書き込もうとしましたif
が、それは... ファンキーで、うまくいきませんでした。あらゆる/すべての助けに感謝します。