2017-12-11 17 views

答えて

4

ヘルプは、修飾子でバッチファイルの引数を参照するために、すべての可能性を指定します。コマンドプロンプトでset /?を実行する上で、コマンド環境変数の文字列値のSETでサポートされているとSET出力の助けによって説明されるように

直接の操作を変更する他の文字列を使用して引数リストを変更することはできません窓。

+0

モフィが正しいです。バッチ引数リストは 'FOR /? 'の出力にも現れます。 – lit

-2

なぜ2行のコードを使用できないのですか?

Set AllARGs=%*                            
Set AllArgsModified=%AllARGs:.txt 
+0

それは私が必要なもののように見えます。私はそれをテストします。 – Adrian

+1

私は好奇心が強い、2行目は何をするつもりなのか... – Stephan

+0

@Stephanは接尾辞を置き換えるが動作しない – Adrian

0

私が正しいと理解していれば、パラメータに与えられた新しい拡張子(接尾辞)でファイルの束をリネームするスクリプトです。

このバッチでは、名前にカッコが含まれておらず、接尾辞がの最初のパラメータである場合に限り、これを実行できます。ここで

はコードです:

RENAMER.BATのparam1 PARAM2 param3 ...

  • の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 

は、それだけで一つのコマンドのように実行するバッチファイルとして保存することができます。

これが役に立ちます。

関連する問題