programing

Windows 배치 파일에서 문자열을 연결하는 방법은 무엇입니까?

nasanasas 2020. 10. 27. 08:19
반응형

Windows 배치 파일에서 문자열을 연결하는 방법은 무엇입니까?


나는 모든 .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

Rubens의 솔루션에 따라 환경 변수의 지연 확장 ( "help setlocal"또는 "help cmd"유형)을 활성화하여 var가 루프에서 올바르게 평가되도록해야합니다.

@echo off
setlocal enabledelayedexpansion
set myvar=the list: 
for /r %%i In (*.sql) DO set myvar=!myvar! %%i,
echo %myvar%

다음 제한 사항 ( MSDN ) 도 고려하십시오 .

최대 개별 환경 변수 크기는 8192 바이트입니다.


변수 @fname또는 @ext단순히 연결될 수 있습니다. 이:

forfiles /S /M *.pdf /C "CMD /C REN @path @fname_old.@ext"

모든 PDF 파일의 이름을 "filename_old.pdf"로 바꿉니다.

참고 URL : https://stackoverflow.com/questions/2027070/how-to-concatenate-strings-in-a-windows-batch-file

반응형