
Windows 명령줄을 사용하여 다음을 수행하려면 어떻게 해야 합니까?
C:\Users\My Computer\SkyDrive\WORK ORDERS\Subdivision\Sec. 1\12345678_123 LUMINAIRE LN.pdf
becomes
WORK ORDERS\Subdivision\Sec. 1\12345678_123 LUMINAIRE LN.pdf
나는 다음을 사용하는 Linux에 더 익숙합니다.
cat wo.txt2 | grep "WORK\|pdf|" | sed 's/^.*WORK/WORK/' >> wo.txt
내 텍스트 파일에는 약 17,000줄이 있습니다.
답변1
순수 배치 사용:
@echo off
setlocal disableDelayeExpansion
set "input=wo.txt2"
set "output=wo.txt"
>"%output%" (
for /f "delims=" %%A in ('findstr /n "^" "%input%"') do (
set "ln=%%A"
setlocal enableDelayedExpansion
set "ln=!ln:*:=!"
if defined ln set "ln=!ln:*WORK=WORK!"
(echo(!ln!)
endlocal
)
)
WORK 검색에서는 대소문자를 구분하지 않습니다.
FINDSTR은 빈 줄을 유지하기 위해 각 줄 앞에 줄 번호와 콜론을 붙이는 데 사용됩니다.
!
지연된 확장은 소스 파일에 존재할 수 있는 내용을 보존하기 위해 루프 내에서 켜고 끌 수 있습니다 .
훨씬 간단한 해결책은 내JREPL.BAT 정규식 텍스트 처리 유틸리티- XP 이상의 모든 Windows 시스템에서 기본적으로 실행되는 순수 스크립트 기반 유틸리티(하이브리드 JScript/배치)입니다.
명령줄에서:
jrepl "^.*WORK" "WORK" /f "wo.txt2" /o "wo.txt"
배치 스크립트 내에서 명령을 사용하는 경우 CALL JREPL을 사용해야 합니다.
답변2
notepad++를 사용하여 파일을 열고 Alt 키를 누른 다음 마우스로 원하지 않는 텍스트의 "열"을 선택하십시오. Alt 키를 누르는 동안 열 모드가 유지됩니다. Alt 키를 놓고 del 키를 누릅니다. 모든 줄에 삭제할 문자 수가 동일한 경우 유효합니다.
답변3
다음 예와 같은 문자열 함수를 살펴보세요.
모자에 str=teh 고양이를 설정하세요 echo.%str% 설정 str=%str:teh=the% echo.%str%
C:\Users\My Computer\SkyDrive\
기본적으로 공백으로 바꾸고 싶습니다 .
사용할 수 있는 문자열 함수 목록은 다음과 같습니다.http://www.dostips.com/DtTipsStringManipulation.php#Snippets.MidString