파일의 단어 중 하나가 CMD 일괄 처리에서 자주 변경되는 매우 긴 문자열에 있는지 어떻게 찾습니까?

MelBurslan

이 파일 이름은 Windows 공유의 디렉토리에 놓이는 데, 파일 이름에 키워드 중 하나가 있는지 여부에 따라 사용자의 로컬 컴퓨터의 올바른 위치에 있어야합니다.

예를 들면 :

z:\mailbox\in\Very_but#very-very!long#filenameWITH-keyword+in^it

여기서 z:승리-7 또는 윈 - (10) 기계의 세트에서 액세스 할 수 있습니다. 그리고 이러한 컴퓨터에는 다음 두 개의 디렉토리가 있습니다.

c:\incoming\special
c:\incoming\regular

파일 이름에 키워드 중 하나가 포함 된 c:\incoming\special경우 폴더로 이동해야하는 경우 폴더에 복사 해야 c:\incoming\regular합니다.

내 키워드는 파일에 있습니다. 예를 들어, c:\keywords.txt언제든지 (5 분마다 확인) 파일이 없거나 z:\mailbox\in디렉토리에 파일이 하나만있을 수 있습니다 .

그래서, 이것은 내가 생각한 것입니다. 작동하지 않습니다. (배치 파일은 처리 할 파일이 있다고 가정하고 아직 파일이 없다면 어떻게 해야할지 모르겠습니다)

dir /b z:\mailbox\in > tmp.out
set /p file=<tmp.out
del tmp.out

set keyword_found_flag=0
for /F "tokens=*" %%keyword in (c:\keywords.txt) do (

echo %file% | find /i "%%keyword"
if errorlevel=0 set keyword_found_flag=1

)

오류 수준은 키워드가 있는지 여부에 관계없이 항상 0입니다.

IF keyword_found_flag=1 (
    copy z:\mailbox\in\%file% c:\incoming\special
) ELSE (
    copy z:\mailbox\in\%file% c:\incoming\regular
)

여기서 무엇을해야할지 모르겠습니다. 어떤 도움을 주시면 감사하겠습니다

내가 아니었다

&&실행이 일치하면 연산자 ( )를 사용하여 플래그를 설정 하지 않는 이유 는 무엇입니까?


echo %file% | find /i "%%keyword" >nul && set keyword_found_flag=1 

또한 프로세스를 위해 tmp.out 파일을 생성 / 삭제할 필요가 없습니다. z : \ mailbox \ in의 파일 이름에 대해 double을 사용하고, c : \ keywords.txt에 포함 된 파일을 확인하려면 다른 for를 사용하십시오. z : \ mailbox \ in ...의 파일 이름

@echo off

set "keyword_found_flag=" && for /f tokens^=* %%i in ('dir /on /b /a:-d "z:\mailbox\in\*.*"
')do for /F tokens^=* %%K in ('type c:\keywords.txt')do echo="%%~i"| find /i "%%~K" && (
     set "keyword_found_flag=1") || (set "keyword_found_flag=0")

또는...

@echo off 

set "keyword_found_flag=" && for /f tokens^=* %%i in ('dir /on /b /a: -d "z:\mailbox\in\*.*"
')do for /F tokens^=* %%K in ('type c:\keywords.txt')do echo="%%~i"|find /i "%%~K" >nul && (
set "keyword_found_flag=1" && copy /v "%%~dpnxi" "c:\incoming\special\" ) || (
set "keyword_found_flag=0" && copy /v "%%~dpnxi" "c:\incoming\regular\" )

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관