2016-10-25 2 views
0

원격 디렉토리 (psexec)를 검색 한 다음 결과를 변수에 저장해야합니다.명령 파일을 배치 파일에 저장

나는 실행할 파일이 들어있는 다른 많은 폴더로 가득 찬 디렉토리가 있습니다. 네트워크상의 각 컴퓨터에는 필요한 파일이 다른 디렉토리에 있습니다.

예를 들어, 나는

dir *Google_Chrome_49_0_2623_112_X64_EN_R01* /s 

로 (psexec에 사용) 검색 할 것입니다 그리고 난 지금 그 결과

Volume in drive C is OSDISK 
Volume Serial Number is C8AD-F658 

Directory of C:\Windows\ccmcache\2a 

12/04/2016 01:52 PM    458 Google_Chrome_49_0_2623_112_X64_EN_R01.cab 
14/04/2016 05:26 PM   69,632 Google_Chrome_49_0_2623_112_X64_EN_R01.mst 
       2 File(s)   70,090 bytes 

    Total Files Listed: 
       2 File(s)   70,090 bytes 
       0 Dir(s) 4,726,218,752 bytes free 

을 얻을 것 내가 디렉토리 (2A)로 CD에 같은 배치 파일을 필요로하고 실행 안에있는 스크립트.

변수에 '2a'를 저장하여 CD로 저장할 수있는 방법이 있습니까?

은 현재 내가 배치 나에게 검색 결과를 표시합니다 2 단계에서이 일을하고, 다음 디렉토리를 묻는 메시지 :

psexec \\%PCNAME% cmd /c (cd ..\ccmcache ^& dir *Google_Chrome_49_0_2623_112_X64_EN_R01* /s) 

SET DIRECTORY=%1 
SET /P DIRECTORY=Enter Directory: 

문제는, 나는이 완전 자동화 될 필요가있다. 어떻게해야합니까?

참고 : 몇 가지 다른 스레드를 살펴본 결과 아무도 나에게 도움이되지 않습니다. psexec의 결과가 로컬 인터페이스로 다시 흐르지 않는 것 같습니다.

for /f %%a in (psexec \\%PCNAME% cmd /c (cd ..\ccmcache ^& dir *Google_Chrome_49_0_2623_112* /s ^| FIND "Directory of C:\Windows\ccmcache\") DO (
SET v=%%a 
) 

는 VAR에 전체 결과 행을 설정하려고하는,하지만 난 VAR을 확인할 때, 그것은 비어 :
은 내가 시도했습니다.

+2

[bat 스크립트에서 명령 결과를 변수에 저장하는 방법] 가능한 복제본 (http://stackoverflow.com/questions/14019274/how-to-store-result-of-a-command-in- a-variable-in-bat-script) –

+0

여러 스레드 (링크 된 스레드 포함)를 검사했지만 도움이되지 않습니다. 세부 사항이있는 편집 된 질문. –

답변

0

나는 pushd를 사용하여 네트워크 공유에 매핑하고 필요할 때까지 psexec을 다루지 않고 검색을 실행할 수 있음을 발견했습니다.

그래서 내 코드는 지금과 같이 보인다 %의 X %의 지금 내가 찾고 있어요 디렉토리입니다

pushd \\%PCNAME%\C$\Windows\ccmcache 

for /f "tokens=3" %%a in ('dir *Google_Chrome_49_0_2623_112* /s ^| FIND "Directory"') DO (
set v=%%a 
for /f "tokens=4 delims=\" %%m in ('echo !v!') do (set x=%%m) 
) 
popd 

.

+0

왜'dir/S/B'를 주로 사용하지 않고 delims없이 for와 함께 구문 분석하면 폴더에'%% ~ dpa', name.ext에'%% ~ nxa'가 있습니까? – LotPings

관련 문제