解决 命令行程序 中文英文不对齐的情况

问题描述

我用java写了个命令行的工具程序,在程序中我会输出一些提示语句,这些输出语句中有中文,但是奇怪的是中文老是对不齐,强迫症的我看起来很不舒服.
这里有一张图片

原因

之所以加入空格后中文无法对齐,是因为你用的是半角空格,全角空格的宽度小于一个中文的宽度.又大于中文宽度的一半,所以使用半角空格永远也无法让中文对齐。

使用全角空格来对齐中文

换成全角的空格就可以,全角的空格占用的宽度和和一个中文占的宽度一样,所以加上全角空格后就可以让中文对齐!

如何输入全角空格

这个就要看具体的输入法了,我用的是搜狗输入法,下面介绍搜狗输入法如何切换全角半角:

  1. 先切换到中文状态,然后随便输入点拼音,这时候弹出工具条,
  2. 在弹出的工具条上右键,
  3. 然后点击上面的全半角切换即可:

这里有一张图片

效果

然后输入全角空格就行了,这样中文就对齐了:
这里有一张图片
这样打包成可执行程序,在cmd中运行也是对齐的:
这里有一张图片

ProcessBuilder API整理

内部类

方法 描述
static class ProcessBuilder.Redirect 表示子进程的输入源或者输出的目的

构造器

方法 描述
ProcessBuilder​(String... command) 使用操作系统程序 和参数创建一个进程生成器
ProcessBuilder​(List<String> command) 使用操作系统程序和参数创建一个进程生成器

方法

取出或设置程序和参数的方法

方法 描述
List<String> command() 返回操作系统程序和该程序的参数。
ProcessBuilder command(List<String> command) 设置这个进程生成器的 操作系统程序 和 参数。
ProcessBuilder command(String... command) 置这个进程生成器的 操作系统程序 和 参数。

取出或设置工作目录的方法

方法 描述
File directory() 返回此进程生成器的工作目录。
ProcessBuilder directory(File directory) 设置进程生成器的工作目录。

设置标准IO的方法

方法 描述
ProcessBuilder redirectOutput(File file) 使用文件作为标准输出
ProcessBuilder redirectOutput(ProcessBuilder.Redirect destination) 使用Redirect对象作为标准输出
ProcessBuilder redirectInput(File file) 重定向标准输入到文件中
ProcessBuilder redirectInput(ProcessBuilder.Redirect source) 重定向标准输入
ProcessBuilder redirectError(File file) 将标出错误输出设置到文件中
ProcessBuilder redirectError(ProcessBuilder.Redirect destination) 设置标准错误输出的目标

取出标准IO的方法

方法 描述
ProcessBuilder.Redirect redirectInput() 返回表示标准输入的Redirect实例
ProcessBuilder.Redirect redirectError() 返回表示标准错误输出的Redirect实例
ProcessBuilder.Redirect redirectOutput() 返回表示标出输出的目标的Redirect实例

合并标准输出相关的方法

方法 描述
ProcessBuilder inheritIO() 子进程和父进程使用相同的标准输入,标准输出,标准错误输出
ProcessBuilder redirectErrorStream(boolean redirectErrorStream) 设置redirectErrorStream属性
boolean redirectErrorStream() 判断进程生成器是否合并了标准错误输出和标准输出。

其他方法

方法 描述
Map<String,String> environment() 返回保存进程生成器的环境变量的Map集合

启动进程方法

方法 描述
Process start() 使用进程生成器中设置的属性启动新一个新的进程

Process类API整理

杀死子进程

方法 描述
abstract void destroy() 杀死子流程
Process destroyForcibly() 杀死子流程

获取子进程的IO

方法 描述
abstract InputStream getErrorStream() 返回连接到子进程的错误输出的输入流
abstract InputStream getInputStream() 返回连接到子进程的正常输出的输入流.
abstract OutputStream getOutputStream() 返回连接到子进程的正常输入的输出流

其他方法

方法 描述
abstract int exitValue() 返回子进程的退出值
boolean isAlive() 测试子流程是否有效

等待子进程

方法 描述
abstract int waitFor() 使当前线程等待Process对象表示的进程终止
boolean waitFor(long timeout, TimeUnit unit) 使当前线程在必要时等待,直到此Process对象代表的子进程终止或经过指定的等待时间为止。

实例

问题描述

最近我在VSCode中运行Java代码,但是奇怪的的是中文输出的是乱码.

解决方案

可能是编码的问题

一般乱码时因为java文件的编码和终端的编码不一样导致的.VScode中的内置终端默认调用的是PowerShell,所以java文件的编码和PowerShell的默认编码一样即可,建议修改成UTF-8编码.

  1. 修改java文件的编码为UTF-8
  2. 修改终端(PowerShell)的编码为UTF-8

一般来说到这里就没有乱码了,但是奇怪的是,使用System.out.println()方法输出的时候换行符是乱码的,好奇怪啊,还得再猜一猜是什么原因。

可能是VScode中的java环境版本太老

如果修改编码后,还是出现乱码,那么可能是java环境太老了,更新java环境试试:

  1. 卸载掉Java Extension Pack,
  2. 然后重启VScode,
  3. 再重新安装Java Extension Pack

可能是PowerShell版本太老

如果更新了java环境之后还是出现问题,那可能是PowerShell的问题了,接下来重新安装PowerShell试试.

  1. 打开Microsoft store
  2. 点击搜索款,输入PowerShell,安装PowerShell即可.
  3. 也可以安装Windows Terminal,Windows Terminal好像评价比较高.

我试到这一步乱码解决了,但是更新java环境后我没有测试乱码有没有解决,如果更新java环境后乱码解决了,也就不用更新PowerShell了(这是废话)。

schtask命令文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
schtasks /parameter [arguments] 

描述:
允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任务。

参数列表:
/create 创建新计划任务。

/delete 删除计划任务。

/query 显示所有计划任务。

/change 更改计划任务属性。

/run 按需运行计划任务。

/end 中止当前正在运行的计划任务。

/showsid 显示与计划的任务名称相应的安全标识符。

/? 显示此帮助消息。

examples:
schtasks
schtasks /?
schtasks /run /?
schtasks /end /?
schtasks /create /?
schtasks /delete /?
schtasks /query /?
schtasks /change /?
schtasks /showsid /?

创建新任务计划

schtasks /create文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193

schtasks /create [/s system [/u username [/p [password]]]]
[/ru username [/rp password]] /sc schedule [/mo modifier] [/d day]
[/m months] [/i idletime] /tn taskname /tr taskrun [/st starttime]
[/ri interval] [ {/et endtime | /du duration} [/k] [/xml xmlfile] [/v1]]
[/sd startdate] [/ed enddate] [/it | /np] [/z] [/f] [/hresult] [/?]

描述:
允许管理员在本地或远程系统上创建计划任务。

参数列表:
/s system 指定要连接到的远程系统。如果省略这个
系统参数,默认是本地系统。

/u username 指定应在其中执行 schtasks.exe 的用户上下文。

/p [password] 指定给定用户上下文的密码。如果省略则
提示输入。

/ru username 指定任务在其下运行的“运行方式”用户帐户(用户上下文)。
对于系统帐户,有效 值是 ""、"nt authority\system" 或 "system"。
对于 v2 任务,"nt authority\localservice"和"nt authority\networkservice"以及常见的 sid 对这三个也都可用。

/rp [password] 指定“运行方式”用户的密码。要提示输
入密码,值必须是 "*" 或无。系统帐户会忽略该
密码。必须和 /ru 或 /xml 开关一起使用。

/ru/xml /sc schedule 指定计划频率。
有效计划任务: minute、 hourly、daily、weekly、
monthly, once, onstart, onlogon, onidle, onevent.

/mo modifier 改进计划类型以允许更好地控制计划重复周期。有效值列于下面“修改者”部分中。

/d days 指定该周内运行任务的日期。有效值:
mon、tue、wed、thu、fri、sat、sun
和对 monthly 计划的 1 - 31
(某月中的日期)。通配符“*”指定所有日期。

/m months 指定一年内的某月。默认是该月的第一天。
有效值: jan、feb、mar、apr、may、jun、
jul、 aug、sep、oct、nov 和 dec。通配符
“*” 指定所有的月。

/i idletime 指定运行一个已计划的 onidle 任务之前
要等待的空闲时间。
有效值范围: 1999 分钟。

/tn taskname 以路径\名称形式指定
对此计划任务进行唯一标识的字符串。

/tr taskrun 指定在这个计划时间运行的程序的路径
和文件名。
例如: c:\windows\system32\calc.exe

/st starttime 指定运行任务的开始时间。
时间格式为 hh:mm (24 小时时间),例如 14:30 表示
2:30 pm。如果未指定 /st,则默认值为
当前时间。/sc once 必需有此选项。

