この問題は何時間も私を悩ませてきました。誰かが光を当てるのを手伝ってくれることを願っています。基本的に、フォルダー内のすべての (特定の種類の) ファイルをスキャンしようとしています (内部にサブフォルダーがないため、この場合は心配する必要はありません)。これらのファイルの名前を取得し、すべてを 1 つの文字列に連結します。 、フォルダーに a.xml、b.xml、c.xml の 2 つのファイルがある場合、次のような文字列を取得したい
-a a.xml -a b.xml -a c.xml
以下は私のコードです。
copy *.xml C:\FTP
setLocal Enabledelayedexpansion
set "directory=C:\temp"
set "attachment= "
set "a= -a "
for %%n in (%directory% *.xml) DO (
set "attachment=!attachment! %a% %directory%\%%n "
echo.%attachment%
)
setlocal disabledelayedexpansion
echo.%attachment%
出力はこの画像に示されています http://imgur.com/vpUUe05 私が抱えている問題は、最初に for ループのすべてのエコーが何も出力しないことです。それらの空白行に示されているように。必要な最後の文字列、つまり添付ファイルには、の最初の部分文字列が含まれています
-a C:\temp\C:temp.
これは実際にはファイルではありません。私が望む最終的な文字列は、この部分文字列がなく、その背後にあるものだけでなければなりません。ちなみに、フォルダ内にファイルがない場合は、「attachment」という文字列を「」のような空文字列にしたいです。誰でも私を助けることができますか?どうもありがとう!