Не удается открыть: c:\users\...\temp\package.cab при запуске Process.Start
Здравствуйте, я получил этот маленький скрипт от Microsoft:
@echo off
rem *** Author: T. Wittrock, Kiel ***
if not exist "%TEMP%\wsusscn2.cab" (
.\bin\wget.exe -N -i .\static\StaticDownloadLinks-wsus.txt -P "%TEMP%"
if exist "%TEMP%\wuredist.cab" del "%TEMP%\wuredist.cab"
if exist "%TEMP%\WindowsUpdateAgent30-x64.exe" del "%TEMP%\WindowsUpdateAgent30-x64.exe"
if exist "%TEMP%\WindowsUpdateAgent30-x86.exe" del "%TEMP%\WindowsUpdateAgent30-x86.exe"
)
if exist "%TEMP%\package.cab" del "%TEMP%\package.cab"
if exist "%TEMP%\package.xml" del "%TEMP%\package.xml"
%SystemRoot%\System32\expand.exe "%TEMP%\wsusscn2.cab" -F:package.cab "%TEMP%"
%SystemRoot%\System32\expand.exe "%TEMP%\package.cab" "%TEMP%\package.xml"
del "%TEMP%\package.cab"
%SystemRoot%\System32\cscript.exe //Nologo //E:vbs .\cmd\XSLT.vbs "%TEMP%\package.xml" .\xslt\ExtractDownloadLinks-w60-x64-glb.xsl "%TEMP%\DownloadLinks-all.txt"
%SystemRoot%\System32\cscript.exe //Nologo //E:vbs .\cmd\XSLT.vbs "%TEMP%\package.xml" .\xslt\ExtractDownloadLinks-w60-x86-glb.xsl "%TEMP%\DownloadLinks-all.txt"
del "%TEMP%\package.xml"
del "%TEMP%\wsusscn2.cab"
:EoF
Я отлично бегаю, когда дважды щелкаю по нему. Я пытаюсь открыть его через C# с помощью следующего кода:
System.Diagnostics.Process.Start("C:\\Users\\me\\Desktop\\trunk-r664\\trunk\\ExtractDownloadLinks-all");
Но когда я запускаю это, он выдает ошибку в cmd, говоря:
Can not open input file: c:\users\me\appdata\local\temp\packacge.cab
Can not open input file: c:\users\me\appdata\local\temp\wsusscn2.cab
Я думаю, что лучший вариант исправить это случайно сценарий Microsoft? Но я понятия не имею, как. Или, может быть, есть решение в C# для этого?
заранее спасибо
1 ответ
Мне помог кто-то, кто много знает о wsus в автономном режиме и умеет писать сценарии. Я задаю тот же вопрос здесь: http://forums.wsusoffline.net/viewtopic.php?f=4&t=5001&p=15991 И получил этот ответ: Особая благодарность "Aker"!
System.Diagnostics.Process wsusou = new Process();
wsusou.StartInfo.FileName = "cmd.exe";
wsusou.StartInfo.Arguments = @"/k C:\Users\me\Desktop\trunk-r664\trunk\ExtractDownloadLinks-all.cmd"; // replace "/k" with "/c", if cmd should auto-close
wsusou.StartInfo.WorkingDirectory = @"C:\Users\me\Desktop\trunk-r664\trunk";
wsusou.Start();
while (wsusou.HasExited == false)
{
System.Threading.Thread.Sleep(100);
}
wsusou.Dispose();