ここから本文です

回答受付終了まであと7日 回答を投稿すると知恵コイン15枚が追加されます

AAA_0123.xls BBB_0124.doc AAA_0125.xls AAA_0126.xls BBB_0127.doc : な...

xic********さん

2018/11/2221:49:43

AAA_0123.xls
BBB_0124.doc
AAA_0125.xls
AAA_0126.xls
BBB_0127.doc

など、のファイルを

AAA_1129.xls

BBB_1130.doc
AAA_1131.xls
AAA_1132.xls
BBB_1133.doc
のようにリネームしたいです。
頭の何文字かと拡張しはそのままで、数値の部分に1006足した数にしたいのですが、
Windowsのバッチでどうにかなりませんか?

良い方法があれば教えてください

閲覧数:
43
回答数:
2
お礼:
100枚

違反報告

回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

ste********さん

2018/11/2309:13:19

横から質問すみません。oti********さんへ。

set N2=1%%~nb
set /a N3=!N2!+1006-10000

ここの部分、一度1桁増やして、後から10000を引くのは何故か、よかったらご解説いただけたら幸いです。

自分だと
set /a N2=%%~nb +1006
ren %%a_%%b %%a_!N2!%%~xb 2>nul

と単純に考えてしまったもので……

  • ste********さん

    2018/11/2309:39:15

    oti********さん

    ああなるほど!8進解釈の回避!!
    納得しました。早速なる回答ありがとうございました。m(__;)m

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

プロフィール画像

カテゴリマスター

oti********さん

2018/11/2223:24:51

下記バッチファイルを対象ファイルの場所に置いて実行。


setlocal enabledelayedexpansion
for /F "tokens=1,2 delims=_" %%a in ('dir /b /a-d') do (
set /a N1=%%~nb 2>nul
if !N1! NEQ 0 (
set N2=1%%~nb
set /a N3=!N2!+1006-10000
ren %%a_%%b %%a_!N3!%%~xb 2>nul
)
)
pause

  • oti********さん

    2018/11/2309:33:22

    ste********さんへ

    例えば

    set /a N1=0123+1006

    とやってみれば分かります。

    1089になると思います。

    数字の先頭に 0 が付くと 8進数扱いになるためです。
    そのため先頭に 1 を付加して計算した後に付加した分を引いています。

    日付の計算とかで、ちょっとやっかいになったりします。
    https://qiita.com/giiwa/items/c4b0ace52b191d58da83

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる