Windows 명령

Windows 명령

파일 이름에서 마지막 밑줄을 찾아 그 뒤의 모든 항목(마지막 밑줄 포함)을 제거해야 합니다.

예: 파일 이름:

abc_erf_dsgd_fd12458.txt

예상 결과:

abc_erf_dsgd.txt

참고: 파일 이름에 나타나는 밑줄 수는 동적이며 본질적으로 고정되어 있지 않습니다.

특정 파일에는 밑줄이 2개만 있을 수 있지만 다른 파일에는 최대 6개까지 있을 수 있습니다.
여기서 의도는 마지막 밑줄을 찾아 그 뒤의 모든 것을 생략하는 것입니다.

powershell 명령이 아닌 트릭을 수행할 수 있는 Windows 배치 스크립트를 사용하는 것이 좋습니다.

답변1

@Echo off
set file=abc_erf_dsgd_fd12458.txt
for %%A in (%file%) do set Ext=%%~xA
set remove=%file%
:loop
if "%remove%" neq "%remove:*_=%" Set "remove=%remove:*_=%"&goto :loop
call set filenew=%%file:_%remove%=%%%Ext%"
set file

샘플 출력:

> SU_1220967.cmd
file=abc_erf_dsgd_fd12458.txt
filenew=abc_erf_dsgd.txt"

배치

  • 먼저 확장을 var로 가져옵니다.Ext
  • remove그런 다음 문자열 대체를 사용하여 루프에서 밑줄까지의 모든 텍스트를 제거한 후 파일 이름의 나머지 부분을 포함하는 var를 생성합니다 .
  • remove아무것도 없는 것으로 대체하고 확장자를 다시 적용하여 새 파일 이름을 만듭니다.

관련 정보