Robocopy shows a command window in .bat

There is a command window flickering when I run this code. When I only run Robocopy, no window is showing??? It seems like it is when I run as another user that the window appers. How do I get ridd of that, so the program is completely silent/hidden? (the .bat-file itself is hidden by using hstart from a vbs-file)

if exist "%path%" (runas /user:%user% "%path%\Robocopy.exe %path% "%ProgramFiles%\folder"  /MIR /E /W:0 /R:2 /XD *Script* > "%ProgramFiles%\DOM_Mallar\cp_mallar.txt"" | %path%\sanur %pwd%)

Thanks!
if exist "%path%" (runas /user:%user% "%path%\Robocopy.exe %path% "%ProgramFiles%\folder"  /MIR /E /W:0 /R:2 /XD *Script* > "%ProgramFiles%\DOM_Mallar\cp_mallar.txt"" | %path%\sanur %pwd%)

Open in new window

LVL 6
einarbrownAsked:
Who is Participating?
 
RobSampsonCommented:
Hi, I'd say the extra DOS box is appearing because of the RunAs command. You'd have to use a silent program like PSExec.exe to have no DOS box.

There may be a syntax error here, but it would be something like this.

Regards,

Rob.
if exist "%path%" (psexec -accepteula -u %user% -p %pwd% "%path%\Robocopy.exe %path% "%ProgramFiles%\folder" /MIR /E /W:0 /R:2 /XD *Script* > "%ProgramFiles%\DOM_Mallar\cp_mallar.txt"")

Open in new window

0
 
einarbrownAuthor Commented:
Thanks! You made me understand that it was the runas that made the window pop up. I tried the psexec but I didnt get it working. Maby I dont understand exactly how it works.

But now I have solwed it, or how ever made a work around:

First I have a vb-script file that starts a exe-file a have med myself in c#. I run the exe-file (a console app) with hstart to hide the console window.

In the c# code I run robocopy, and again I do it using the utility hstart.

Puh....


VB-file:
 
Shell.Run "path\hstart /NOCONSOLE path\MyConsoleApp.exe"
 
---------
C#:
 
if (Directory.Exists(@"path"))
            {
                System.Diagnostics.ProcessStartInfo myProcess = new System.Diagnostics.ProcessStartInfo(@"path\hstart.exe", "/NOCONSOLE \"path\\Robocopy.exe path1 path2  /MIR /E /W:0 /R:2 /XD *Script*  > path\\info.txt\"");
                System.Security.SecureString password = new System.Security.SecureString();
                string uspw = "Password";
                foreach (char c in uspw)
                {
                    password.AppendChar(c);
                }
                password.MakeReadOnly();
 
                myProcess.WorkingDirectory = @"path";
                myProcess.UserName = "UserName";
                myProcess.Password = password;
                myProcess.UseShellExecute = false;
                
                System.Diagnostics.Process.Start(myProcess);
            }
 
--------------

Open in new window

0
 
einarbrownAuthor Commented:
Thanks allot!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.