たとえば、「This IsGood 1.1.png」から「tig11.png」にファイル名をバッチでトリミングしたい
条件は、スクリプトがファイル名からすべての大文字を取得し、それらを小文字に変換してから、スペースを含まないトリミングされたファイル名を形成することです...
このタスクを達成するのを手伝ってください..ありがとう!
たとえば、「This IsGood 1.1.png」から「tig11.png」にファイル名をバッチでトリミングしたい
条件は、スクリプトがファイル名からすべての大文字を取得し、それらを小文字に変換してから、スペースを含まないトリミングされたファイル名を形成することです...
このタスクを達成するのを手伝ってください..ありがとう!
ファイル名の単純な反復から始めることができます
set str=This IsGood 1.1
:again
set chr=%str:~0,1%
set str=%str:~1%
if not "%chr%"=="" echo %chr%
if not "%str%"=="" goto :again
読んHELP SET
で、HELP IF
そしてHELP GOTO
echo
ここで、理解できれば、コマンドを呼び出しに変更して続行します...
if not "%chr%"=="" call :checkchar %chr%
...
:checkchar
echo %1
goto :eof
読むHELP CALL
次に、文字が大文字かどうかを確認するための実際のコードを実装します
:checkchar
for %%c in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9) do if .%1==.%%c echo %%1
goto :eof
読むHELP FOR
この新しいecho
コマンドを関数の新しい呼び出しに変更して、変数を小文字に設定します
ここで、結果を、たとえば、fn
空白に初期化する必要がある変数に連結します。
そして、すべてを適切なファイル名処理でラップし、ファイル名だけを抽出し(処理パラメーターの構文の〜nオプションを参照)、新しい名前でフルパスを構成し直します(〜d〜p〜xオプションを使用)
@echo off
set fn=
call :upcaseonly %~n1
echo %~dp1%fn%%~x1
goto :eof
:upcaseonly
set str=%*
:again
set chr=%str:~0,1%
set str=%str:~1%
if not "%chr%"=="" call :checkchar %chr%
if not "%str%"=="" goto :again
goto :eof
:checkchar
for %%c in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9) do if .%1==.%%c set fn=%fn%%1
goto :eof
これを出発点として使用してください。ファイルの名前を変更し、ファイルがすでに存在する場合、またはファイルの名前を変更できない場合に処理するための独自のロジックを追加する必要があります...