0

特定のディレクトリ内のすべての mt .avi ファイルを取得し、各ファイルの後にディレクトリの名前を変更し、別のスクリプトをループで呼び出すスクリプトを作成しようとしています: (ディレクトリの名前は入力です)

cd /D %1
dir *.avi > avi.list
set x=%1
set z=%1
cd ..
    FOR /F "tokens=1-5" %G IN (avi.list) DO (
    @set y=%K
    rename %x% %y%
    set x=%y%
    C:\indexer\Indexer.exe %y%
    )
rename %y% %z%
cd /D %z%
del avi.list

ありがとう!!

4

1 に答える 1

0

%G と %K の両方が、バッチ ファイル内で %%G と %%K である必要があります。

ファイル名にスペースやその他の厄介な文字が含まれている場合は、二重引用符も必要になります。

ファイル名とパスを取得するためのより良い方法があります(ファイル名のみを追加):これを試してください

@echo off
cd /d "%~1"
   for /f "delims=" %%a in (' dir *.avi /b /a-d ') do (
      echo filename without extension is "%%~na"
      echo name is "%%~nxa"
      echo filepath is "%%~dpa"
      pause
   )

コマンド プロンプトで次のヘルプを参照してください: FOR /? 最後のページには修飾子のリストがあります。

于 2013-11-08T02:57:44.743 に答える