Windows10下实现输出到屏幕并且保存在文件中

日期

2018-06-23

问题描述

有时,我们需要将执行后的输出不仅要显示在屏幕上,还想要将其保存一份文件,以便日后查看。这里,主要利用Windows10下PowerShell实现该功能,Windows PowerShell可以认为是命令提示符(cmd)的一种扩展,所以一般能在命令提示符中执行的命令,一般也能够在PowerShell中执行,但是在命令提示符中很难将屏幕上输出的执行结果保留一份备份到文件中,但是在PowerShell中却很容易实现

简介

Tee-object

别名:tee

功能:(保存命令执行后的输出到文件或变量中,并且将输出送到下一个管道命令),简单来说的话,利用该命令,我们就可以将自己在PowerShell中执行的脚本的输出同时保存在某文件中了

用法:

将执行的命令 | tee 保存文件名

例子

1. 显示当前目录下的文件,并将显示的文件保存在文本文件dir.txt中

PowerShell中输入:

PS C:\Users\Administrator\Desktop> dir | tee dir.txt

PowerShell中输出:

    目录: C:\Users\Administrator\Desktop


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2017/12/21     11:50                fan blade
d-----        2018/6/14     20:11                tem
d-----        2018/1/26     20:02                tools
-a----        2018/6/20     19:57           1639 ansys.lnk
-a----         2018/1/5     13:41            974 bin.lnk
-a----        2018/6/23     11:48              0 dir.txt                 # 多出来了dir.txt, 该文件保存屏幕上输出的所有内容
-a----       2017/10/31     19:17           1184 Visual Studio 2012.lnk

dir.txt文件内容:

    目录: C:\Users\Administrator\Desktop


Mode                LastWriteTime         Length Name                                              
----                -------------         ------ ----                                              
d-----       2017/12/21     11:50                fan blade                                         
d-----        2018/6/14     20:11                tem                                               
d-----        2018/1/26     20:02                tools                                             
-a----        2018/6/20     19:57           1639 ansys.lnk                                         
-a----         2018/1/5     13:41            974 bin.lnk                                           
-a----        2018/6/23     11:48              0 dir.txt                                           
-a----       2017/10/31     19:17           1184 Visual Studio 2012.lnk

可以看出,该命令的确实现了将屏幕上的输出全部保存在文件中的功能。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 汇编代码实现输出 "Hello World!" 的方式有很多,这里是一个例子: ``` ; Windows 平台下的汇编代码,使用 Microsoft Macro Assembler (MASM) 汇编器 ; 在 Windows 平台下,使用 WriteConsoleA 函数输出字符串 .data hello_world db 'Hello World!', 0 ; 定义字符串变量 hello_world,以 0 结尾 .code mov eax, 4 ; 调用 WriteConsoleA 函数,eax=4 mov ebx, 1 ; 输出到控制台,ebx=1 mov ecx, offset hello_world ; 字符串地址,ecx=&hello_world mov edx, 13 ; 字符串长度,edx=13 int 0x80 ; 调用断,执行 Write consoleA 函数 ``` 上述代码将会输出 "Hello World!" 到控制台。 需要注意的是,需要使用 Microsoft Macro Assembler (MASM) 汇编器来汇编这段代码。这段代码的输出方式是通过调用 Windows API 函数 WriteConsoleA 实现的,这个函数是在 Windows 平台下常用的输出函数。 希望这段代码能帮到你! ### 回答2: 在Windows平台下使用汇编语言编写代码输出“Hello World!”可以使用汇编语言的系统调用来实现。以下是一种可能的汇编代码示例: ```assembly section .data message db 'Hello World!',0 message_len equ $-message section .text global _start _start: ; 使用系统调用号4(即write)将字符串输出到标准输出 mov eax, 4 mov ebx, 1 mov edx, message_len mov ecx, message int 0x80 ; 使用系统调用号1(即exit)退出程序 mov eax, 1 xor ebx, ebx int 0x80 ``` 该代码使用了Linux的系统调用接口,因此需要使用Linux下的汇编工具进行汇编和链接。在Windows平台上,可选择使用MinGW-w64等工具链。 可以将上述代码保存为一个文件,例如`hello.asm`,然后使用以下命令进行汇编和链接: ```bash $ nasm -f elf32 hello.asm -o hello.o $ ld -m elf_i386 hello.o -o hello ``` 最后,执行生成的可执行文件: ```bash $ ./hello ``` 执行结果将在命令行输出“Hello World!”。 ### 回答3: 在Windows平台下,可以使用汇编语言编写一个简单的代码来输出"Hello World!"字符串。以下是一个示例代码: ```assembly section .data hello db 'Hello World!', 0 section .text global _start _start: ; 将字符串"Hello World!"的地址存储到 EDX 寄存器 mov edx, hello ; 获取字符串长度 mov ecx, 13 ; 文件句柄 stdout 是 1 mov ebx, 1 ; 系统调用号 4 表示写入文件 mov eax, 4 ; 执行系统调用,将字符串输出屏幕 int 0x80 ; 退出程序 mov eax, 1 xor ebx, ebx int 0x80 ``` 以上代码使用x86汇编语言编写,在.data段定义了一个存储字符串的变量`hello`。在.text段,使用`mov`指令将字符串地址存储到寄存器EDX,然后使用`mov`指令将字符串长度存储到寄存器ECX,将文件句柄stdout存储到寄存器EBX。接下来,使用`mov`指令将系统调用号4存储到寄存器EAX,表示将要执行的系统调用是写入文件。最后通过`int 0x80`指令触发系统调用,将字符串输出屏幕上。然后使用`mov`指令将退出程序调用号1存储到寄存器EAX,并使用`int 0x80`指令退出程序。 需要注意的是,汇编语言是与特定的体系结构和操作系统相关的低级语言。所以上述代码仅适用于基于x86体系结构的Windows操作系统。在其他体系结构或操作系统上运行此代码可能会导致错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值