【DOSコマンド】for文の中で変数をカウントアップしたい。
【現在のソース】
for %%i in (\\hoge\hoge\*.*) do (
echo %%i,%%~ziバイト >> log.txt
type nul > %%i
)
【現在の処理内容】
とあるフォルダの中になる全ファイルのパス、サイズをログファイルに書き出し、、
全ファイルを0バイトにクリアする。
【やりたいこと】
ログファイルにファイルパス、サイズを書き出す際に連番を出力したい。
例)
1,\\hoge\hoge\aaa.txt
2,\\hoge\hoge\ddd.txt
3,\\hoge\hoge\123.txt
【現在までに試みた方法】
for文の外で「set n=0」。
for文の中で「set /a n=%n%+1」「echo %%n」
【環境】
XP Pro Version2002 SP2
DOSコマンドの変数に関する理解がいまひとつで、よくわかりません。
ご存知の方がいらっしゃいましたらご教示いただけると幸いです。
No.3
- 回答日時:
set bit=0
for %%i in (\\hoge\hoge\*.*) do (
call :Roop "%%i" "%%~zi"
rem type NUL > %%i
)
goto :EOF
:Roop
echo\
echo Roop 1para=%1 2para=%2
set /a bit=%bit% + 1
echo bit=%bit%
echo %bit%, %~1,%~2バイト >> log.txt
goto :EOF
でできますね。他にも
FOR /L %変数 IN (開始,ステップ,終了) DO コマンド [コマンドパラメータ]
を組み合わせた方法とかもありますね。
この種類の質問が出る方は、ヘルプとかリファレンスを全く見ない方ですね。よく読んで理解すれば、ヘルプにヒントが全部記載されています。
オンラインヘルプだけで上記を作成できます。他の方が、setlocalで拡張機能のOn状態で実行を勧めていますが、これもコマンドラインで
>setlocal /?
でやり方がでます。
cmdでのコマンドの使い方や、文字列の操作は
> cmd /?
ででます。ここに今回の問題も記載されていて、
goto /?
call /?
for /?
set /?
を見れば上記のスクリプトや、No1,2の やり方も全て出てきます。
ヘルプのサンプルで、じっくりと実証してみましょう。
No.2
- 回答日時:
for文の中でカウントアップ後の表示をさせるには Tacosanさんのとおり 遅延環境変数の展開 すれば できます。
バッチに setlocal enabledelayedexpansion を追加
setlocal enabledelayedexpansion
set /a n=0
for ・・・ (
set /a n=n+1
echo !n!
)
とりあえず ね まあ 一行に 表示させるには また 工夫されてください。
参考に
http://fpcu.on.coocan.jp/dosvcmd/bbs/log/cat3/se …
No.1
- 回答日時:
とりあえず
echo %%n
がおかしいことは理解できますね?
でも, それは措いても遅延展開しないとダメかもしれない. コマンド拡張を有効にして !n! とか.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- JavaScript javascriptで文字分割は、 split() などメソッド不要??? 4 2023/02/06 22:50
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- JavaScript JavaScriptで「〇以上▲まで」の書き方 1 2022/07/20 14:44
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- その他(プログラミング・Web制作) pythonのcondaコマンドの仕様について 2 2022/06/24 00:13
- その他(開発・運用・管理) バッチファイルで特定のファイル・ディレクトリ以外を削除する方法について 4 2022/05/31 14:03
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
バッチファイルでカウントアップするには
その他(プログラミング・Web制作)
-
-
4
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
5
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
6
バッチファイル 文字列にスペースがある場合
その他(プログラミング・Web制作)
-
7
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
8
バッチファイルを使ってテキストファイルの任意の行を削除したい
その他(プログラミング・Web制作)
-
9
コマンドプロンプトで相対パスの取得
その他(コンピューター・テクノロジー)
-
10
コマンドプロンプトで変数が数字であることを判定する方法
その他(プログラミング・Web制作)
-
11
ファイルの先頭行を全て削除したい
Windows Vista・XP
-
12
SQLPLUSで結果を画面に表示しない
Oracle
-
13
バッチファイルで変数の中身をファイル出力したい
UNIX・Linux
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
コマンドプロンプト net user...
-
○行目から□行目だけを表示する...
-
【DOSコマンド】for文の中で変...
-
ファイルの先頭に文字を追加す...
-
スラッシュ"/"を削除したい
-
renameコマンドでファイル名か...
-
Windowsで定期的にUNIXへFTPす...
-
CentOS/リダイレクションに改行...
-
^M削除方法、教えてください。
-
SONYの音楽ソフト「x-アプリ」...
-
TOPコマンドで表示するCPU使用...
-
Dirコマンドでフォルダ内ファイ...
-
エクセルの表にヘンな枠が・・・
-
スクリプトのエラー「unexpecte...
-
テキストファイルから最終行の抽出
-
batである文字列内に特定の文字...
-
Linux環境 grepで改行コード(CR...
-
プロセス、サービス、デーモン...
-
ラズパイで『’test.service’をs...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェルスクリプトでエラーが出ます
-
バッチで特定文字が含まれる先...
-
【Linux】findコマンドの表示順
-
Linuxで*をつかってファイル移...
-
【DOSコマンド】for文の中で変...
-
renameコマンドでファイル名か...
-
*.txtファイルの最終行だけ参照...
-
スラッシュ"/"を削除したい
-
CentOS/リダイレクションに改行...
-
UNIXで、ディレクトリを比較し...
-
DOSでテキストファイルの中のあ...
-
ファイルの先頭に文字を追加す...
-
○行目から□行目だけを表示する...
-
標準出力とリダイレクトを同時...
-
OSXで常に最後に表示される文字...
-
sedで置換した値を変数にセット...
-
windows7でmingwのgrepで漢字の...
-
コマンドプロンプト net user...
-
Windowsコマンドラインで文字列...
-
ファイルリストを印刷したい。
おすすめ情報