使用PowerShell简化我的工作
时间:2022-04-25
本文章向大家介绍使用PowerShell简化我的工作,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在这几年的编程学习和工作中,我积累的许多轻量级的小工具,比如Everything,BeyondCompare,BatchRename、HperSnap等等,这些软件都是绿色软件,无需安装,即使重装系统也可以很容易的迁移。但是由于工具比较多,不可能在桌面上为这些工具全部设置快捷方式,于是只能使用命令行进行调用。程序员们应该都知道,如果想要在cmd或者powershell中调用这些小工具,就要把这些工具的可执行文件的所在目录添加到系统环境变量Path之中。但是这样手工去添加太麻烦了,因为要添加的目录比较多,而且之后如果还想加入新的工具就必须继续设置环境变量,最重要的一点是每次重装系统还要重新设置一遍。作为一个程序员怎么去做这么笨的事情呢?于是我写了一个powershell配置脚本,让powershell每次启动时都去读该脚本,设置环境变量。 首先介绍一下我的工具集的结构:
- Tools/
- ToolA.exe
- ToolB.exe
- ToolC.exe
- ...
- Toola/
- Toolsa.exe
- Toola工具的其它文件
- Toolb/
- Toolsb.exe
- Toolb工具的其它文件
- ...
下面是我的powershell脚本(profile.ps1):
# Put this profile file into %userprofile%[My] DocumentsWindowsPowerShell for only yoursef
# Put this profile file into $windir%system32WindowsPowerShellv1.0 for every in your computer
# Set the $BasePath to the directory which your tools are placed
$BasePath = new-object System.IO.DirectoryInfo "D:softwaretools"
$Env:Path = $Env:Path + ":" + $BasePath
Get-ChildItem $BasePath | ForEach-Object -Process {
if($_ -is [System.IO.DirectoryInfo]) {
$Env:Path=$Env:Path + ";" + $BasePath.FullName + "" + $_.Name;
}
}
另外这个脚本之后可能会添加一些其它功能,大家可以随时到我的github上看看:https://github.com/jiangxincode/data/blob/master/profile.ps1
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(62)-EF链接串加密
- sl 2.0 重要更新
- 云计算技术原理
- WCF技术剖析之五:利用ASP.NET兼容模式创建支持会话(Session)的WCF服务
- 进入AI时代,你准备好了吗?
- TiDB 在 G7 的实践和未来
- 投资钛值的你,知道钛链是什么吗?
- Is this a MS EnterLib DAAB BUG or not?
- Silverlight 2 has a Timer (DispatcherTimer)
- 难道调用ThreadPool.QueueUserWorkItem()的时候,真是必须调用Thread.Sleep(N)吗?
- silverlight 《Hands-On-Labs》教程系列
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(67)-MVC与ECharts
- 2018年机器学习和数据科学重要会议概览
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(60)-系统总结
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 官方工具|MySQL Router 高可用原理与实战
- 团体程序设计天梯赛-练习集 L1-030 一帮一
- 团体程序设计天梯赛-练习集 L1-035 情人节
- 团体程序设计天梯赛-练习集 L1-038 新世界
- 团体程序设计天梯赛-练习集 L1-040 最佳情侣身高差
- 团体程序设计天梯赛-练习集 L1-041 寻找250
- 十年磨一剑!腾讯QQ Linux版 2.0.0 Beta重磅发布!
- 团体程序设计天梯赛-练习集 L1-045 宇宙无敌大招呼
- 团体程序设计天梯赛-练习集 L1-047 装睡
- 团体程序设计天梯赛-练习集 L1-052 2018我们要赢
- 团体程序设计天梯赛-练习集 L1-053 电子汪
- 团体程序设计天梯赛-练习集 L1-056 猜数字
- PAT (Basic Level) Practice (中文)1001 害死人不偿命的(3n+1)猜想
- PAT (Basic Level) Practice (中文)1002 写出这个数
- PAT (Basic Level) Practice (中文)1004 成绩排名