2.bat
javac Main.java
start "java Main > log.log"
public class Main {
public static void main(String... args) {
System.out.println("Hello from Java!");
}
}
Admiralisimys писал(а):В проксе нужно будет собрать все переменны окружения, включая те которые на создавали\на изменяли два батника, что по сути равноценно разберанию в их коде.
Admiralisimys писал(а):Что касается эмуляции выполнении bat файла, то в той же в консоли отладки Idea реализована такая возможность.
Admiralisimys писал(а):а запуск очевидно с параметрами, некоторые из которых должны будут подставлены из окружения.
Admiralisimys писал(а):Там именно полноценный терминал cmd (View->Tool Windows->Terminal (Alt+F12)), так что всё что запускает cmd запустится и здесь.
требуется наличие вызовов flush томкатом
$Process = New-Object system.Diagnostics.Process
$Process.StartInfo = New-Object System.Diagnostics.ProcessStartInfo(".\1.bat")
$Process.StartInfo.RedirectStandardOutput = $true
$Process.StartInfo.RedirectStandardError = $true
$Process.StartInfo.UseShellExecute = $false
$Process.Start() | Out-Null
echo "Live output..."
while (!$Process.HasExited){
$line = $Process.StandardOutput.ReadLine()
Write-Host $line
$stdout += $line + "`n"
}
$line = $Process.StandardOutput.ReadToEnd()
Write-Host $line
$stdout += $line + "`n"
$stderr = $stderr + $Process.StandardError.ReadToEnd()
echo "Check the variable contains all output...`n"
Write-Host "stdout: $stdout"
Write-Host "stderr: $stderr"
import java.util.Timer;
import java.util.TimerTask;
public class Main {
public static int much = 0;
public static Timer timer = new Timer();
public static void main(String... args) {
System.out.println("Hello from Java!");
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
System.out.println("Tick " + much++);
System.out.flush();
if (much == 10) {
timer.cancel();
}
}
}, 0, 1000);
}
}
Admiralisimys писал(а):Если мы перенаправляем поток какая разница вызываемой программе, ведь она всё так же полагает что выводит в консоль разве нет*?
Admiralisimys писал(а):start /b java Main
File D:\.....................................\0.ps1 cannot be loaded because the execution of scripts is disabled on thi
s system. Please see "get-help about_signing" for more details.
At line:1 char:8
+ .\0.ps1 <<<<
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException
Qwertiy писал(а):
- Код: Выделить всё
cannot be loaded because the execution of scripts is disabled on thi
s system. Please see "get-help about_signing" for more details.
ChDir("D:\Некий Путь\tomcat-7 - R5\bin")
Dim Info As New ProcessStartInfo With {.FileName = "cmd.exe", .Arguments = "/k ""D:\Некий Путь\tomcat-7 - R5\bin\startup.bat""", .RedirectStandardOutput = True, .RedirectStandardError = True, .UseShellExecute = False, .CreateNoWindow = True}
Dim Prc As Process = Process.Start(Info)
Do
Dim Line As String = Await Prc.StandardOutput.ReadLineAsync()
If Line Is Nothing Then Exit Do
RtbStart1.Text += Line + vbCrLf
Loop
Imports System
Imports System.Diagnostics
Imports System.Windows.Forms
Class BatRunner
Inherits Form
<STAThread()>
Public Shared Sub Main()
Application.Run(New BatRunner())
End Sub
Public Sub New()
StartBat()
End Sub
Private Async Sub StartBat()
Dim Info As New ProcessStartInfo With {.FileName = "cmd.exe", .Arguments = "/k ""1.bat""", .RedirectStandardOutput = True, .RedirectStandardError = True, .UseShellExecute = False, .CreateNoWindow = True}
Dim Prc As Process = Process.Start(Info)
Do
Dim Line As String = Await Prc.StandardOutput.ReadLineAsync()
If Line Is Nothing Then Exit Do
System.Console.WriteLine(Line)
Loop
End Sub
End Class
Qwertiy писал(а):Код собран как консольное приложение и запускается с консоли?
Вернуться в Windows-программирование
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3