2017-08-19 26 views
1

私はhttps://stackoverflow.com/a/16129486/2000557の例に続き、ビデオファイルのフォルダのスクリプトを修正しました。スペースとスペースを置き換えます。アンダースコアを含むファイル名

@echo off 
Setlocal enabledelayedexpansion 

Set "Pattern=." 
Set "Replace=_" 

For %%a in (*.avi) Do (
Set "File=%%~a" 
Ren "%%a" "!File:%Pattern%=%Replace%!" 
) 

For %%a in (*.mkv) Do (
Set "File=%%~a" 
Ren "%%a" "!File:%Pattern%=%Replace%!" 
) 

For %%a in (*.mp4) Do (
Set "File=%%~a" 
Ren "%%a" "!File:%Pattern%=%Replace%!" 
) 

Pause&Exit 

誰も、ファイル名の最後のドット(拡張子の一部)をアンダースコアに置き換える理由を説明することはできますか?これは私が魚を与えられ、釣り方を教えられなかったように感じる。このスクリプトは機能しますが、残念ながら最後の期間も置き換えられます。
非表示の拡張機能を有効にしなくてもスクリプトを使用したいと思います。

+1

可能な複製(https://stackoverflow.com/questions/28558996/batch-file -for-replaced-dots-with-with-files-names) – tima

+0

私の[JREN.BAT正規表現リネームユーティリティ](http://www.dostips.com/forum/viewtopic.php?t= 6081)。その解決策は 'jren '[。](?=。* \。)" "_/fm" * .avi | * .mkv | * .mp4 "' – dbenham

答えて

1

置換は全体的であり、限定することはできません。

回避策は、ファイルの拡張子を付けずに名前を使用して元の拡張子を追加するだけで簡単です(この方法では、各置換に対して1つだけが必要です)。

@echo off & Setlocal EnableDelayedExpansion 
For %%A in ("*.*.avi" "*.*.mkv" "*.*.mp4") Do (
    Set "File=%%~nA" 
    Ren "%%A" "!File:.=_!%%~xA" 2>NUL 
) 

For %%A in ("* *.avi" "* *.mkv" "* *.mp4") Do (
    Set "File=%%~nA" 
    Ren "%%A" "!File: =_!%%~xA" 2>NUL 
) 

またはこのバージョン

For %%A in (*.avi *.mkv *.mp4) Do (
    Set "File=%%~nA" 
    Set "File=!File: =_!" 
    Set "File=!File:.=_!" 
    If "%%~nA" neq "!File!" Ren "%%A" "!File!%%~xA" 
) 

私は、より効率的であるSHUREていませんよ。

0

あなたはこのバッチスクリプトを試すことができます:[ファイル名にスペースでドットを交換するためのバッチファイル]の

@echo off 
Setlocal enabledelayedexpansion 
Set "FileType=avi mp4 mkv" 
Call :Search_Replace " " "." "!FileType!" 
Call :Search_Replace "." "_" "!FileType!" 
Timeout -1 & exit 
::******************************************************** 
:Search_Replace <Pattern> <Replace> <FileType> 
Set "Pattern=%~1" 
Set "Replace=%~2" 
@For %%# in (%~3) do (
    For %%a in (*.%%#) Do (
     Set "File=%%~na" 
      ren "%%a" "!File:%Pattern%=%Replace%!%%~xa" 
    ) 
) 
Exit /b 
::******************************************************** 
関連する問題