那些年,我玩过的Windows
发布于2023-06-18 18:38:52,更新于2024-09-08 21:19:14,标签:tips windows 文章会持续修订,转载请注明来源地址:https://meethigher.top/blog使用Windows也有几个年头了。从我大学开始学打字、电脑入门,一路都是使用的Windows系统。不过好梦幻啊,我大学的时候,才会打字,现在居然是个码农!
近几年,工作原因,简单记录一些Windows中的基操!
一些内容,还是2019年时整理的,懒得修改了,看个大致思路即可。授人以鱼不如授人以渔。
Windows设置自启动
查看/关闭自启动
可以使用第三方软件,比方说电脑管家。也可以通过任务管理器-启动来关闭。如果是win10以上的话,还可以在所有设置-应用-启动中进行关闭。
或者也可以通过Autoruns - Sysinternals | Microsoft Learn进行查看。
添加自启动
通过启动文件夹
win+R打开运行窗口,然后复制以下内容,回车
1 | %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup |
或者直接输入shell:startup
或者shell:common startup
,回车
当然也可以在自己的电脑里一层一层的按这个路径找。
将要自启动的软件的快捷方式放到该文件夹即可。
不支持需要管理员模式启动的程序
通过注册表启动
打开注册表编辑器:按下 Win + R
键,输入 regedit
并按下回车。
注册表中常见的自启动项位置:
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run:全局自启动程序(所有用户)。
- HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run:针对当前用户的自启动程序。
像我使用的chfs和qv2ray都是通过注册表设置自启动,可以通过切换是否自启动观察注册表的变化。
如果我们要设置自启动的话,可以通过命令来配置。
1 | # HKLM表示HKEY_LOCAL_MACHINE、HKCU表示HKEY_CURRENT_USER |
参数详解:
reg add
:命令行工具,用于在注册表中添加或修改注册表键和值。reg delete
:命令行工具,用于在注册表中删除注册表键和值。HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
:- HKLM:即 HKEY_LOCAL_MACHINE,这是 Windows 注册表中的一个根键,存储与计算机系统全局相关的信息。
- SOFTWARE\Microsoft\Windows\CurrentVersion\Run:这是一个特定的注册表路径,所有在这个
Run
键下的程序都会在 Windows 启动时自动运行。该路径用于全局自启动程序(适用于所有用户)。
/v "ERAZER G700"
:/v
指定了要设置的注册表值的名称。"ERAZER G700"
是你要添加的启动项的名称。这个名称可以是任意自定义的字符串,用于标识该启动项。
/t REG_SZ
:/t
表示指定该值的数据类型。REG_SZ
是一种数据类型,表示这是一个字符串值,通常用于存储路径等文本内容。
/d "D:\2greenTools\ERAZER G700\ERAZER G700.exe"
:/d
指定了该注册表项的值,即要执行的程序的路径。"D:\2greenTools\ERAZER G700\ERAZER G700.exe"
是自启动程序的实际路径,表示系统启动时会运行这个可执行文件。
/f
:/f
强制执行,不提示确认。如果注册表项已经存在,/f
会覆盖它,而不会弹出确认提示。
通过计划任务程序启动
以上做法只适合那些不需要管理员启动的程序。如果需要管理员权限启动的程序,就会每次启动都进行弹窗如下。
为了能够实现管理员模式自启动程序,就使用到了windows自带的任务计划程序。
优劣分析
优点:
- 计算机每次启动,后台自动管理员运行程序,且不弹窗
- 权限控制仍旧经过windows管理,不存在安全问题
缺点:
- 无法像普通模式启动的程序一样,在任务管理器-启动中查看到
通过任务计划程序来实现管理员后台运行程序的缺点,刚好被大多数应用软件所利用。
如Chrome浏览器的后台自动更新,就是使用了开启自启动的任务计划。
下面一步步展开说明
1.) 搜索任务计划程序,并打开
2.) 创建基本任务,填写信息后,点击下一页,选择当前用户登录时,选择启动程序,添加参数--background
设置静默启动,使用最高权限运行。最后确定即可
期间会遇到 任务 x 出错: 一个或者多个参数配置出错。
遇到这种情况,重新设置用户和组为当前用户即可。
参考链接如下
PowerShell修改默认执行策略
常见的几种执行策略如下
执行策略 | 解释 |
---|---|
AllSigned | 可以执行有数字签名(可信任的出版商)的脚本和配置文件,包括本地脚本。 |
Bypass | 执行脚本无任何阻拦和警告。 |
Default | 默认,Windows 客户端为 ‘Restricted’,Windows 服务器端为’RemoteSigned’ |
RemoteSigned | 执行从 Internet 上下载的可信任出版商的脚本和配置文件。是 Windows 服务器默认执行策略。 |
Restricted | 不加载配置文件和运行脚本。是 Window 客户端的默认执行策略。 |
通过如下命令进行默认策略修改
1 | # 查看当前策略 |
BAT查看desktop.ini文件内容
之前我自己设计了一些文件夹图标,由于忘记图标路径了。
由于windows规定每个文件夹下都有个隐藏的desktop.ini标识该文件夹的自定义设置,所以编写脚本输出desktop.ini的内容
1 | @echo off |
Node实现交互式命令行及Github实战
首先,安装环境
1 | npm install prompts |
其次,创建test.js
1 | // 导入 prompts 模块 |
执行
1 | node test.js |
实战:实现交互式命令行,进行github repo的自动创建。
1 | const prompt = require("prompts"); // npm install prompts |
临时环境变量及进程操作
先记录一下,java应用如果想要实现Linux上nohup一样的做法,可以通过javaw实现,与java使用方法一致。
javaw,顾名思义,java-windows
查看环境变量
1 | echo %JAVA_HOME% |
设置临时环境变量
1 | set JAVA_HOME=1 |
追加临时环境变量
1 | set JAVA_HOME=%JAVA_HOME%;1 |
临时环境变量,只针对当前窗口生效
查看进程
1 | tasklist | findstr "进程名称" |
关闭进程
1 | taskkill /f /pid 进程id |
findstr 命令比 find 命令功能更强大,支持正则表达式和复杂的文本搜索模式。
node快速开启web服务器
有很多情况下,比如临时局域网传输个内容等,需要临时开个服务。但是借用现成的程序或其他语言手动实现,又有很多局限性。
不如直接使用node搭建,来得快、灵活。
首先创建server.js
1 | const express = require("express");// npm install -g express |
参数说明
- -p: 服务启动端口
- -d: 指定静态文件目录
- -l: 启用目录列表
- -D: 使用命令所在目录作为静态文件目录
其次,在server.js所在文件夹,安装express,并启动程序即可
1 | npm install express |
但是这样搞并不太人性化,因此添加cmd、配置环境变量。
1 | @echo off |
这个批处理脚本将会接受命令行参数并传递给
node server.js
命令。这意味着您可以使用server.cmd
来运行服务器
当需要快速定位命令位置,只需要执行如下命令
1 | where server |
Windows命令行schtasks管理定时任务
首先输入命令查看帮助
1 | schtasks /? |
新增任务
创建一次性任务,在15:30执行bat脚本
1 | schtasks /create /tn "MyOneTimeTask" /tr "C:\Path\to\MyScript.bat" /sc once /st 15:30 |
参数说明
/create
:表示要创建一个新任务。/tn "TaskName"
:指定任务的名称。/tr "ExecutablePath"
:指定要运行的可执行文件、脚本或命令。/sc once
:设置任务的计划类型为一次性。/sc daily
:设置任务的计划类型为每天执行。/mo 1
:频率为1个/sc单位的时间间隔。/st HH:MM
:指定任务的运行时间,以 24 小时制的时:分格式表示。
创建周期性任务,每天10:00执行bat脚本
1 | schtasks /create /tn "DailyTask" /tr "C:\Path\to\MyScript.bat" /sc daily /st 10:00 |
删除任务
删除任务
1 | schtasks /delete /tn "MyOneTimeTask" /f |
参数说明
/delete
:表示要删除一个任务。/tn "TaskName"
:指定要删除的任务的名称。/f
:强制删除任务而不要求确认。
实战一
创建一个定时commit的操作,由于是windows bat执行,故需要设置编码。git仓库路径为D:/test文件夹
创建test.bat
1 | @echo off |
创建一次性任务
1 | schtasks /create /tn "MyOneTimeTask" /tr "C:\Users\meethigher\Desktop\test.bat" /sc once /st 22:41 |
实战二
每1min,打开一次计算器
1 | schtasks /create /tn "test" /tr "C:\WINDOWS\system32\calc.exe" /sc minute /mo 1 /ru system |
任务的执行记录可以在控制面板-管理工具-任务计划程序中查看
Windows设置自定义暂停更新时间及彻底关闭更新
彻底关闭更新请下载Windows Update Blocker v1.8
win+r输入cmd,然后运行ctrl+shift+enter
以管理员权限打开
输入以下命令,然后回车
1 | reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /t reg_dword /d 365 /f |
表示最大允许365内不更新
原理就是直接修改了注册表,将默认值7改为了365
win+r运行配置直接打开程序
以直接进入我的博客文件夹为例。
首先在D:/softTools/blog/
下创建blog.cmd
1 | @echo off |
@echo off
表示不在控制台输出输入内容
然后配置环境变量。
输入win+r,在运行中输入blog,即可直接进入命令行
如果想要打开当前文件夹,输入以下命令
1 | start . |
创建右键cmd打开
cmd打开指定目录,可以通过shift+鼠标右键,或者文件夹路径上输入cmd即可。
桌面新建一个cmd.reg
1 | Windows Registry Editor Version 5.00 |
双击运行即可
防火墙应用阻止程序
在Windows中,您可以使用Windows防火墙来阻止或取消阻止某些应用程序,但是它的高级功能没有提供易于使用的界面。如果您想阻止应用程序访问互联网, 您必须执行以下步骤:
- 单击Windows“开始”菜单并打开“控制面板”
- 选择“系统和安全性”
- 然后在“防火墙”部分中,选择“允许程序通过Windows防火墙”
- 如果您要阻止或取消阻止的程序不是列出,您必须单击“允许另一个程序”将其添加。在列表中选择应用程序,然后选择“添加”。否则,您必须浏览硬盘驱动器以找到它,依此类推。对于普通用户来说,这似乎很复杂。
防火墙应用阻止程序使该过程非常容易!只需将要阻止的应用程序拖放到FAB窗口中,或浏览硬盘以找到它即可。
这个可以指定某个应用禁止联网,当然,是需要开启防火墙功能的,像我,一般不用防火墙,都是关闭状态。
所以,我也使用腾讯电脑管家和火绒来管理网络,比如某些app后台跑流量,腾讯或者火绒监测出来,就可以直接禁网,比方说禁用搜狗输入法的广告,直接禁用广告的程序,舒服的一批。
腾讯竟然支持禁用自己本身的网络,这点是360所没有的,这是我选择腾讯的原因。
火绒可以禁用windows系统进程的网络,比如svchost
Win递归删除指定名称文件夹
使用Windows批处理文件递归删除当前路径下的指定文件夹_William_Zhang_csdn的博客-CSDN博客
1 | ::@brief Used to delete all 'idea' folder, because it takes up more memory. eg 01idea、.idea等 |
Win文件链接
创建软硬链接示例
1 | mklink [[/d] | [/h] | [/j]] link target |
比如,我为maven仓库创建软链接
1 | mklink /d C:\Users\meethigher\.m2 D:\Develop\apache-maven-3.6.3\repo |
win10虚拟屏幕
win+tab键,即可打开面板,新建桌面
win+ctrl+左,切换左侧桌面(右同理)
win+ctrl+D,切换到一个新创建的桌面
win+ctrl+f4,删除当前桌面
其实本身并没有啥区别,还是相当于在一个屏幕上。
比如在a桌面打开一个文件,在b桌面在去打开时,会自动跳到a桌面
如何让win10系统变得好看
直接上链接吧,
如何让Windows 10系统桌面变得更好看? - 辜月二七的回答 - 知乎
花了一个多小时整了整
TB这个软件,还行,可以让任务栏透明、高斯模糊等等
Trays这个软件,简直就是一个大型流氓,改了任务栏之后无法恢复到默认,我特么把软件卸载之后,换了个主题才恢复原样,直接改了系统配置,强买强卖嘛?
总结一下,就是不实用,还是我自己这个实用一点。
直接用电脑管家里的小火箭、桌面管理、经典开始菜单,总得来说,电脑管家还是比较方便的。
windows命令行中文乱码
查看当前cmd的编码
1 | chcp |
对应关系为
十进制码值 | 对应编码名称 |
---|---|
950 | 繁体中文 |
936 | 简体中文默认的GBK |
437 | MS-DOS 美国英语 |
65001 | utf-8 |
参考【亲测】CMD中文乱码终极解决方案_cmd中文乱码解决方法_于飞SEO的博客-CSDN博客
windows快捷键
说一下我自己比较常用的吧。可以用来快速切换
- win+数字键,可以快速切换任务栏内容,这可比什么quicker舒服多了
- win+D,返回桌面
- win+R,打开运行窗口
- win+L,锁定计算机
- win+tab,任务视图
windows服务管理
常规方式
windows通过命令行查看当前的环境变量
1 | echo %PATH% |
添加服务
1 | sc create 服务名称 binpath= "D:\Service.exe" displayname= "显示名称" depend= Tcpip start= auto (启动类型) |
删除服务
1 | sc delete 服务名称 |
winsw
我现在想把count.jar添加到服务自启动,将下载的WinSW.exe放到jar包所在文件夹,命名为count.exe,并添加配置文件count.xml
1 | <service> |
执行命令,安装服务
1 | count.exe install |
删除服务
1 | count.exe uninstall |
Windows配置静态ip
输入命令,查看当前的默认网关
1 | ipconfig |
选择一个无法ping通的ip,设置成自己ip。
Windows获取局域网已有IP
查看当前局域网下所有在线的机器
1 | arp -a |
或使用下面局域网bat脚本
创建bat如下,若乱码,需另存设置编码。
1 | for /l %%i in (1,1,255) do ping -n 1 -w 60 192.168.110.%%i | find "回复" >> pingall.txt |
Win11关闭【显示更多选项】|【show more options】
可直接按照Win11关闭【显示更多选项】|【show more options】_win11 show more options_wecode.fun的博客-CSDN博客操作
win10家庭版修改用户文件夹和注册表
之前我的文件夹带空格,是这样的kit chen。桌面的文件,右键打开时,发现打不开,实在受不了了。
首先,用管理员运行cmd,开启管理员账户
1 | net user administrator /active:yes #开启管理员账户 |
如果“发生系统错误5 拒绝访问”,就是没用管理员运行cmd。状态栏cmd右键,再右键,以管理员运行
把电脑内容都关闭,重启
开机后进入administrator账户,直接进入c盘修改用户文件夹的名称即可。
win+r,输入regedit,进入注册表编辑器
1 | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList |
依次查看该目录下的内容,查看ProfileImagePath后的数据,找到修改前的用户名,将他修改成当前文件夹的名称即可。
重启。
关闭管理员账户
1 | net user administrator /active:no #关闭管理员账户 |
操作无法完成因为其中的文件夹或文件已在另一程序打开
windows-任务管理器-性能-打开资源监视器-cpu-关联句柄,搜索你要删除的文件夹即可。
windows查看运行时间
最简单的方法,任务管理器->性能->CPU,查看运行时间
或者通过命令行,进入Powershell
1 | (get-date) - (gcim Win32_OperatingSystem).LastBootUpTime |
查看准确的开机时间
1 | wmic path Win32_OperatingSystem get LastBootUpTime |