aaaa_bbbb.txt
cccccc_ddddd.jpg
のようなファイルが入ったフォルダの中身を、
aaaa.txt
cccccc_ddddd.jpg
にバッチで処理したいです。
ファイル名の何桁目かに必ず_が入るので、
ファイル名の先頭から最初の _ 以降(_を含み)の文字を削除したい。
ついでにtxtのみ処理したい。
他のページで以下のコードを見つけたのですが、これは_より前を削除するので
使えませんでした。
よろしくお願いします。
____________________________________________________
echo off
for /F "delims=" %%f in ('dir /b') do call :sub "%%f"
exit /b
:sub
set fname=%~1
set n=0
:loop
call set c=%%fname:~%n%,1%%
set /a n=n+1
if "%c%"=="" goto :EOF
if "%c%"=="_" goto break
goto loop
:break
call set newname=%%fname:~%n%%%
if "%newname%"=="" goto :EOF
if "%newname:~0,1%"=="." goto :EOF
ren "%fname%" "%newname%"
goto :EOF
____________________________________________________
ps.
コードの解読に挑戦して随分と調べましたが、恐らくこの2行の
意味が理解できたら改良できたのかもしれません。
意味を教えてもらえるとありがたいです。
=%%fname:~%n%,1%%
if "%newname:~0,1%"==
No.1
- 回答日時:
call set newname=%%fname:~%n%%%
の1行を、以下の4行に置き換えてみてください。
-----
set /a n=n-1
set ext=%~x1
call set newname=%%fname:~0,%n%%%
call set newname=%newname%%ext%
-----
> 意味を教えてもらえるとありがたいです。
> %%fname:~%n%,1%%
変数fnameのn番目1文字を切り出す。
> "%newname:~0,1%"
変数newnameの最初(0番目)の1文字を切り出す。
No.2
- 回答日時:
質問文の読み落としがありました、失礼。
> ついでにtxtのみ処理したい。
for /F "delims=" %%f in ('dir /b') do call :sub "%%f"
↓
for /F "delims=" %%f in ('dir /b *.txt') do call :sub "%%f"
siffon9さん
ありがとうございました。
説明不足でした、_が2つ入っているファイルもあります。
2つ入っているとリネームされないみたいです。
対策ありますでしょうか?
意味を教えて頂きありがとうございました。
ただ 分かった上でも今のスキルでは改良が難しいことも
わかりましたので、引き続き勉強します!
No.4ベストアンサー
- 回答日時:
No.1 & 2です。
> 説明不足でした、_が2つ入っているファイルもあります。
> 2つ入っているとリネームされないみたいです。
こちらでは動作しています。(windows10 64bit)
aaa_bbb.txt → aaa.txt
ccc_ddd_eee.txt → ccc.txt
具体的にどのようなファイル名でしょうか?
ただNo.3さんの回答の方がシンプルで良いと思います。
行中の「echo」を削除してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
バッチファイルで文字列削除について
その他(プログラミング・Web制作)
-
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
-
4
Windowsのバッチファイルで正規表現の置換方法について…
Windows 10
-
5
batでファイル名を変更したい(元ファイル名の一部を削除したファイル名に)
その他(プログラミング・Web制作)
-
6
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
7
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
8
ファイル名を特定の文字までを削除したい
フリーソフト
-
9
バッチで特定文字が含まれる先頭行を取得したい
Windows Me・NT・2000
-
10
バッチファイル 二つ上のディレクトリのパス取得
その他(プログラミング・Web制作)
-
11
テキストファイルから最終行の抽出
Windows Me・NT・2000
-
12
コマンドプロンプトで変数が数字であることを判定する方法
その他(プログラミング・Web制作)
-
13
ファイル名の特定文字だけ削除(トリミング)
フリーソフト
-
14
txtファイルから特定の文字列が書かれた行だけを取得や削除するソフト
フリーソフト
-
15
ファイルの先頭行を全て削除したい
Windows Vista・XP
-
16
バッチファイル 指定行の切り出し
その他(Microsoft Office)
-
17
バッチファイルの正規表現を利用した文字列検索
その他(プログラミング・Web制作)
-
18
Dosブロンプトでtabを出力したい
その他(プログラミング・Web制作)
-
19
コマンドプロンプトで、特定の文字を削除したい。
その他(プログラミング・Web制作)
-
20
コマンドプロンプト標準出力とファイル出力両方
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ビーリアルのユーザー名を変え...
-
やり 直し
-
(再質問)エクセルのマクロボ...
-
パソコンのスクリーンセーバー...
-
1、Rstudioで回帰直線を求める...
-
pandasでsqlite3にテーブル作成...
-
pythonエラー
-
パイソンのクラスについて
-
WIN11にオフイスを複数入れるこ...
-
教えてください
-
パイソンエラーについて
-
プログラミングについてです。...
-
初心者プログラミング
-
Ruby on Railsでサーバーを立ち...
-
英数字を含む文字列(0-9,A-Z)...
-
ruby
-
クリスタルレポートで困ってい...
-
VBA
-
パイソンプログラミング
-
パイソンでテキストファイルが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理 特定の文字以降を...
-
[コンパイルエラー 修飾子が不...
-
VBA テキストボックスを選択状...
-
Access VBA エラー2448について
-
teratermで、ファイル名をinput...
-
パイソンでテキストファイルが...
-
MS-DOSバッチファイルコマンド...
-
SQLでテキストボックスの文字を...
-
verilog HDLについての質問です...
-
フォームのResizeイベントについて
-
型の値をDataGridViewセルに変換...
-
ASP.NET (VB) データのnull(空...
-
分数の計算のプログラミングです。
-
バッチ for /f 空白、スペース...
-
ruby テキストファイル書き出し...
-
バッチファイル フォルダ名をフ...
-
アスキー変換 と 逆変換について
-
■PukiWikiの凍結解除方法を教え...
-
Excelマクロ 空白セルを無視し...
-
【ExcelVBA】300万件越えCSVか...
おすすめ情報