-
2019-05-24 15:08:00
在window上可能存在想要将执行cmd命令的结果在屏幕输出的同时保持到某个文件中,以便后续查看,下面即可实现上述功能:
1)因后面会用到指令tee,而tee为Liunx指令,所以首先需下载UnxUtils.zip(http://sourceforge.net/projects/unxutils/?source=dlp);
2)解压,将tee.exe复制到system32目录下;
3)在windows可执行文件test.bat中添加指令:
<command> 2>&1 | tee result.txt //tee:把日志输出到log的同时输出到屏幕将标准输出重定向到一个文件的同时并在屏幕上显示转载:https://blog.csdn.net/edonlii/article/details/24319561
更多相关内容 -
windows中printf重定向到文件
2020-10-15 12:36:20想要做一个每日计划的表格拿去打印,实在用不好excelexcelexcel,就用了C语言做了个打印表格的程序(下面有效果图).......//中间的内容重定向到文件中 fclose(fp); 这是效果的图片: 这是源程序,你可以在const char *it想要做一个每日计划的表格拿去打印,实在用不好 e x c e l excel excel,就用了C语言做了个打印表格的程序(下面有效果图).为了方便,使用了 p r i n t f printf printf重定向,实测 s t m 32 stm32 stm32里面用的重定向在 W i n d o w s Windows Windows里面不能用,要用以下方法:
FILE *fp = freopen("文件名","w",stdout); ...//中间的内容重定向到文件中 fclose(fp);
这是效果的图片:
这是源程序,你可以在
const char *item[]
数组里面添加其他项目,该项目所在字符串打印后的长度(汉字长度2,ASCII码长度1,这样计算打印后的长度)要小于max_length_in_item
,然后重新编译运行.注意文件使用 G B K GBK GBK编码,且字体使用等宽的字体,如 c o n s o l a consola consola#include <stdio.h> #include <string.h> #include <unistd.h> #include <assert.h> const char *item[] = {"项目","运动", "背单词", "写leetcode", "实操", "看书/视频", "22:30 之前睡觉", "不玩手机"}; const int max_length_in_item=14; const char*filepath="./table.txt"; void print_item(const char *s, int target_length) {//打印一个项目,其长度为target_length int len = strlen(s); printf("%s",s); for (int i = len; i < target_length; i++) { printf(" "); } } int is31Day(const int month) {//判断一个月是不是31天 assert(month<13); const int month_with_31days[] = {1, 3, 5, 7, 8, 10, 12}; // printf("%d\n",sizeof(month_with_31days)); for (int i = 0; i < sizeof(month_with_31days) / sizeof(int); i++) { if (month == month_with_31days[i]) return 1; } return 0; } /* ------- | 1| 2| 3| 4| 5| */ void print_level(int count,int month) {//打印分割线 //长度为count char s[(count-1)/2-4+1];//(len+4)*2+1=count for (int i = 0; i < sizeof(s)-1; i++) { s[i] = '_'; } s[sizeof(s)-1] = '\0'; printf("%s", s); printf("这是%2d月",month); printf("%s\n", s); } void print_space(int count) {//打印用于填空的空格 for (int i = 0; i < count; i++) { printf("|__"); } printf("|\n"); } int main() { //windows里面的重定向 FILE *fp = freopen(filepath,"w",stdout); struct date { int month; int total_day; } mydate[12]; for (int i = 0; i < sizeof(mydate) / sizeof(struct date); i++) { mydate[i].month = i + 1; mydate[i].total_day = is31Day(i + 1) ? 31 : 30; } int today = 1, tomonth = 10; for (int month = tomonth; month <= 12; month++) { print_level(max_length_in_item+16*3+2,month); print_item(item[0],max_length_in_item); for (int day = today; day <= mydate[month - 1].total_day; day++) { printf("|%2d", day); if (day == (mydate[month - 1].total_day + 2) / 2) { printf("|\n"); for(int i=1;i<sizeof(item)/sizeof(char*);i++){ print_item(item[i],max_length_in_item); print_space(16); } print_item(item[0],max_length_in_item); } } printf("|\n"); for(int i=1;i<sizeof(item)/sizeof(char*);i++){ print_item(item[i],max_length_in_item); print_space(16); } } fclose(fp); return 0; }
其实一个更简单的方法是使用 m a r k d o w n markdown markdown文档,在里面使用表格,之后用 p a n d o c pandoc pandoc转换为 w o r d word word文档,之后打印
-
Windows cmd命令行输入输出重定向问题
2020-09-17 17:19:23主要介绍了Windows cmd命令行输入输出重定向问题,需要的朋友可以参考下 -
显示Windows命令提示符输出并将其重定向到文件
2021-05-19 19:16:30我怎么能写一个命令显示输出和输出重定向到在Windows命令提示符下一个文件,类似于tee上的Unix命令?#1楼如果您希望在屏幕上真正看到某些内容,即使将批处理文件重定向到文件,也可以使用以下帮...如何在Windows命令提示符下运行命令行应用程序,并同时显示输出和重定向到文件?
例如,如果我运行命令dir > test.txt ,这会将输出重定向到一个名为test.txt的文件,而不显示结果。
我怎么能写一个命令显示输出和输出重定向到在Windows命令提示符下一个文件,类似于tee上的Unix命令?
#1楼
如果您希望在屏幕上真正看到某些内容,即使将批处理文件重定向到文件,也可以使用以下帮助。 如果将设备CON重定向到文件,也可以使用
例:
ECHO first line on normal stdout. maybe redirected
ECHO second line on normal stdout again. maybe redirected
ECHO third line is to ask the user. not redirected >CON
ECHO fourth line on normal stdout again. maybe redirected
#2楼
我能够找到将输出重定向到文件然后重定向到控制台的解决方案/解决方法:
dir > a.txt | type a.txt
其中dir是需要重定向输出的命令, a.txt是存储输出的文件。
#3楼
不需要cygwin。
我确实遇到并报告了一些问题。
另外,您可能会检查unxutils,因为它包含tee(不需要cygwin),但是请注意,此处输出的EOL与UNIX类似。
最后但并非最不重要的一点是,如果您具有PowerShell,则可以尝试使用Tee-Object。 在PowerShell控制台中键入get-help tee-object以获得更多信息。
#4楼
这是实时的,但也很丑陋,性能很慢。 没有经过良好测试:
@echo off
cls
SET MYCOMMAND=dir /B
ECHO File called 'test.bat' > out.txt
for /f "usebackq delims=" %%I in (`%MYCOMMAND%`) do (
ECHO %%I
ECHO %%I >> out.txt
)
pause
#5楼
另一种方法是在程序中将stdout发送到stderr:
在Java中:
System.setOut(new PrintStream(new TeeOutputStream(System.out, System.err)));
然后,在您的dos批处理文件中: java program > log.txt
stdout将转到日志文件,并且stderr(相同数据)将显示在控制台上。
-
基于C语言的Windows重定向输入、输出
2022-01-19 20:10:55在C primer plus中的8.4提及到重定向,但是对于windows/dos系统中的重定向输入、输出的具体操作并不清晰,下面以第八章中的echo_eof.exe和showchar2.exe为例具体演示重定向的使用 注:1.运行环境:Windows中的cmd ...在C primer plus中的8.4提及到重定向,但是对于windows/dos系统中的重定向输入、输出的具体操作描述的并不清晰,下面以第八章中的echo_eof.exe和showchar2.exe为例具体演示重定向的使用
注:1.运行环境:Windows中的cmd
2.程序和数据文件必须在同一子目录下,且此时的cmd正处于该子目录下
一、
两个程序的源代码如下
1.echo_eof
/* echo_eof.c -- repeats input to end of file */ #include <stdio.h> int main(void) { int ch; while ((ch = getchar()) != EOF) putchar(ch); return 0; }
2.showchar2
/* showchar2.c -- prints characters in rows and columns */ #include <stdio.h> void display(char cr, int lines, int width); int main(void) { int ch; /* character to be printed */ int rows, cols; /* number of rows and columns */ printf("Enter a character and two integers:\n"); while ((ch = getchar()) != '\n') { if (scanf("%d %d",&rows, &cols) != 2) break; display(ch, rows, cols); while (getchar() != '\n') continue; printf("Enter another character and two integers;\n"); printf("Enter a newline to quit.\n"); } printf("Bye.\n"); return 0; } void display(char cr, int lines, int width) { int row, col; for (row = 1; row <= lines; row++) { for (col = 1; col <= width; col++) putchar(cr); putchar('\n'); /* end line and start a new one */ } }
二、重定向输入
1.数据文件
2.cmd中
数据文件中的内容显示到屏幕上
三、重定向输出
1.cmd中
自动新建了一个名为a.txt的文件,所有键盘输入到屏幕的内容都保存在a.txt中(输入最后要换行然后以ctrl+z结尾)
2.新生成的a.txt
四、组合重定向
1.cmd中
a.txt作为输入,echo_eof是中间媒介,得到的是b.txt输出
类似于
a.txt是自变量x,b.txt是因变量f(x),echo_eof则是长长的函数式子
2.新生成的b.txt
由于echo_eof代码只是把字母重复了一遍,所以内容不变
3.showchar2.exe中组合重定向的输入内容
4.cmd
5.组合重定向输出的d.txt
注:在组合重定向中,键盘输入被c.txt中的内容替换掉,若程序为循环程序,则须在c.txt中适当位置加入可程序结束的内容,否则cmd会一直处于等待状态
-
printf输出重定向到文件中
2017-10-06 15:17:25#define _WIN32_WINNT 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。 #endif #include <Windows.h> #include #include #include #include #include void GetSpecialPath(char *filename,... -
Win32标准输出重定向VS2015通用实现
2018-09-28 16:54:38可利用本方法在没有源码的情况下,将console程序的标准输出重定向到自己的程序中来。网上很多关于此类方法的描述,经实验大多在标准Unix和Linux上可用,有个别在VC2010通过匿名管道方式可用,但在VS2015的CRT运行时... -
输出重定向实现日志记录
2021-06-11 16:25:29本文的主要内容是:介绍使用aop的方式,对输出重定向,然后记录日志。 -
将windows命令行的结果保存到文件 (cmd命令的重定向输出)
2017-04-29 08:20:30例如:要将ip查询结果记录到文件中 查询ip设置:ipconfig/all 重定向操作符:> 要重定向到的文件:ip.txt C:/>ipconfig/all>ip.txt OK,网络配置被保存下来了. -
详解python的几种标准输出重定向方式
2021-01-20 05:04:01一. 背景 在Python中,文件对象sys.stdin、sys.stdout和sys.stderr...因此,IDLE将标准输出句柄替换为特殊的PseudoOutputFile对象,以便脚本输出重定向到IDLE终端窗口(Shell)。这可能导致一些奇怪的问题,例如: Py -
bat 批处理技巧:执行命令输出到变量及重定向到多个文件
2022-03-25 17:40:07bat 批处理技巧:执行命令输出到变量及重定向到多个文件 使用批处理很多时候会遇到需要执行其他程序,并将结果临时保存,再做处理的情况,比如还需要输出到多个地方。 -
Windows 命令行输入输出重定向问题
2020-01-08 16:31:06重定向符号主要有:>,>>...nul”的意思是既屏蔽正常的输出又屏蔽错误的输出,那么我们马上就知道了这里的1表示正常输出(即所谓的“标准输出”--stdout),2表示错误输出(即所谓的“... -
windows环境下的输入输出重定向
2018-11-08 23:37:51(2)重定向意思是:用文件代替键盘作为c程序的输入,用文件代替显示屏作为c程序的输出。 操作步骤:(1)编译源程序生成可执行文件(.exe文件) (2)"win+r" 打开dos命令行,"cd 可执行件的路径... -
桌面程序开发 — Log 重定向(输出到文件)
2020-10-10 10:39:31桌面程序开发 — Log 重定向(输出到文件) 简述:在开发过程中,有时需要将开发程序的debug 信息写入文件中,以便调试查看。但是如果直接在文件中添加写文件的操作又比较繁琐,频繁的写文件也增加的程序的压力。下面... -
Windows下实现控制台程序输出重定向到其他进程(iperf为例)
2019-09-19 18:58:32本篇文章主要介绍windows下如何将一个应用程序的输出重定向到另一个进程中,主要原理是通过匿名管道实现进程信息的重定向。 工作中有时会遇到这样一个场景,应用程序A.exe需要调用应用程序B.exe进行一些辅助性操作... -
C primer plus 的输入重定向、输出重定向在Windows 10的实现
2021-08-19 16:27:42一、重定向运算符 重定向运算符连接一个可执行程序(必须是编译过... 重定向运算符不能读取多个文件的输入,也不可以定向输出多个文件 文件名与运算符之间的空格非必须 重定向运算符: 输入:< 输出:> ... -
将Windows cmd标准输出和stderr重定向到单个文件
2021-05-25 08:45:51我正在尝试将DOS命令的所有输出(stdout + stderr)重定向到单个文件:C:\>dir 1> a.txt 2> a.txtThe process cannot access the file because it is being used by another process.是可能的,还是应该... -
Windows下cmd标准输入输出重定向
2019-05-27 10:56:00Command 功能 command > filename 把标准输出重定向到一个文件中 command >> filename 把标准输出重定向到一个文件中(追加) command 1 > fielnam... -
由单字符I/O扩展到C语言之重定向和文件
2021-07-24 23:15:32完全缓冲输入指的是当缓冲区被填满时才刷新缓冲区==(内容被发送到目的地《比如说C程序》),通常出现在文件输入中。 行缓冲I/O指的是在出现换行符时刷新缓冲区。键盘输入通常是行缓冲输入,所以在按下Enter -
如何将终端输出的信息重定向写入文件中呢?
2021-05-13 14:05:04在Linux,macOS,* BSD或类似Unix的操作系统上使用BASH / KSH / CSH / TCSH时,如何将终端输出保存到文件中? >标准输出 2>错误输出 <标准输入 如何将终端输出保存到文件 使用>标准输出符号将... -
CreateProcess 输入输出重定向到文件
2016-12-17 23:59:54运行Demo.java,传a、b值,把输出来的计算结果写到TXT文件中。 Demo.java: import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner in = new Scanner(System.... -
重定向adb logcat输出到文件
2019-07-22 15:26:37文章目录重定向adb logcat输出到文件在terminal中查看adb logcat输出:筛选特定项目相关的日志重定向logcat输出到文件注意事项 重定向adb logcat输出到文件 在使用Android Studio开发时,经常会遇到logcat的日志无法... -
linux_powershell:文件输入输出重定向/shell写入多行文本到文件中(tee/>>)/cat 操作文件/将字符串传递给...
2022-03-22 12:58:25linux_文件输入输出重定向/shell写入多行文本到文件中/cat 操作文件 references Unix / Linux - Shell Input/Output Redirections (tutorialspoint.com) sheet Redirection Commands Following is a complete list... -
重定向到文件时的缓冲问题
2020-04-09 09:57:44在定位一个问题的时候发现“用命令行重定向程序的输出log到一个文件”的时候,文件里没有任何打印。 之前在定位同一个程序的“非预期退出”问题时明明有打印的。 调查后发现这是文件缓冲带来的影响。这种问题在以前... -
windows命令行重定向的一些操作
2021-04-06 23:25:142.windows打开cmd 首先是exe文件: #include<stdio.h> int main(void){ int ch; while((ch=getchar())!=EOF) putchar(ch); return 0; } 非常简单的程序。 在之后打开cmd 找到文件所在位置,一般左边... -
串口输出重定向
2019-05-14 20:38:08在调试嵌入式设备的时候需要接串口,通过串口将打印输出到显示终端。但是很多时候接串口是设备是一件很麻烦的事情,比如,串口板,串口线等。 分析 内核的打印不能重定向过来,但是应用层打印可以重定向打印过来... -
C++ 可执行文件输入输出重定向
2021-05-26 12:56:48’)和输出重定向符(’>’),来从特定的文件中读取输入,输出到特定的地方(可以是文件,或者打印机啥的) 举个例子: 现有可执行文件tmp.exe,保存输入数据的文件input.txt,和保存输出数据的文件output.txt,...