如何在Windows命令提示符下运行命令行应用程序并同时显示输出并重定向到文件?
例如,如果我要运行该命令dir > test.txt,则会将输出重定向到调用的文件test.txt而不显示结果.
我怎么能写一个命令显示输出和输出重定向到在Windows命令提示符下一个文件,类似于teeUnix上的命令?
我有一个Java应用程序,我从控制台运行,然后控制台执行另一个Java进程.我想获得该子进程的线程/堆转储.
在Unix上,我可以做一个kill -3 <pid>但是在Windows AFAIK上获取线程转储的唯一方法是在控制台中使用Ctrl-Break.但这只会让我转移父进程,而不是孩子.
有没有另一种方法来获得堆转储?
在Windows(Windows XP)批处理脚本中,我需要格式化当前日期和时间,以便以后在文件名中使用等.
它类似于Stack Overflow问题如何在批处理文件中附加日期,但也有时间.
到目前为止我有这个:
echo %DATE%
echo %TIME%
set datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%__%time:~0,2%_%time:~3,2%_%time:~6,2%
echo %datetimef%
Run Code Online (Sandbox Code Playgroud)
这使:
28/07/2009
8:35:31.01
2009_07_28__ 8_36_01
Run Code Online (Sandbox Code Playgroud)
有没有办法允许%TIME%的单个数字小时,所以我可以得到以下内容?
2009_07_28__08_36_01
Run Code Online (Sandbox Code Playgroud) 我目前正在运行Vista,我想手动完成与Windows服务相同的操作.由于Windows服务在本地系统帐户下运行,我想模仿这种相同的行为.基本上,我想在本地系统帐户下运行CMD.EXE.
我在网上找到了建议使用DOS任务计划程序AT命令发送CMD.exe的信息,但是我收到了Vista警告"由于安全性增强,此任务将在除外但不交互的情况下运行".这是一个示例命令:
AT 12:00 /interactive cmd.exe
Run Code Online (Sandbox Code Playgroud)
另一个解决方案建议通过服务控件(sc.exe)创建辅助Windows服务,该服务仅启动CMD.exe.
C:\sc create RunCMDAsLSA binpath= "cmd" type=own type=interact
C:\sc start RunCMDAsLSA
Run Code Online (Sandbox Code Playgroud)
在这种情况下,服务无法启动并导致以下错误消息:
FAILED 1053: The service did not respond to the start or control request in a timely fashion.
Run Code Online (Sandbox Code Playgroud)
第三个建议是通过计划任务启动CMD.exe.虽然您可以在各种帐户下运行计划任务,但我不认为本地系统帐户是其中之一.
我也尝试过使用Runas,但是我认为我遇到了与运行计划任务时相同的限制.
到目前为止,我的每一次尝试都以失败告终.有什么建议?
我正在使用kill -3命令在unix中查看JVM的线程转储.但是我在哪里可以找到此kill命令的输出?我搞不清楚了!!
我已经(过去)编写跨平台(Windows/Unix的),其命令行启动时,处理用户输入的应用Ctrl- C以同样的方式组合(即彻底结束应用程序).
在Windows上是否可以从另一个(不相关的)进程发送Ctrl- C/ SIGINT /等效进程来请求它干净地终止(给它一个整理资源的机会等)?
...
for /F %%F in ('dir /B %* 2> nul') do (
...
Run Code Online (Sandbox Code Playgroud)
我在这里尝试做的是丢弃命令的错误输出(并在stdout输出上循环).然而,它抱怨:
2> was unexpected at this time.
Run Code Online (Sandbox Code Playgroud)
这是实现这个目标的一些方法吗?
这是我的驱动器上的地址:
C:\ Program Files\Java\jdk1.6.0_18\bin
我将如何设置路径变量,以便我可以进入命令窗口(windowskey + r"cmd")并能够键入以下内容:
javac TestApp.java
Run Code Online (Sandbox Code Playgroud)
我正在使用Windows 7专业版.
我需要能够使用命令行从正在运行的进程 (cmd.exe) 获取 PID。问题是有两个 cmd.exe 正在运行。一种是用户名 SYSTEM,另一种是 compUser。有没有办法可以获取 compUser cmd.exe 的 PID?
编辑:这需要进一步解释。我正在通过批处理文件执行此操作。我在批处理文件中进行的调用之一启动了一个永不消失的 cmd.exe。所以杀死 cmd.exe 很简单:
taskkill /F /IM cmd.exe /FI "username eq compUser"
Run Code Online (Sandbox Code Playgroud)
问题是我所在的批处理文件正在由用户名 compUser 下的 cmd.exe 的另一个实例处理。我试图做的是在启动第二个 cmd.exe 之前从原始 cmd.exe 获取 PID。这样我就可以使用命令:
taskkill /F /IM cmd.exe /FI "username eq compUser" /FI "PID neq [orignal task's PID]"
Run Code Online (Sandbox Code Playgroud) java ×4
windows ×4
batch-file ×3
cmd ×2
signals ×2
64-bit ×1
command-line ×1
datetime ×1
dump ×1
for-loop ×1
formatting ×1
heap-dump ×1
jvm ×1
path ×1
pid ×1
sigint ×1
stdout ×1
tee ×1
thread-dump ×1
websphere ×1