我有一个计划任务,它启动一个robocopy每小时运行一次的批处理脚本。每次它运行时,桌面上都会弹出一个带有 robocopy 输出的窗口,我真的不想看到。
我设法通过运行预定的作业来使窗口最小化
cmd /c start /min mybat.bat
Run Code Online (Sandbox Code Playgroud)
但这每小时给我一个新的命令窗口。鉴于cmd /c“执行字符串指定的命令然后终止” ,我对此感到惊讶- 我一定误解了文档。
有没有办法在不弹出 cmd 窗口的情况下运行批处理脚本?
scripting windows command-line-interface scheduled-task windows-command-prompt
所以我试图找出stderr进程的 的 是否已被重定向到某种异常(它是一个 java 进程,我想要一个线程转储,但它是通过一组启动脚本启动的)。
我找到了我的过程pgrep,并用它pfiles来查看那里有什么:
4366:/foo/bar/platform/solaris2/jre_1.5.0/bin/java -Xmx2048m -Xms10
当前 rlimit:65536 个文件描述符
0: S_IFCHR 模式:0666 dev:302,0 ino:6815752 uid:0 gid:3 rdev:13,2
O_RDONLY|O_LARGEFILE
/devices/pseudo/mm@0:null
1: S_IFREG 模式:0640 dev:85,56 ino:26471 uid:0 gid:0 size:10485812
O_WRONLY|O_LARGEFILE
2: S_IFREG 模式:0640 dev:85,56 ino:26471 uid:0 gid:0 size:10485812
O_WRONLY|O_LARGEFILE
3: S_IFCHR 模式:0666 dev:302,0 ino:6815772 uid:0 gid:3 rdev:13,12
所以我可以看到stdout和stderr(文件描述符 1 和 2)指向同一个地方;我认为它们被重定向到启动脚本中的同一个文件,所以这符合。
但是当我查找 inode 编号为 26471 的文件时,我看到了:
# 查找/-inum 26471 /usr/share/man/man3mlib/mlib_MatrixScale_S16_U8_Sat.3mlib /proc/4366/fd/1 /proc/4366/fd/2 /proc/4366/fd/83
第一个命中是(我确定)不同文件系统上的文件。中的三个条目/proc是我的进程已打开的 fds。
往里看/proc/4366 …