EVSVR - extract multiple files in batch mode

Hi


EV 9.0.2

I need to use EVSVR to extract 1000s of files.

e.g.

evsvr

interactive

ds 1B12861C18E81BC4DAF1E6A2602E0ECBF1110000vaultamericas 201408168190507~201408160406260000~Z~71512988DF16F834B22D4E4BDA47F0B1 -o D:\temp


ds 1A37922FFA291944494A84F24515820B91110000vaultamericas 201407115080514~201407101212130000~Z~801C56B92B9DB9BCDE62A2019F4EC7E1 -o D:\temp

 

How can I do this in a big batch? Obviously I don't want to copy/paste 1000s of times.

 

thanks

1 Solution

Accepted Solutions
Highlighted
Accepted Solution!

One of my scripting gurus

One of my scripting gurus came up with this powershell script, in case anyone is interested. Change F:\temp and data.csv as needed. Data.csv should look like:

1A37922FFA291944494A84F24515820B91110000vaultamericas,201312197433041~201312172129370000~Z~4005840D68DE14BB8B1F5A4F80E15AE1
1A37922FFA291944494A84F24515820B91110000vaultamericas,201312207525766~201312191625230000~Z~504D79DE7B77BE51572720F5A2D92D31
1B12861C18E81BC4DAF1E6A2602E0ECBF1110000vaultamericas,201312177281316~201312171045530000~Z~714ED6511C67D129E2DDFCAB229124F1

----------START OF SCRIPT-------------

$out = "F:\temp"
$ErrorActionPreference= 'silentlycontinue'

foreach($line in gc data.csv){
 $tID = $line.split(",")[0] -replace "~", "{~}"
 $sID = $line.split(",")[1] -replace "~", "{~}"

 $id = (start-process "D:\Program Files (x86)\Enterprise Vault\evsvr.exe" -passthru).id
 start-sleep -s 2

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
 [Microsoft.VisualBasic.Interaction]::AppActivate("D:\Program Files (x86)\Enterprise Vault\evsvr.exe")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("Interactive")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("~")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("ds $tID $sID -o $out")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("~")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("exit")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("~")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("exit")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("~")

 while(get-process -id $id){
  start-sleep -s 2
 }

 stop-process -id $id
 start-sleep -s 2
}

View solution in original post

7 Replies
Highlighted

what are you trying to

what are you trying to accomplish? are you working with support on a case?

Highlighted

Not working with

Not working with support.

Basically I have 3 very large CA searches. I want to export the results without accepting the search (I don't need this search in CA and don't want to unnecessarily increase DB size).

I have all the SaveSets and Transaction IDs via SQL, 

I can export the individual .msg files using EVSVR in interactive mode. But I want to do a bulk operation as per my original post.

thanks

Highlighted

sorry i'm not aware of a way

sorry i'm not aware of a way to batch ds commands in evsvr. maybe one of the gurus has a creatve approach for you. 

Highlighted

Appreciate your help. In the

Appreciate your help. In the absence of "the gurus" I may not have a choice except accepting these large searches in CA and exporting through the client... Smiley Sad thanks

Highlighted
Accepted Solution!

One of my scripting gurus

One of my scripting gurus came up with this powershell script, in case anyone is interested. Change F:\temp and data.csv as needed. Data.csv should look like:

1A37922FFA291944494A84F24515820B91110000vaultamericas,201312197433041~201312172129370000~Z~4005840D68DE14BB8B1F5A4F80E15AE1
1A37922FFA291944494A84F24515820B91110000vaultamericas,201312207525766~201312191625230000~Z~504D79DE7B77BE51572720F5A2D92D31
1B12861C18E81BC4DAF1E6A2602E0ECBF1110000vaultamericas,201312177281316~201312171045530000~Z~714ED6511C67D129E2DDFCAB229124F1

----------START OF SCRIPT-------------

$out = "F:\temp"
$ErrorActionPreference= 'silentlycontinue'

foreach($line in gc data.csv){
 $tID = $line.split(",")[0] -replace "~", "{~}"
 $sID = $line.split(",")[1] -replace "~", "{~}"

 $id = (start-process "D:\Program Files (x86)\Enterprise Vault\evsvr.exe" -passthru).id
 start-sleep -s 2

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
 [Microsoft.VisualBasic.Interaction]::AppActivate("D:\Program Files (x86)\Enterprise Vault\evsvr.exe")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("Interactive")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("~")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("ds $tID $sID -o $out")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("~")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("exit")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("~")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("exit")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
 [System.Windows.Forms.SendKeys]:Smiley FrustratedendWait("~")

 while(get-process -id $id){
  start-sleep -s 2
 }

 stop-process -id $id
 start-sleep -s 2
}

View solution in original post

Highlighted

niiiiice

niiiiice

Highlighted

Re: niiiiice

Still works in EV12.3 :-)

When copying, I got the smily shown as ":Frustrated Man"

Replace that with ":Smiley Frustrated" and your good to go.

Regards. Gertjan