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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Spring Batch

Spring Batchは、バッチ処理向けに定義されたオープンソースのフレームワーク。エンタープライズシステムで避けて通れないバッチ処理を可能にします。設定ファイルに別定義することで効率よく開発することがで可能です。

解決済

batで特定の文字をファイル名から削除したい(サブディレクトリ込)

jiiiko
jiiiko

総合スコア1

Spring Batch

Spring Batchは、バッチ処理向けに定義されたオープンソースのフレームワーク。エンタープライズシステムで避けて通れないバッチ処理を可能にします。設定ファイルに別定義することで効率よく開発することがで可能です。

2回答

0評価

0クリップ

872閲覧

投稿2021/01/09 18:11

前提・実現したいこと

batでカレントディレクトリと、サブディレクトリの特定の文字をファイル名から削除したい。


削除したいワード:あいうえお-

before
¥あいうえお-フォルダ
¥あいうえお-フォルダ¥あいうえお-かきくけこ.zip

after
¥フォルダ
¥フォルダ¥かきくけこ.zip

試したこと

※1 このサイトを参考に、カレントディレクト内の特定文字を削除することはできました。

サブディレクトリも一括で削除しようと以下のことを試したが実現できませんでした。
・for /r でサブディレクトリのパスを取得し、さらにfor /f "tokens="を回す。 ※2
・"for /R %target_dir% %%i in (
.txt) do ren %%i %%~ni"のような拡張子変更のrenを改変た

4時間ぐらい格闘したのですが実現できませんでした。
分かる方いましたら、ご教授お願い致します。

カレントディレクトリのみのソースコード ※1

@echo off setlocal enabledelayedexpansion echo ============================================= echo リネームを開始します。 echo ============================================= pushd %~dp0 :: リネームしたファイル数 set /a FILE_NUM=0 ::削除するキーワード set keyword=asdfg for /f "tokens=*" %%i in (!s!) do ( set a=%%i echo s=!s! ::リネーム ren "!a!" "!a:%keyword%=!" echo a=!a! ::リネーム名出力 echo !a:%keyword%=! set /a FILE_NUM+=1 ) echo ============================================= echo %FILE_NUM%個のファイルをリネームしました。 echo ============================================= pause

試したソースコード ※2

@echo off setlocal enabledelayedexpansion echo ============================================= echo リネームを開始します。 echo ============================================= pushd %~dp0 :: リネームしたファイル数 set /a FILE_NUM=0 ::削除するキーワード set keyword=asdfg for /r %%f in (*) do ( set s=%%f for /f "tokens=*" %%i in (!s!) do ( set a=%%i echo s=!s! ::リネーム ren "!a!" "!a:%keyword%=!" echo a=!a! ::リネーム名出力 echo !a:%keyword%=! set /a FILE_NUM+=1 ) ) echo ============================================= echo %FILE_NUM%個のファイルをリネームしました。 echo ============================================= pause

環境

・Windows10

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

cleaner

2021/01/09 19:17

どこで躓いているのでしょうか?コードをよく読めば回答はできるかもしれませんが時間がかかってしまします。 具体的にどんな状態なのか追記してもらえますか?(エラーで止まる、流れるけど思った通りにならない等)

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Spring Batch

Spring Batchは、バッチ処理向けに定義されたオープンソースのフレームワーク。エンタープライズシステムで避けて通れないバッチ処理を可能にします。設定ファイルに別定義することで効率よく開発することがで可能です。