.doc
すべてのファイルを。でリストしたいディレクトリがあります;
。
次のバッチコマンドがすべてのファイルをエコーすることを知っています。
for /r %%i In (*.doc) DO echo %%i
しかし今、私はそれらすべてを変数に入れ;
、間にそれらを追加し、それらすべてを一度にエコーしたいと思います。
どうやってやるの?
set myvar="the list: "
for /r %%i In (*.doc) DO <what?>
echo %myvar%
.doc
すべてのファイルを。でリストしたいディレクトリがあります;
。
次のバッチコマンドがすべてのファイルをエコーすることを知っています。
for /r %%i In (*.doc) DO echo %%i
しかし今、私はそれらすべてを変数に入れ;
、間にそれらを追加し、それらすべてを一度にエコーしたいと思います。
どうやってやるの?
set myvar="the list: "
for /r %%i In (*.doc) DO <what?>
echo %myvar%
どうですか:
@echo off
set myvar="the list: "
for /r %%i in (*.doc) DO call :concat %%i
echo %myvar%
goto :eof
:concat
set myvar=%myvar% %1;
goto :eof
ルーベンスのソリューションに基づいて、変数がループで正しく評価されるように、env 変数の遅延展開を有効にする必要があります (「help setlocal」または「help cmd」と入力)。
@echo off
setlocal enabledelayedexpansion
set myvar=the list:
for /r %%i In (*.sql) DO set myvar=!myvar! %%i,
echo %myvar%
次の制限も考慮してください ( MSDN )。
個々の環境変数の最大サイズは 8192 バイトです。
変数@fname
or@ext
は単純に連結できることに注意してください。これ:
forfiles /S /M *.pdf /C "CMD /C REN @path @fname_old.@ext"
すべての PDF ファイルの名前を「filename_old.pdf」に変更します