2016-10-25 151 views
0

我需要搜索遠程目錄(psexec),然後將結果存儲在變量中。將命令存儲到批處理文件中的變量

我有一個目錄充滿了許多其他文件夾,每個文件夾都包含一些我需要執行的文件。網絡上的每臺計算機都有我需要的文件在不同的目錄中。

例如,我會(使用PSEXEC)搜索與

dir *Google_Chrome_49_0_2623_112_X64_EN_R01* /s 

而且我會得到的結果

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和執行一個腳本里面。

有沒有辦法將'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,它是空的。

+2

[如何將命令的結果存儲在蝙蝠腳本中的變量中]可能的副本(http://stackoverflow.com/questions/14019274/how-to-store-result-of-a-command-in-一個變量在蝙蝠腳本) –

+0

已經檢查了幾個線程(包括鏈接的一個),他們沒有幫助。編輯問題的細節。 –

回答

0

我剛剛發現可以使用pushd映射到網絡共享,然後在那裏運行搜索,而不是直到需要處理psexec。

所以我的代碼現在看起來像:

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 

其中%X%是現在我在尋找的目錄。

+0

爲什麼不主要使用'dir/S/B'並解析爲沒有分隔符的文件夾爲'%%〜dpa',name.ext爲'%%〜nxa'? – LotPings

相關問題