
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も見ています
-
ファイル名を特定の文字までを削除したい
フリーソフト
-
バッチファイルで文字列削除について
その他(プログラミング・Web制作)
-
バッチファイル テキストファイル内の最後の\\以下を削除したい
その他(プログラミング・Web制作)
-
-
4
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
5
Windowsのバッチファイルで正規表現の置換方法について…
Windows 10
-
6
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
7
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
8
batでファイル名を変更したい(元ファイル名の一部を削除したファイル名に)
その他(プログラミング・Web制作)
-
9
【バッチファイル】ファイル名で、文字列の範囲を指定して一括削除するコードをください
Windows 10
-
10
コマンドプロンプトで、特定の文字を削除したい。
その他(プログラミング・Web制作)
-
11
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
12
renameコマンドでファイル名からアンダースコアを消す方法
Windows 10
-
13
コマンドプロンプトによるフォルダ内のファイル存在有無
UNIX・Linux
-
14
ファイル名の一部を一括変更 コマンドプロンプト
Windows 8
-
15
バッチファイルで特定の文字列の抽出
その他(Microsoft Office)
-
16
DOSコマンドでのワイルドカードの使い方
Windows Vista・XP
-
17
バッチファイル 文字列にスペースがある場合
その他(プログラミング・Web制作)
-
18
バッチファイル 指定行の切り出し
その他(Microsoft Office)
-
19
コマンドプロンプトでリネーム
その他(コンピューター・テクノロジー)
-
20
バッチファイルで昨日の日付を取得
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理 特定の文字以降を...
-
SQLでテキストボックスの文字を...
-
Fileの読み込み処理について
-
VBA テキストボックスを選択状...
-
キーが重複しているデータの統...
-
Ubuntuのシェルスクリプトのgre...
-
Access VBA エラー2448について
-
Excelマクロ 空白セルを無視し...
-
VBAでcsvファイルもシートもあ...
-
【fortran77】空行を含む数値デ...
-
VBAで複数のCSVからレコードセ...
-
【ruby】zipファイルデータをST...
-
【C#】 csvファイルをバイナリ...
-
ダブルコーテーション付きでCSV...
-
CSVデータの文字列置換
-
rubyの見えない文字
-
pythonのエラーについて
-
【ExcelVBA】300万件越えCSVか...
-
ファイル名を変数で書きこむfwr...
-
Rubyを使用してcsvファイルを処...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理 特定の文字以降を...
-
VBA テキストボックスを選択状...
-
[コンパイルエラー 修飾子が不...
-
Access VBA エラー2448について
-
verilog HDLについての質問です...
-
分数の計算のプログラミングです。
-
MS-DOSバッチファイルコマンド...
-
SQLでテキストボックスの文字を...
-
文字コードを指定して・・
-
VBAで繰り返し持ってきた文章の...
-
フォームのResizeイベントについて
-
Fileの読み込み処理について
-
teratermで、ファイル名をinput...
-
VBのFileOpenとInputというコ...
-
findを使うのか?
-
キーが重複しているデータの統...
-
アスキー変換 と 逆変換について
-
テキストboxに数値を入れる...
-
Dreamweaverでtitleタグ内の一...
-
Ubuntuのシェルスクリプトのgre...
おすすめ情報