/ri interval 用分钟指定重复间隔。这不适用于
计划类型: minute、hourly、
onstart, onlogon, onidle, onevent.
有效范围: 1 - 599940 分钟。
如果已指定 /et 或 /du,则其默认值为
10 分钟。

/et endtime 指定运行任务的结束时间。
时间格式为 hh:mm (24 小时时间),例如,14:50 表示 2:50 pm。
这不适用于计划类型: onstart、
onlogon, onidle, onevent.

/du duration 指定运行任务的持续时间。
时间格式为 hh:mm。这不适用于 /et 和
计划类型: onstart, onlogon, onidle, onevent.
对于 /v1 任务,如果已指定 /ri,则持续时间默认值为
1 小时。

/k 在结束时间或持续时间终止任务。
这不适用于计划类型: onstart、
onlogon, onidle, onevent.
必须指定 /et 或 /du。

/sd startdate 指定运行任务的第一个日期。
格式为 yyyy/mm/dd。默认值为
当前日期。这不适用于计划类型: once、
onstart, onlogon, onidle, onevent.

/ed enddate 指定此任务运行的最后一天的日期。
格式是 yyyy/mm/dd。这不适用于计划类型:
once、onstart、onlogon、onidle。

/ec channelname 为 onevent 触发器指定事件通道。

/it 仅有在 /ru 用户当前已登录且
作业正在运行时才可以交互式运行任务。
此任务只有在用户已登录的情况下才运行。

/np 不储存任何密码。任务以给定用户的身份
非交互的方式运行。只有本地资源可用。

/z 标记在最终运行完任务后删除任务。

/xml xmlfile 从文件的指定任务 xml 中创建任务。
可以组合使用 /ru 和 /rp 开关,或者在任务 xml 已包含
主体时单独使用 /rp。

/v1 创建 vista 以前的平台可以看见的任务。
不兼容 /xml。

/f 如果指定的任务已经存在,则强制创建
任务并抑制警告。

/rl level 为作业设置运行级别。有效值为
limited 和 highest。默认值为 limited。

/delay delaytime 指定触发触发器后延迟任务运行的
等待时间。时间格式为
mmmm:ss。此选项仅对计划类型
onstart, onlogon, onevent.

/hresult 为获得更出色的故障诊断能力,处理退出代码
将采用 hresult 格式。

/? 显示此帮助消息。

修改者: 按计划类型的 /mo 开关的有效值:
minute: 1 到 1439 分钟。
hourly: 1 - 23 小时。
daily: 1 到 365 天。
weekly: 1 到 52 周。
once: 无修改者。
onstart: 无修改者。
onlogon: 无修改者。
onidle: 无修改者。
monthly: 1 到 12,或
first, second, third, fourth, last, lastday

onevent: xpath 事件查询字符串。
示例:
==> 在远程机器 "abc" 上创建计划任务 "doc",
该机器每小时在 "runasuser" 用户下运行 notepad.exe

schtasks /create /s abc /u user /p password /ru runasuser
/rp runaspassword /sc hourly /tn doc /tr notepad

==> 在远程机器 "abc" 上创建计划任务 "accountant",
在指定的开始日期和结束日期之间的开始时间和结束时间内,
每隔五分钟运行 calc.exe

schtasks /create /s abc /u domain\user /p password /sc minute
/mo 5 /tn accountant /tr calc.exe /st 12:00 /et 14:00
/sd 06/06/2006 /ed 06/06/2006 /ru runasuser /rp userpassword

==> 创建计划任务 "gametime",在每月的第一个星期天
运行“空当接龙”。

schtasks /create /sc monthly /mo first /d sun /tn gametime
/tr c:\windows\system32\freecell

==> 在远程机器 "abc" 创建计划任务 "report",
每个星期运行 notepad.exe

schtasks /create /s abc /u user /p password /ru runasuser
/rp runaspassword /sc weekly /tn report /tr notepad.exe

==> 在远程机器 "abc" 创建计划任务 "logtracker",
每隔五分钟从指定的开始时间到无结束时间,
运行 notepad.exe。将提示输入 /rp
密码。

schtasks /create /s abc /u domain\user /p password /sc minute
/mo 5 /tn logtracker
/tr c:\windows\system32\notepad.exe /st 18:30
/ru runasuser /rp

==> 创建计划任务 "gaming",每天从 12:00 点开始到
14:00 点自动结束,运行 freecell.exe

