C# 运行进程时无法打开:c:\users\…\temp\package.cab。启动

C# 运行进程时无法打开:c:\users\…\temp\package.cab。启动,c#,scripting,text-files,temp,C#,Scripting,Text Files,Temp,您好,我得到了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 exi

您好,我得到了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
我想解决这个问题的最好办法是利用微软的脚本?但我不知道怎么做。或者C#中有一个解决方案


提前感谢

我得到了一位非常了解wsus离线的人的帮助,他知道如何编写脚本。我在这里问了同样的问题:得到了这个答案: 特别感谢“阿克”


值得检查的是,行
\bin\wget.exe-N-i.\static\StaticDownloadLinks-wsus.txt-P“%TEMP%”
正在按预期运行,因为执行
expand.exe
时,文件
wsusscn2.cab
package.cab
不在
%TEMP%
中。是的,但当我双击ExtractDownloadLinks all时,它为什么会工作,但是当我在C#中做同样的事情时,它就不起作用了?我是否必须首先用C#或类似的语言加载整个主干图才能使其工作?我完全不知道如果我要冒险猜测,我会建议
wget.exe
的输出与直接运行时不同。您可能需要查看C#正在使用的工作目录,因为您的相对路径(如
\static\StaticDownloadLinks wsus.txt
可能最终位于与您期望的位置不同的位置。
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();