%*
を使用してすべてのファイル入力を参照できます。バッチ - 1つのステートメントの引数に接尾辞を追加する
1つのコマンドですべての入力の接尾辞を変更する方法はありますか?
私はこれをしたい:
はutil.bat:コマンドCALL call /?
を実行している上出力の
my_command.exe %*:.txt
%*
を使用してすべてのファイル入力を参照できます。バッチ - 1つのステートメントの引数に接尾辞を追加する
1つのコマンドですべての入力の接尾辞を変更する方法はありますか?
私はこれをしたい:
はutil.bat:コマンドCALL call /?
を実行している上出力の
my_command.exe %*:.txt
ヘルプは、修飾子でバッチファイルの引数を参照するために、すべての可能性を指定します。コマンドプロンプトでset /?
を実行する上で、コマンド環境変数の文字列値のSETでサポートされているとSET出力の助けによって説明されるように
直接の操作を変更する他の文字列を使用して引数リストを変更することはできません窓。
私が正しいと理解していれば、パラメータに与えられた新しい拡張子(接尾辞)でファイルの束をリネームするスクリプトです。
このバッチでは、名前にカッコが含まれておらず、接尾辞がの最初のパラメータである場合に限り、これを実行できます。ここで
はコードです:
RENAMER.BATのparam1 PARAM2 param3 ...
CODE:このソリューションは、「一つのコマンド」ではありませんが、あなたが書いたように
@echo off
setlocal
rem Check the existence of the suffix
if "%~1"=="" (
echo Suffix is missing.
goto:EOF
) else (
set "suffix=%~1"
)
rem Removes the dot of the suffix
if "%suffix:~0,1%"=="." set "suffix=%suffix:~1%"
shift /1
:Loop
rem Check if there is still files to rename
if "%~1"=="" (
echo Task ended.
goto:EOF
) else (
set "fileName=%~n1"
)
rem Check the existence of the file
if exist "%~1" (
ren "%~1" "%fileName%.%suffix%"
) else (
echo File not found: "%~1"
)
shift /1
goto Loop
goto:EOF
は、それだけで一つのコマンドのように実行するバッチファイルとして保存することができます。
これが役に立ちます。
モフィが正しいです。バッチ引数リストは 'FOR /? 'の出力にも現れます。 – lit