schtasks /create /sc daily /tn gaming /tr c:\freecell /st 12:00
/et 14:00 /k
==> 创建计划任务“eventlog”以开始运行 wevtvwr.msc
只要在“系统”通道中发布事件 101

schtasks /create /tn eventlog /tr wevtvwr.msc /sc onevent
/ec system /mo *[system/eventid=101]
==> 文件路径中可以加入空格,但需要加上两组引号,
一组引号用于 cmd.exe,另一组用于 schtasks.exe。用于 cmd
的外部引号必须是一对双引号;内部引号可以是一对单引号或
一对转义双引号:
schtasks /create
/tr "'c:\program files\internet explorer\iexplorer.exe'
\"c:\log data\today.xml\"" ...

定时关机

先用计算器测试

在00:53时启动计算器

1
schtasks /create /tn shutdown_test /st 00:53 /sc once /tr "c:\windows\system32\calc.exe"

查询任务计划

语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

schtasks /query [/s system [/u username [/p [password]]]]
[/fo format | /xml [xml_type]] [/nh] [/v]
[/tn taskname] [/hresult] [/?]

描述:
允许管理员显示本地或远程系统上的计划任务。

参数列表:
/s system 指定要连接到的远程系统。

/u username 指定 schtasks.exe 要执行的用户上下文。

/p [password] 指定给定的用户上下文密码。如果省略则
提示输入。

/fo format 为输出指定格式。有效值: table、list、csv。

/nh 指定在输出中不显示列标题。
只对 table 格式有效。
仅适用于 table 和 csv 格式。

/v 显示详细任务输出。

/tn taskname 指定要检索其信息的任务路径\名称,
否则会检索所有任务的信息。

/xml [xml_type] 以 xml 格式显示任务定义。

如果 xml_type 为 one,则输出为一个有效 xml 文件。

如果 xml_type 不存在,则输出将为

所有 xml 任务定义的串联。

/hresult 为获得更出色的故障诊断能力,处理退出代码
将采用 hresult 格式。

/? 显示此帮助消息。

示例:
schtasks /query
schtasks /query /?
schtasks /query /s system /u user /p password
schtasks /query /fo list /v /s system /u user /p password
schtasks /query /fo table /nh /v

查询该任务:

1
SCHTASKS /Query /TN shutdown_test

显示效果:

1
2
3
4
5
C:\Users\lan>SCHTASKS /Query /TN shutdown_test
文件夹: \
任务名 下次运行时间 模式
======================================== ====================== ===============
shutdown_test N/A 就绪

删除任务计划

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

schtasks /delete [/s system [/u username [/p [password]]]]
/tn taskname [/f] [/hresult] [/?]

描述:
删除一个或多个计划任务。

参数列表:
/s system 指定要连接到的远程系统。

/u username 指定 schtasks.exe 要执行的用户上下文。

/p [password] 指定给定用户上下文密码。如果省略则
提示输入。

/tn taskname 指定要删除的任务的路径\名称。
可以使用通配符 "*" 来删除所有任务。

/f 强制删除该任务,而且
如果指定的任务当前正在运行,则抑制警告。

/hresult 为获得更好的故障诊断能力,处理退出代码
将采用 hresult 格式。

/? 显示此帮助消息。

示例:
schtasks /delete /tn * /f
schtasks /delete /tn "\备份\备份和还原"
schtasks /delete /s system /u user /p password /tn "\备份\启动还原"
schtasks /delete /s system /u user /p password /tn "\备份\启动备份" /f

删除上面创建的任务

1
schtasks /delete /tn  taskname shutdown_test

运行结果:

1
2
3
4
E:\dev2\idea_workspace\CodeGenerator>schtasks /delete /tn shutdown_test
警告: 确实要删除任务 "shutdown_test" 吗 (Y/N )? y
成功: 计划的任务 "shutdown_test" 被成功删除。

UML类图

UML类图关系

UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

关系的强弱

各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

2.1.泛化

【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。

符号

箭头:空心三角形
箭身:实线

代码体现

java中继承通过extends关键字来定义.

实例

例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
这里有一张图片

2.2.实现

【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。

符号

箭头:空心三角形
箭身:虚线

代码体现

java实现通过implement关键字来定义。

实例

这里有一张图片

2.3.关联

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师可以知道它的学生,丈夫可以知道妻子。关联可以是双向的,也可以是单向的。

符号

箭头:

  • 双向的关联可以有两个箭头或者没有箭头
  • 单向的关联有一个箭头。
  • 箭头指向被关联的类

