質問編集履歴
1
Fix grammer
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
バッチファイルで現在の進
|
1
|
+
バッチファイルで現在の進捗を百分率で表示するにはどうすればよいのか。
|
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
バッチファイルを今日学び始めた者です。
|
2
|
-
`C:/Users/user/Downloads/`直下のすべてのファイルを取得し、一つづつ表示する際に、進
|
2
|
+
`C:/Users/user/Downloads/`直下のすべてのファイルを取得し、一つづつ表示する際に、進捗を付け加えたいと思っているのですが、うまくいきません。
|
3
3
|
以下が試したことです。
|
4
4
|
```batch
|
5
5
|
@echo off
|
@@ -33,8 +33,8 @@
|
|
33
33
|
7行目: ``dir /a:-d /b *.*>files.txt`` - Downloadsディレクトリ直下のすべてのファイルの名前を一時的にfiles.txtに保存する。/a:-dはファイルのみ取得、/bはファイル名のみ取得。
|
34
34
|
8-11行目: ``for /f %%a in (!default!files.txt) do ()`` - files.txtの行数をカウント。これでファイル数がわかる。files.txtを一行ずつ読み込み、それに伴いfilecountを1づつ増やす。/fはおそらくファイル読み込み。
|
35
35
|
15行目: ``for /f "delims=" %%a in (!default!files.txt) do ()`` - files.txtを一行ずつ読み込む。"delims="は区切り文字をなくすためのもの。
|
36
|
-
16行目: ``set /a percent=!count! / !filecount! * 100`` - 現在のインデックスからファイル数を割り、100を掛けた進
|
36
|
+
16行目: ``set /a percent=!count! / !filecount! * 100`` - 現在のインデックスからファイル数を割り、100を掛けた進捗。**原因はおそらくここ**。
|
37
|
-
17行目: ``echo "!count!/!filecount! (!percent!%%): %%a"`` - "インデックス/ファイル数 (進
|
37
|
+
17行目: ``echo "!count!/!filecount! (!percent!%%): %%a"`` - "インデックス/ファイル数 (進捗%): ファイル名"を表示する。
|
38
38
|
20行目: ``del !default!files.txt`` - files.txtを削除。
|
39
39
|
|
40
40
|
---
|
@@ -53,7 +53,7 @@
|
|
53
53
|
"9/10 (0%): test9.txt"
|
54
54
|
"10/10 (100%): test10.txt"
|
55
55
|
```
|
56
|
-
このように、進
|
56
|
+
このように、進捗をうまく表示できません。考えられることとしては、計算式が間違っているか、setコマンドで割り算をすると少数が切り捨てられるのでうまく計算できないのどちらかです。
|
57
57
|
こちらを以下のようにするにはコードをどのように変えればよろしいのでしょうか?
|
58
58
|
```text
|
59
59
|
"10個のファイルが見つかりました。"
|