質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

解決済

1回答

2605閲覧

ボリュームラベルの値をファイル名に代入するには

fuji369jp

総合スコア2

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2021/07/27 12:32

バッチファイルを作っています。
外付けドライブEのファイル一覧をテキストファイルとして取得し、ボリュームラベル+日時.txtでファイル名にしたいです。
ボリュームラベル名をテキストファイル名に代入するにはどうすればいいのでしょうか?
日時のみのファイル名では以下で動作します

@ECHO OFF
echo %date%
echo %time%

set yyyy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%

set time2=%time: =0%

set hh=%time2:~0,2%
set mn=%time2:~3,2%
set ss=%time2:~6,2%
@ECHO ON
cd C:\Windows\System32
cd /d e:
dir /s /-c > C:\Users\user\Desktop%yyyy%%mm%%dd%_%hh%%mn%%ss%.txt
:EXIT

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

V1489-Cygni

2021/07/29 09:53

ごめんなさい。こちらに書かないと通知が行かないですよね。 追記を致しましたので、読んで下さい。
guest

回答1

0

ベストアンサー

一例ですが、下記の %V% にボリュームラベルが入ってます。

batch

1for /f "tokens=1*" %%a in ('wmic path Win32_LogicalDisk get caption^,VolumeName') do ( 2 if "%%a"=="E:" call :Trim %%b 3) 4echo %V% 5exit /b 6 7:Trim 8set V=%* 9exit /b

質問者さんのスクリプトに入れると、

batch

1@ECHO OFF 2echo %date% 3echo %time% 4 5set yyyy=%date:~0,4% 6set mm=%date:~5,2% 7set dd=%date:~8,2% 8 9set time2=%time: =0% 10 11set hh=%time2:~0,2% 12set mn=%time2:~3,2% 13set ss=%time2:~6,2% 14for /f "tokens=1*" %%a in ('wmic path Win32_LogicalDisk get caption^,VolumeName') do ( 15 if "%%a"=="E:" call :Trim %%b 16) 17@ECHO ON 18cd C:\Windows\System32 19cd /d e:\ 20dir /s /-c > C:\Users\user\Desktop\%V%_%yyyy%%mm%%dd%_%hh%%mn%%ss%.txt 21exit /b 22 23:Trim 24set V=%* 25exit /b

<追記>

batch

1@ECHO OFF 2echo %date% 3echo %time% 4 5set yyyy=%date:~0,4% 6set mm=%date:~5,2% 7set dd=%date:~8,2% 8 9set time2=%time: =0% 10 11set hh=%time2:~0,2% 12set mn=%time2:~3,2% 13set ss=%time2:~6,2% 14for /f "tokens=4*" %%a in ('vol E:') do ( 15 set V=%%b 16 goto Next 17) 18 19:Next 20set V=%V: です=% 21@ECHO ON 22cd C:\Windows\System32 23cd /d e:\ 24echo dir /s /-c > C:\Users\user\Desktop\%V%_%yyyy%%mm%%dd%_%hh%%mn%%ss%.txt

投稿2021/07/27 13:51

編集2021/07/29 07:09
V1489-Cygni

総合スコア57

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuji369jp

2021/07/28 06:33

HDDで動作しました。ありがとうございます テープドライブではメディアをLTFSマウントさせた状態で実行すると、 _yyyymmdd_hhmmss.txtと出力され、ボリュームラベルが落ちてしまいました 最初に投稿した文をマウントしたテープドライブに対し実行すると、 出力結果.txtでは "ドライブ @ のボリューム ラベルは [数字6桁] です" と返ってきます LTOメディアはフォーマットでtepe serial number と Tape volume name2つが指定でき、 値の入れ方で2通り返ってきました。私はBで統一しています。 【A】 Tape serial numberを 123456 Tape volume nameを ABCDE でフォーマットした場合 m:\>vol ドライブ M のボリューム ラベルは ABCDE です ボリューム シリアル番号は 0000-0000 です ーーーーーーーーーーーーーーーーーーー 【B】 Tape serial number を123456 Tape volume name をnull でフォーマットした場合 m:\>vol ドライブ M のボリューム ラベルは 123456 です ボリューム シリアル番号は 0000-0000 です となります。 ボリュームラベル(実際はTape Serial Number)123456をファイル名に取得するには どこを変えればいいのでしょうか…?
V1489-Cygni

2021/07/28 07:37

申し訳ございません。テープドライブの使用時の仕組みはよく分からないです。 「wmic path Win32_LogicalDisk get caption^,VolumeName」 の VolumeName を VolumeSerialNumber に変えるとどうなるでしょうか? 項目一覧は、PowerShell を開いていただいて、 gwmi -Class Win32_LogicalDisk | % {if($_.Caption -eq 'E:'){$_ | select *}} を実行していただいて、抽出したい項目が見つかるでしょうか? 多分、VolumeSerialNumber なのかな?と想像しているのですが・・・。
fuji369jp

2021/07/29 04:15

VolumeSerialNumber に変えたところ、やはりボリューム名だけ弾かれてしまいました Powershellを実行して覗いたところ、関係ありそうなのは SystemName : LTO5N99A9617 VolumeDirty : VolumeName : VolumeSerialNumber : Scope : System.Management.ManagementScope となり、欲しい項目はnullでした。メディア側で持っているのかもしれません。 判ったところはここまでです。ありがとうございます。
V1489-Cygni

2021/07/29 07:12

じゃあ、Vol コマンドでちゃんと表示されるのなら、Vol コマンドから抜き取りましょうか・・・。 編集で回答に追加しました。バッチファイルの保存時の文字コードは、ANSI か Shift_JIS にして下さい。
fuji369jp

2021/07/29 10:43 編集

ありがとうございます、無事tape serial numberが代入され生成されました。 HDDとテープドライブでは考え方を変えないといけないことがよくわかりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問