箭身:实线

代码体现

使用关联类作为当前类的成员变量实现。

实例

这里有一张图片

2.4. 聚合关系

**聚合关系:是整体与部分的关系,且部分可以离开整体而单独存在**。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

符号

聚合关系的箭头有两个,一个是空心的菱形,一个是普通箭头。菱形的一端指向整体,普通箭头指向部分
箭身:和关联关系一样是实线

代码体现

通过定义成员变量实现。

实例

这里有一张图片

2.5.组合关系

组合关系:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。
组合关系是关联关系的一种
是比聚合关系还要强的关系.

符号

  • 箭头及指向
    • 实心菱形指向整体
    • 普通箭头指向部分
  • 箭身:实线

代码体现

通过定义成员变量实现。

实例

这里有一张图片

2.6.依赖

依赖关系是指一个类的元素使用了另一个类,依赖关系使用带箭头的虚线表示,其中箭头指向被依赖的类。
这里有一张图片

参考资料

https://zhuanlan.zhihu.com/p/44518805

timeout命令

帮助文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
timeout [/t] timeout [/nobreak] 

描述:
这个工具接受超时参数,等候一段指定的时间(秒)或等按任意键。它还接受
一个参数,忽视按键。

参数列表:
/t timeout 指定等候的秒数。有效范围从 -199999 秒。
/nobreak 忽略按键并等待指定的时间。
/? 显示此帮助消息。

注意: 超时值 -1 表示无限期地等待按键。

示例:
timeout /?
timeout /t 10
timeout /t 300 /nobreak
timeout /t -1

应用

这个命令可以使用&&连接符与其他命令串联到一起,从而实现定时执行后面命令的功能。

30秒后休眠电脑

1
timeout /t 30 /nobreak && shutdown -h

定时休眠批处理程序

下面根据用户输入的秒数来休眠电脑:

1
2
3
4
5
@echo off
set /P waitTime=输入要休眠的秒数:
timeout /t %waitTime% /nobreak && shutdown -h
REM timeout /t %waitTime% /nobreak && echo 休眠电脑啦!
REM pause

cmd shutdown命令

帮助文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
用法: shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f]
[/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]

没有参数 显示帮助。这与键入 /? 是一样的。
/? 显示帮助。这与不键入任何选项是一样的。
/i 显示图形用户界面(GUI)。
这必须是第一个选项。
/l 注销。这不能与 /m 或 /d 选项一起使用。
/s 关闭计算机。
/sg 关闭计算机。在下一次启动时,
重启任何注册的应用程序。
/r 完全关闭并重启计算机。
/g 完全关闭并重新启动计算机。在重新启动系统后,
重启任何注册的应用程序。
/a 中止系统关闭。
这只能在超时期间使用。
与 /fw 结合使用,以清除任何未完成的至固件的引导。
/p 关闭本地计算机,没有超时或警告。
可以与 /d 和 /f 选项一起使用。
/h 休眠本地计算机。
可以与 /f 选项一起使用。
/hybrid 执行计算机关闭并进行准备以快速启动。
必须与 /s 选项一起使用。
/fw 与关闭选项结合使用,使下次启动转到
固件用户界面。
/e 记录计算机意外关闭的原因。
/o 转到高级启动选项菜单并重新启动计算机。
必须与 /r 选项一起使用。
/m \\computer 指定目标计算机。
/t xxx 将关闭前的超时时间设置为 xxx 秒。
有效范围是 0-315360000 (10 年),默认值为 30
如果超时时间大于 0,则默示为
/f 参数。
/c "comment" 有关重新启动或关闭的原因的注释。
最多允许 512 个字符。
/f 强制关闭正在运行的应用程序而不事先警告用户。
如果为 /t 参数指定大于 0 的值,
则默示为 /f 参数。
/d [p|u:]xx:yy 提供重新启动或关闭的原因。
p 指示重启或关闭是计划内的。
u 指示原因是用户定义的。
如果未指定 p 也未指定 u,则重新启动或关闭
是计划外的。
xx 是主要原因编号(小于 256 的正整数)。
yy 是次要原因编号(小于 65536 的正整数)。

此计算机上的原因:
(E = 预期 U = 意外 P = 计划内,C = 自定义)
类别 主要 次要 标题

