텍스트 파일의 목록에서 여러 디렉터리를 만들기 위해 배치 파일을 만듭니다. 그러나 디렉터리가 나열된 후에도 파일 이름이 표시됩니다. 거기에 마지막 \ 이후에 모든 데이터를 무시할 수있는 쉬운 방법이 있나요?마지막 백 슬래시 뒤에 한 줄의 데이터를 무시하는 간단한 DOS 명령 줄
1
A
답변
4
DOS 배치가이 작업에 적합한 도구가 아니라는 점을 제안 할 수 있습니다.이 기능에는 문자열 조작을위한 기본 제공 기능이 필요하지 않기 때문입니다. 사용 가능한 펄이있는 경우
, 당신은 같은 것을 할 수 있습니다
#!/usr/bin/perl -w
while (<>) {
s/\\[^\\]*$//; # this removes a the last backslash and anything after it
mkdir $_;
}
4
는이 같은 것을 사용할 수 있습니다
@echo off
set filename="c:\temp\my files\file.txt"
for /f "tokens=*" %i in ("%filename%") do set filename="%~dpi"
echo %filename%
결과는 "c:\temp\my files\"
될 것입니다.
+0
+1 : 질문에 대한 답변이 달렸습니다. "시작 | 도움말"의 "for"명령에 대한 "도움말"을 찾은 다음 "명령 줄 참조 AZ"를 검색하고 'F'를 클릭하고 'for'로 스크롤 'connamd-line 참조 '주제는 검색 또는 색인을 통해서만 사용할 수 있습니다. –
+0
또는 'for /?'를 입력하십시오. 명령 줄에서 – wimh
이 게시물의 예는 * nix 환경을 위해 명확하게 설정되었으므로 Windows 용 Perl을 얻을 수 있다는 점에 유의할 가치가 있습니다. 설정하는 것은 매우 쉽습니다. perl 사이트로 이동하십시오. – rmeador
이것은 위대합니다, 거기에 비슷한 PHP가 무엇입니까? –
네, PHP에서 비슷한 일을 할 수는 있지만, PHP를 잘 모르기 때문에 좋은 예를들 수 없습니다. –