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.4ベストアンサー
- 回答日時:
No.1 & 2です。
> 説明不足でした、_が2つ入っているファイルもあります。
> 2つ入っているとリネームされないみたいです。
こちらでは動作しています。(windows10 64bit)
aaa_bbb.txt → aaa.txt
ccc_ddd_eee.txt → ccc.txt
具体的にどのようなファイル名でしょうか?
ただNo.3さんの回答の方がシンプルで良いと思います。
行中の「echo」を削除してみてください。
No.3
- 回答日時:
for /F "tokens=1* delims=_" %%F in ('dir /b *.txt') do echo move %%F_%%G %%F.txt
ってどうなるんだろう.
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.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文字を切り出す。
お探しの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制作)
-
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
バッチファイルで文字列削除について
その他(プログラミング・Web制作)
-
-
4
Windowsのバッチファイルで正規表現の置換方法について…
Windows 10
-
5
batでファイル名を変更したい(元ファイル名の一部を削除したファイル名に)
その他(プログラミング・Web制作)
-
6
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
7
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
8
バッチで特定文字が含まれる先頭行を取得したい
Windows Me・NT・2000
-
9
バッチファイル 二つ上のディレクトリのパス取得
その他(プログラミング・Web制作)
-
10
テキストファイルから最終行の抽出
Windows Me・NT・2000
-
11
コマンドプロンプトで変数が数字であることを判定する方法
その他(プログラミング・Web制作)
-
12
ファイル名を特定の文字までを削除したい
フリーソフト
-
13
ファイル名の特定文字だけ削除(トリミング)
フリーソフト
-
14
Dosブロンプトでtabを出力したい
その他(プログラミング・Web制作)
-
15
txtファイルから特定の文字列が書かれた行だけを取得や削除するソフト
フリーソフト
-
16
コマンドプロンプトで、特定の文字を削除したい。
その他(プログラミング・Web制作)
-
17
ファイルの先頭行を全て削除したい
Windows Vista・XP
-
18
バッチファイルの正規表現を利用した文字列検索
その他(プログラミング・Web制作)
-
19
バッチファイル 指定行の切り出し
その他(Microsoft Office)
-
20
バッチファイルで変数の中身をファイル出力したい
UNIX・Linux
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pythonのerrorコード
-
ビーリアルのユーザー名を変え...
-
教えてください
-
なんで if __name__ == "__main__"
-
パイソンのクラスについて
-
pythonエラー
-
1、Rstudioで回帰直線を求める...
-
C言語の入力した文字を反転させ...
-
パイソンエラーについて
-
マクロ処理でのループの記述に...
-
7セグメント LED ディスプレイ ...
-
WinSCPで画像のように puttyを...
-
VBA
-
クリスタルレポートで困ってい...
-
pandasでsqlite3にテーブル作成...
-
プログラミング講師はまだ需要...
-
英数字を含む文字列(0-9,A-Z)...
-
【メモリ不足で落ちる(python)】
-
(再質問)エクセルのマクロボ...
-
パソコンのスクリーンセーバー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理 特定の文字以降を...
-
パイソンでテキストファイルが...
-
VBA テキストボックスを選択状...
-
teratermで、ファイル名をinput...
-
SQLでテキストボックスの文字を...
-
MS-DOSバッチファイルコマンド...
-
Access VBA エラー2448について
-
[コンパイルエラー 修飾子が不...
-
ダブルクォートで囲まれた文字...
-
verilog HDLについての質問です...
-
型の値をDataGridViewセルに変換...
-
言語[RUBY]を用いて、特定列を...
-
バッチ for /f 空白、スペース...
-
ruby テキストファイル書き出し...
-
■PukiWikiの凍結解除方法を教え...
-
テキストboxに数値を入れる...
-
ASP.NET (VB) データのnull(空...
-
コンボボックスとスピンボタン
-
バッチファイル フォルダ名をフ...
-
アスキー変換 と 逆変換について
おすすめ情報