U 0 0 其他(计划外)
E 0 0 其他(计划外)
E P 0 0 其他(计划内)
U 0 5 其他故障: 系统没有反应
E 1 1 硬件: 维护(计划外)
E P 1 1 硬件: 维护(计划内)
E 1 2 硬件: 安装(计划外)
E P 1 2 硬件: 安装(计划内)
E 2 2 操作系统: 恢复(计划外)
E P 2 2 操作系统: 恢复(计划内)
P 2 3 操作系统: 升级(计划内)
E 2 4 操作系统: 重新配置(计划外)
E P 2 4 操作系统: 重新配置(计划内)
P 2 16 操作系统: Service Pack (计划内)
2 17 操作系统: 热修补(计划外)
P 2 17 操作系统: 热修补(计划内)
2 18 操作系统: 安全修补(计划外)
P 2 18 操作系统: 安全修补(计划内)
E 4 1 应用程序: 维护(计划外)
E P 4 1 应用程序: 维护(计划内)
E P 4 2 应用程序: 安装(计划内)
E 4 5 应用程序: 没有反应
E 4 6 应用程序: 不稳定
U 5 15 系统故障: 停止错误
U 5 19 安全问题(计划外)
E 5 19 安全问题(计划外)
E P 5 19 安全问题(计划内)
E 5 20 网络连接丢失(计划外)
U 6 11 电源故障: 电线被拔掉
U 6 12 电源故障: 环境
P 7 0 旧版 API 关机

shutdown /i

启动后的图形界面如下图所示,但是我看不懂该怎么操作。知道就行。

image-20220426132253567

shutdown /h

这个命令可以让当前计算机立即休眠。
需要注意的是,shutdown /h -t 60这样的命令是错误的。

应用

定时关机

命令 描述
shutdown -s -t 0 立即关机
shutdown -s -t 3600 3600秒后关机

在执行其他命令后休眠

可以使用&&符号把命令链接起来,例如:
A命令 && B命令的意思是先执行A命令,如果A命令执行成功则执行B命令
我有使用Hexo写博客,在睡觉之前我会发布博客,但是发布需要一定的时间,可以通过在发布命令后用&&连接上休眠命令shutdown /h,这样发布接收之后就会休眠电脑。
休眠的好处就是下次开机不用打开常用的软件.

命令 描述
hexo clean&&hexo g&&hexo d&&shutdown /h 发布Hexo博客后休眠电脑

在eclipse项目路径下启动cmd并解决乱码

在eclipse中启动cmd

依次点击菜单栏上的RunExternal tools,这样会弹出的External Tools Configurations对话框,在该对话框左边的Program上右键,选择New Configuration,然后:

  1. name:输入框中输入名字cmd
  2. Location:输入框中输入cmd.exe的路径:C:\Windows\System32\cmd.exe
  3. Working Directory输入框输入:${project_loc},这两个可以点击右边的Variables…按钮进行选择.这个${project_loc}的意思就是当前项目的路径.

选择cmd的编码为GBK

点击最右边的Common选项卡,然后在Encoding选择框里面选择GBK即可。

启动cmd.exe

Package Explorer中点击要打开的项目或者项目中的文件,这样${workspace_loc}${project_path}才能正确定位到项目路径.然后接着点击RunExternal Toolscmd即可在该项目下启动cmd.

操作过程

如下gif所示:
这是一个gif文件

win10中设置打开或保存文件时的默认查看方式

最近我在编辑器中保存文件到本地或者打开本地文件时,弹出的资源管理器中的查看方式突然变成的大图标:
这里有一张图片
大图标的查看方式,文件名不再一行上,找一个文件,还要浪费精力去看文件名称,浪费时间.
所以我平时喜欢用详细列表这种查看方式.详细列表查看方式文件名在一行上,方便找出文件.每次保存文件时我都要调整一次查看方式,这让我很烦躁.

分析

经过排查,发现是默认的查看方式被修改成大图标导致的,重新改回详细列表即可.下面是操作步骤.

Win10 设置资源管理器中的默认查看方式

先随意打开一个文件夹,切换到查看选项卡,可以发现现在的查看方式不是详细列表,而是大图标:
这里有一张图片
现在选择详细列表,然后点击右边的选项按钮:
这里有一张图片
在弹出的文件夹选项对话框中,点击查看选项卡,然后点击应用到文件夹按钮.
这里有一张图片
接着会弹出提示信息是否让这种美型的所有文件夹与此文件奕的视图设置匹配?,点击即可
这里有一张图片
这样在软件中打开文件时的视图就都按照详细列表方式进行排序了:
这里有一张图片