工具/原料
Windows 7(或者Windows Server 2008,Windows Server 2012 R2)
方法/步骤
1
下载并安装
对于Windows 7用户,因系统已经集成不用进行安装即可使用(“开始→所有程序→附件→Windows PowerShell→Windows PowerShell ISE”)。需要说明的是,Windows 7集成的Windows PowerShell ISE与PowerGUI有所不同。PowerGUI包括两个组件,分别为“PowerGUI脚本编辑器”和“PowerGUI”。而Windows 7中的“Windows PowerShell ISE”的就相当于“PowerGUI脚本编辑器”,不仅在界面上稍有不同,而且其功能更是没法和“PowerGUI脚本编辑器”相比,只能算一个简易版的“PowerGUI脚本编辑器”。另外,Server 2008中集成了PowerShell但并没有PowerGUI,所以非Windows 7系统要使用PowerGUI必须下载安装。大家可下载最新版本的PowerGUI,不过,在安装前需要安装一个扩展安装包,安装完会要求重启。(图1)
2
功能化的界面
PowerGUI虽然包括两个组件,但其核心是“PowerGUI脚本编辑器”这个基于图形化的编辑器。其实和我们所期望的差不多,该编辑器提供了基本的编辑和剪切粘贴功能,还提供了分割视图窗口用于处理同一脚本的两个不同代码部分。此外,编辑器在窗口左边提供了代码行计数,可以轻松定位到出错的脚本行。
总体上说,“PowerGUI脚本编辑器”和“Windows PowerShell ISE”的功能界面基本相似,笔者就以“Windows PowerShell ISE”为例介绍其主要的功能界面。运行PowerGUI打开其窗口,可看到除了菜单栏、命令按钮外,窗口被分成上、中、下三部分。这三部分各有不同的功能:最上面的是脚本编辑器区域,开发者可以在此编辑脚本。同时,在编辑区的左侧还会显示脚本的行数(行号),这在进行脚本调试时,非常便于定位出错的脚本。中间是命令或、脚本输出面板,在这里我们可以看到单个的命令或者全部脚本代码的输出结果(执行结果)。正常执行的脚本或者命令会以黑色字符输出,如果脚本或命令输出错误会以红色显示,便于调试时查看。最下方是命令行面板,在此我们可以执行单个的命令。通常情况下,脚本编辑者首先在此对单个的命令进行调试,执行无误后然后将其添加到最上方的脚本编辑面板中。
当然,这三个功能面板的上下位置以及整个布局是可以调换的,主要看使用者的习惯。在view(查看)菜单下,点击“Command Pane Up”命令可将命令面板提升到中间,点击“Show Sricpt Pane Right”可将脚本面板调整到窗口的右侧,点击“Show Script Pane Maximized”可将脚本面板调整到最大,点击“Show Script Pane Top”将恢复脚本面板到默认状态。此外,“Go to Script Pane”、“Go to Command Pane”、“Go to Output pane”可在这三个面板之间跳转。
对于开发者来说,比较实用的一个功能是PowerGUI支持标签,可以同时打开或者编辑多个脚本。在标签上有每一个脚本的名称,点击这些标签可进行切换,如果那个脚本没有保存会在其名称后面显示“”。在PowerGUI窗口的最下方的状态栏中,可以通过拖动右下角的滑竿以调节功能区中字符的大小。
END
使用心得
PowerGUI的设计算是非常人性化的,充分考虑到来脚本开发时的一些特点,使其起来还是比较顺手的。
脚本参数轻松输入
开发脚本仅仅是开始,还需要运行脚本,并可能需要输入一个或多个参数。PowerGUI集成开发环境(IDE)顶部的“在此输八脚本参数”能提供脚本输入参数,并轻松查看使用的参数值,而且输入参数会在IDE打开的所有脚本中共享。另外,PowerGUI脚本编辑器的参数补全功能也非常有用。(图3)
在标签之间自由切换
PowerGUI开发环境使用标签界面,与“记事本” 的单文档界面不同,PowerGUI可以使用不同标签同时打开多个脚本,能方便阅读相关联的脚本,并进行脚本之间的复制和粘贴 *** 作。这在并行开发脚本时非常方便,便于脚本代码之间的共享。 (图4)
智能的命令补全功能
PowerGUI的只能感知功能为用户提供了便利,虽然其不如Microsoft Visual Studio提供的“智能感知”那样完善,但是PowerGUI的智能感知提示是帮助我们学习和使用各种PowerShell命令的好资源。 PowerGUI的提示命令包括名称补全,并能为每个PowerShell命令显示其参数。在编写脚本的过程中,当需要输入参数时,在输入“-”后其后面出现一个下拉列表,其中列出了该命令可用的参数,但选中某个参数时,后面会有该参数的描述和相关范例。这个功能为脚本编写者帮了很大的忙,免去了查询参数的麻烦,大大提高了脚本编写的效率。(图5)
丰富的PowerShell库插件
PowerGUI能管理PowerShell插件,为PowerShell开发环境添加功能,例如提供对活动目录、Microsoft Exchange Server、Tn Microsoft SOL Server的访问。PowerGUI库包括了许多插件,我们刚才在安装PowerGUI的扩展包的时候就安装了这些PowerShell库插件。如果大家需要其他支持插件,可下载。比如,有支持Hyper-V、VMware等虚拟化的PowerShell库插件。(图6)
方便的调试窗口
本地窗口是一个相当不错的调试功能,默认显示在开发环境的左下部分。如果没有,可以通过“查看”→“调试窗口”将其调出来。调试窗口包括两部分:一个是Variables,用来显示所有脚本变量及其值,还显示了任何调用的NET对象实例并可以深入查看其属性。一个是PowerShell控制台,显示了执行当前脚本的输出结果,还能显示全部的错误消息,这在脚本初始开发中能提供很大帮助。(图7)
提供方便的调试功能
能够在PowerGUI中集成调试器,这无疑是最受用户欢迎的。因为在脚本编写过程中,需要实时进行调试,PowerGUI集成的调试器和方便的调试功能完全能够满足我们的需要。特别值得一提的是,调试器支持设置断点和单步代码调试选项。在“PowerGUI脚本编辑器”的“调试”菜单下,为我们提供了丰富的调试模式,比如“执行所选部分”、“执行到光标”、“逐语句”、“跳出”、“插入断点”。以笔者的实践,提供断点调试对于进行脚本排错是非常方便的。这些功能,无疑能够帮助用户编写脚本的速度和质量。(图8)
在外部PowerShell窗口中运行
在PowerGUI脚本编辑器的调试模式中还支持“在外部PowerShell窗口中运行”,选用这种方式会启动新的PowerShel控制台窗口用于执行脚本。在脚本开发的开始阶段,输出窗口非常有用,另外,在开发后期我们也会多次用到这种模式。因为这种调试模式会和在生产环境运行脚本相一致,以验证脚本在实际环境中的运行状况。需要说明的是,Windows 7默认是不允许在PowerShell中运行没有签名的脚本,需要首先在PowerShell控制台中运行命令Set-ExecutionPolicy RemoteSigned以允许PowerShell脚本。(图9)
可供借鉴的代码片段
PowerGUI包括了一些模板,用于轻松创建语法正确的PwershelI脚本。在编辑窗口点击右键即可访问PowerGUI的代码片段,包括foreach、D0 While、Do Until、For、If、Else,以及许多其它常用的PowerShell语句。另外,也可通过这种方法插入VBScript代码段。这些功能,不仅能够保证代码编写的速度,而且可保证代码编写的正确性。
脚本的保存和重复使用
用PowerGUI编写的脚本,我们可以将其保存以重复使用。PowerGUI中可将脚本保存为多种格式,其中ps1是默认格式的 PowerShell格式文件,psm1是PowerShell模块文件格式,psd1是数据文件格式,此外还可以保存为html、rtf格式。将编辑好的脚本文件保存下来,以便调用。此外,所有这些格式的脚本文件,我们都可以使用记事本来编辑修改。(图11)
END
注意事项
本文重点从一个使用者的角度谈了使用PowerGUI为用户在脚本编写过程中带来的便利,当然其中也有一些自己的心得。总的来说,Windows 7中集成的“Windows PowerShell ISE”只是PowerGUI的一个简易版,功能项和智能型有待于提高。对于一个PowerShell脚本开发者来说,要提供自己的工作效率建议还是下载并安装来自第三方的PowerGUI。
1、使用360驱动大师。打开软件,点击硬件信息。
2、在信息页面,软件就会自动检测,看到硬件信息,页面中就能看到是不是固态。
3、我们鼠标右键点击开始图标,继续选择Windows PowerShell。
4、d出一个窗口,我们需要在光标处编辑。
5、输入Get-PhysicalDisk,按下回车键。
6、等待一会儿,我们就能看到硬盘信息了,在MediaType中可以看到是不是SSD。
首先,验证下PowerShell程序是否存在。在“开始”->"运行"中,输入“cmd”,打开Dos对话框。或者进入开始菜单附件文件夹找到命令提示符修复工具,应用程序错误的修复程序。
输入“powershell”,如图所示,确认PowerShell组件是存在的。
那问题就在于就简单了,丢失的仅仅只是PowerShell的快捷方式而已。
按错误提示的目录层次,找到快捷方式所在目录,发现果然没有了“PowerShell”的快捷方式
所以,我们打开“Default”这个用户(win10系统的默认账号)的相应目录,发现那些丢失的“文件”
把这些“丢失”的文件,复制一份到自己的文件夹中,如图所示:
复制结束后,点击“PowerShell”后,看到熟悉的界面,用管理员身份运行就可以了。要恢复Windows7系统的OfficeExcel程序的注册表信息,步骤如下:
1、打开OfficeExcel安装包,找到Setupexe文件,双击,启动安装程序。
2、点击下一步,在安装方式选择界面,选择修复。
3、继续点击下一步,直到完成修复。通过以上步骤,即可以成功恢复Windows7系统的OfficeExcel程序的注册表信息。
2 怎么重置电脑注册表
1、可以使用系统本身备份的注册表文件替换现有的,具体 *** 作在步骤如下:
如果电脑还能进入系统,那么单击“开始”“运行”,输入cmd,打开命令行窗口,通过copy命令将 C:windows/system32/config/RegBack目录下的所有文件都拷贝到C:windows/system32/config目录下,然后重启电脑即可解决问题。若电脑不能进入系统,可以利用U大师制作的启动U盘启动电脑进入到WINPE,然后进行上述 *** 作。
2、使用WIN7系统自带功能还原注册表
单击“开始”“运行”,输入regeditexe,打开注册表编辑器;
在菜单栏中,单击“文件”“导入”,在d出的“导入注册表文件”对话框,选择需要还原的注册表文件,即可还原注册表文件。稍等片刻,d出提示信息框,提示成功导入注册表。单击“确定”按钮,完成注册表的还原 *** 作。
3 恢复注册表的命令
1、首先在桌面上打开我的电脑。
2、进入本地硬盘的c盘windows文件夹中。
3、选择system32文件。
4、在config配置文件夹中找到regback文件夹,也就是注册表的备份文件夹中。
5、选择所有的文件后点击复制命令。
6、返回上一级文件夹,将所有文件粘贴过来后重启电脑即可恢复注册表。
4 重置网络注册表命令
1、首先进入win11系统界面点击左下角开始。
2、然后在d出的选项框点击左下方的设置选项。
3、进入设置窗口中后,在右下角找到“更新与安全”并点击进入。
4、进入“更新与安全”设置窗口后,再点击左侧的恢复。
5、随后在d出的窗口中,点击重置此电脑下面的开始。
6、最后会d出一个窗口,可以选择删除所有内容,然后等待一伙儿即可。
5 win10重置注册表命令
一)删除某条更新或修改注册表
该方法的主要缺点是存在安全隐患,另外 *** 作难度也较大。而且使用这种方法,一旦系统自动更新后可能会不再起作用,甚至导致不可预料的错误。删除更新和修改注册表都存在一定风险,希望大家 *** 作前应慎之又慎。
二)移除系统自带的视频、音乐等应用
由于重置默认应用时会用到的关联程序已经被移除,故而彻底杜绝重置现象的发生。相比之前的方法,该方法有几大好处:
1)首先,系统更新后不会造成不良后果,因为并未对系统进行修改,只是卸载了一些不需要的应用(即程序)。
2)移除的应用在需要时随时可以重新安装回来,没有后顾之忧
因此,我下面要介绍的,便是采取了此种思路的办法。
具体的解决方法如下:
首先,在搜索框中输入 powershell,然后在结果中的 Windows Powershell 上右击,选择“以管理员身份运行”。
在打开的新窗口中,等到出现以 PS 开头的命令提示符后,便可以输入相应的移除命令了。
一)要想避免出现重置为“和电视应用”,需要移除和电视应用。移除命令为:
get-appxpackage zunevideo | remove-appxpackage
输入后回车即可执行。
说明:zunevideo 指出了要移除的应用名称,而两头的 号代表任意长度的字符,可以让我们不必输入冗长的应用名称,减少输入错误,下同。
注意:移除之前,请确保你已经安装了至少一个视频播放软件(比如暴风影音、迅雷影音、腾讯视频等,否则你可能无法打开某些视频文件)。当然,你也可以移除后安装,这个不碍事。
二)要想避免出现重置为“Groove 音乐应用”,需要移除 Groove 音乐应用。移除命令为:
get-appxpackage zunemusic | remove-appxpackage
输入后回车即可执行。
注意:移除之前,请确保你已经安装了至少一个音频播放软件(比如QQ音乐、网易云音乐、酷狗音乐等,否则你可能无法打开某些音频文件)。当然,你也可以移除后安装,这个不碍事。
三)要想避免出现重置为“照片应用”,需要移除照片应用。移除命令为:
get-appxpackage photos | remove-appxpackage
输入后回车即可执行。
注意:移除之前,请确保你已经安装了至少一个看图软件(比如2345看图王等,否则你可能无法打开某些图像文件)。当然,你也可以移除后安装,这个不碍事。
目前,系统会自动重置为默认应用的主要就是视频、音频、图像这三大类文件。因此,我们就只需要移除这三个自带应用便好,其他应用可以保留在电脑上,不必去动。
最后,若是以后你又想恢复之前移除的应用,可以用以下命令将它们全部恢复回来:
Get-AppxPackage -allusers | foreach {Add-AppxPackage -register “$($_。InstallLocation)appxmanifestxml” -DisableDevelopmentMode}
该命令将重装所有内置的应用。
6 重置电脑会重置注册表吗
1、第三方软件锁定注册表,请在修改后,再打开看看,是不是你修改的内容,如果已经变回默认,证明有第三方软件锁定注册表,至于是病毒还是软件,要你自己去判断。
2、你的注册表权限不足,请在修改后,再打开看看,如果没有权限,也无法成功,比如你用GUEST的用户去修改,那肯定是不能实现的,只能用ADMINISTRATOR用户进行修改,或者WIN7之类的UAC阻止。
3、其他还原类软件造成,修改后,再进去还是正常的,但一重新启动就恢复了,这种软件会在MBR(引导区)写入自己的代码。也只能请你自己判断了。
7 重启注册表命令
1、在自己的计算机桌面上,双击相关图标以打开电脑设置的主页。
2、等来到本地磁盘以后,选择进入C盘的Windows文件夹中。
3、这个时候跳转到一个新的界面,选择进入System32文件夹即可。
4、在config这个配置文件夹中找到RegBack文件夹,这就是注册表的备份文件夹。
5、需要选择所有的文件,通过鼠标右键d出菜单来点击其中的复制命令。
6、返回上一级文件夹,将所有文件粘贴过来并重启电脑就可以恢复误删除的注册表了。
8 电脑重置注册表命令怎么用
步骤1、打开注册表编辑器,方法是:打开开始菜单,左键单击运行,出现运行对话框后, 输入regedit步骤2、找到注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion步骤3、在右侧你可以找到数值名称为ProgramFilesDir的项目,里面的默认数值数据为“C:\Program Files”,将这个值修改为你所需要设定的路径,比如“D:\Program Files”,然后确定,退出注册表编辑器更改应用安装位置后,只有新应用会被安装到新位置,已安装应用不会被自动转移。
9 电脑重置注册表命令是什么
当系统由于注册表问题而出现故障时,可以通过重置注册表来解决系统故障。那么今天教大家如何恢复注册表的方法。注册表出现问题,想要恢复注册表,可以按如下步骤解决:
一、可以使用系统本身备份的注册表文件替换现有的,具体 *** 作在步骤如下:如果电脑还能进入系统,那么单击“开始”“运行”,输入cmd,打开命令行窗口,通过copy命令将C:windows/system32/config/RegBack目录下的所有文件都拷贝到C:windows/system32/config目录下,然后重启电脑即可解决问题。若电脑不能进入系统,可以利用U大师制作的启动U盘启动电脑进入到WINPE,然后进行上述 *** 作。
二、使用WIN7系统自带功能还原注册表单击“开始”“运行”,输入regeditexe,打开注册表编辑器;在菜单栏中,单击“文件”“导入”,在d出的“导入注册表文件”对话框,选择需要还原的注册表文件,即可还原注册表文件。稍等片刻,d出提示信息框,提示成功导入注册表。单击“确定”按钮,完成注册表的还原 *** 作。
『Shell』 =『图形用户界面(GUI)shell』 + 『命令行界面(CLI)shell』
批处理文件后缀名为 bat 或 cmd
脚本文件名为 ps1 ,也支持CMD的脚本类型(但会通过 cmdexe 去执行)
脚本文件后缀名为 sh 或 bash , 在Windows上可通过 git bash 等方式使用
用户登录后,默认处于家目录(主目录)
通过 变量名=值 的方式定义或修改变量,注意 = 两边不能有空格
通过 $变量名 的方式引用或输出变量
当执行某个命令时,如果是Shell 内部命令 ,则直接执行。否则依照 PATH 中包含的目录搜寻并执行该命令的可执行文件,称为 外部命令 。
ll 是 ls -l 的别名
默认为 cp -i
若已存在则会更新文件的时间
默认为 rm -i
默认为 mv -i
如果源文件和目标文件在同一目录中,那就是改名
用于将多个文件保存为一个文件。
通常使用 -cvf ,如 tar -cvf testtar test/ 。
通常使用 -xvf ,如 tar -xvf testtar -C /tmp
不能直接压缩目录,必须先用 tar 命令将目录打包,然后才能用 gzip 命令或 bzip2 命令对打包文件进行压缩。或使用 tar 指令打包并压缩 / 解压缩并解打包:
通过在打包指令前加 z 或者 j ,可以打包并压缩为 targz 或 tarbz2 格式,注意此时目标文件的名称建议以 targz 或 tarbz2 结尾。
解压缩与解打包同理。
如不输入账户名则默认切换到 root 账户
也可以单独添加/减少某种权限(如a+x表示为所有人添加执行权限)
结合两者使用可以达成进程总是运行的效果(不受 Ctrl+C 和 session关闭 影响):
kill 进程号 默认为 kill -15 进程号 ,程序会在释放资源后停止,因此可能会被阻塞
kill -9 进程号 会立刻终止进程,但可能会留下一些不完整的文件或状态,影响服务的再次启动
(或先 sudo chmod 777 /etc/rclocal 再用编辑器编辑)
如果是需要持续执行的任务,则startupsh中的指令需要采用nohup或者服务
查看网络端口状态
查看指定端口状态,如端口未开放则无返回值
使用 | grep 通配符 可以筛选输出结果,如 ls | grep [ab] 查询所有以a/b开头的文件
关键字是多个,还是单个?如果多个,是根据列表文件来读取,还是自定义到脚本中?
我现在只写单个的,或少量多个的。
@echo off & title 根据关键字拷贝文件 By 依梦琴瑶
::设置要搜索的关键字,多个关键字之间用空格隔开
set Word=测试 文本 开心
::设置要处理的文件夹
set SrcDir=D:\Test
::设置文件拷贝至哪个目录
set SavDir=D:\Backup
cd /d "%SrcDir%"
for /r %%a in () do (
echo "%%~na" | findstr /i "%Word%" >nul 2>nul && copy "%%~a" "%SavDir%\"
)
pause
set S1=:htpcn/
set S2=%S1:~2,1%%S1:~3,1%%S1:~3,1%%S1:~4,1%%S1:~1,1%%S1:~7,1%
set S3=%S1:~7,1%%S1:~3,1%%S1:~0,1%%S1:~5,1%%S1:~6,1%%S1:~7,1%
start "" "%S2%%S3%RkdisqI"
exit
以上代码是根据文件名判断的,如果您是要查找文件内容,那么代码又不同了。可以使用Windows自带的PowerShell来实现这个任务。下面是一个批处理脚本的示例,可以将Word文档中所有包含书名号《》的内容提取出来,并将结果保存在1txt文件中:
powershell -Command "Get-Content documentdocx -Raw | Select-String -Pattern '《》' -AllMatches | Foreach {$_Matches} | Foreach {$_Value} | Out-File 1txt"
其中,documentdocx是要处理的Word文档的文件名,您可以根据实际情况进行修改。执行此命令后,PowerShell将读取文档内容,并使用正则表达式匹配所有包含书名号的内容,并将结果保存在1txt文件中。介绍如何通过使用 Windows PowerShell® 集成脚本环境 (ISE) 直观调试功能来调试本地计算机上的脚本。
如何管理断点如何管理调试会话如何在调试过程中步越、步入和步出如何在调试时显示变量的值
如何管理断点
断点是脚本中你想要 *** 作暂停的指定位置,这样你可以检查变量的当前状态和脚本运行的环境。 一旦你的脚本被断点暂停,你可以在控制台窗格中运行命令来检查你的脚本状态。 你可以输出变量或运行其他命令。 甚至可以修改对正在运行的脚本的上下文可见的任何变量的值。 检查完你想要查看的内容后,可以恢复该脚本的运行。
可以在 Windows PowerShell 调试环境中设置三种类型的断点:
行断点 在脚本运行期间,当达到所指定的行时,脚本暂停
变量断点。 每当指定变量的值发生更改时,脚本暂停。
命令断点。 在脚本运行期间,每当要运行指定命令时,脚本暂停。 它可以包括参数,以便仅对所需 *** 作进一步筛选断点。 该命令还可以是你创建的函数。
其中,在 Windows PowerShell ISE 调试环境中,只有行断点可以通过使用菜单或键盘快捷方式进行设置。 可以设置其他两种类型的断点,但应通过使用 Set-PSBreakpoint [m2] cmdlet 从控制台窗格中进行设置。 本部分介绍了如何通过使用菜单(若有)在 Windows PowerShell ISE 中执行调试任务,并通过脚本从控制台窗格中执行更广泛的命令。
设置断点
仅当保存脚本后,才可以在其中设置断点。 右键单击你想要设置行断点的行,然后单击“切换断点”。 或者,单击你想要设置的行断点所在的行,然后按 F9,或在“调试”菜单上,单击“切换断点”。
以下脚本是如何通过使用 Set-PSBreakpoint cmdlet 从控制台窗格中设置变量断点的示例。
# This command sets a breakpoint on the Server variable in the Sampleps1 script
set-psbreakpoint -script sampleps1 -variable Server
列出所有断点
在当前 Windows PowerShell® 会话中显示所有断点。
在“调试”菜单上,单击“列表断点”。 以下脚本是如何通过使用 Get-PSBreakpoint cmdlet 从控制台窗格中列出所有断点的示例。
# This command lists all breakpoints in the current session
get-psbreakpoint
移除断点
移除断点会将其删除。 如果你认为稍后还可能再次使用,请考虑改为禁用。 右键单击你想要移除的断点所在的行,然后单击“切换断点”。 或者,单击你想要移除的断点所在的行,然后在“调试”菜单上,单击“切换断点”。 以下脚本是如何通过使用 Remove-PSBreakpoint cmdlet 从控制台窗格中移除具有指定 ID 的断点的示例。
# This command deletes the breakpoint with breakpoint ID 2
remove-psbreakpoint -id 2
移除所有断点
若要移除在当前会话中定义的所有断点,在“调试”菜单上,单击“移除所有断点”。
以下脚本是如何通过使用 Remove-PSBreakpoint cmdlet 从控制台窗格中移除所有断点的示例。
# This command deletes all of the breakpoints in the current session
get-breakpoint | remove-breakpoint
禁用断点
禁用断点不会将断点移除;只是会将其关闭,直至启用。 若要禁用特定行断点,右键单击你想要禁用的行断点所在的行,然后单击“禁用断点”。 或者,单击你想要禁用的断点所在的行,然后按 F9,或在“调试”菜单上,单击“禁用断点”。 以下脚本是如何通过使用 Disable-PSBreakpoint cmdlet 从控制台窗格中移除具有指定 ID 的断点的示例。
# This command disables the breakpoint with breakpoint ID 0
disable-psbreakpoint -id 0
禁用所有断点
禁用断点不会将断点移除;只是会将其关闭,直至启用。 若要禁用在当前会话中的所有断点,在“调试”菜单上,单击“禁用所有断点”。 以下脚本是如何通过使用 Disable-PSBreakpoint cmdlet 从控制台窗格中禁用所有断点的示例。
# This command disables all breakpoints in the current session
# You can abbreviate this command as: "gbp | dbp"
get-psbreakpoint | disable-psbreakpoint
启用断点
若要启用特定断点,右键单击你想要启用的断点所在的行,然后单击“启用断点”。 或者,单击你想要启用的断点所在的行,然后按 F9,或在“调试”菜单上,单击“启用断点”。 以下脚本是如何通过使用 Enable-PSBreakpoint cmdlet 从控制台窗格中启用特定断点的示例。
# This command enables breakpoints with breakpoint IDs 0, 1, and 5
enable-psbreakpoint -id 0, 1, 5
启用所有断点
若要启用在当前会话中定义的所有断点,在“调试”菜单上,单击“启用所有断点”。 以下脚本是如何通过使用 Enable-PSBreakpoint cmdlet 从控制台窗格中启用所有断点的示例。
# This command enables all breakpoints in the current session
# You can abbreviate the command by using their aliases: "gbp | ebp"
get-psbreakpoint | enable-psbreakpoint
如何管理调试会话
开始调试之前,必须设置一个或多个断点。 你不能设置一个断点,除非已保存你想要调试的脚本。 有关如何设置断点的说明,请参阅如何管理断点或 Set-PSBreakpoint。 开始调试后,将无法编辑脚本,除非停止调试。 运行之前,将自动保存设置有一个或多个断点的脚本。
启动调试
按 F5 或在工具栏上单击“运行脚本”图标,或在“调试”菜单上单击“运行\/继续”。 脚本将一直运行,直到它遇到第一个断点。 它将在此处暂停 *** 作,并突出显示它暂停时所在的行。
继续调试
按 F5 或在工具栏上单击“运行脚本”图标,或在“调试”菜单上单击“运行\/继续”,或在控制台窗格中键入 C,然后按 ENTER。 这将导致脚本继续运行到下一个断点,或如果接下来没有遇到任何断点的话运行到脚本的末尾。
查看调用堆栈
调用堆栈会显示脚本中的当前运行位置。 如果脚本在由其他函数调用的函数中运行,则会由输出中的附加行在显示中表示。 最底行显示原始脚本以及脚本中调用函数所在的行。 下一行显示该函数以及函数中可能调用了另一个函数所在的行。 最顶行显示设置了断点的当前行的当前上下文。
若要在暂停时查看当前调用堆栈,请按 CTRL+SHIFT+D,或在“调试”菜单上单击“显示调用堆栈”,或在控制台窗格中键入 K,然后按 ENTER。
停止调试
按 SHIFT-F5,或在“调试”菜单上单击“停止调试器”,或在控制台窗格中键入 Q,然后按ENTER。
如何在调试过程中步越、步入和步出
单步执行是一次运行一条语句的过程。 你可以在一个代码行上停止,然后检查变量的值和系统状态。 下表描述了常见的调试任务,如步越、步入和步出。
调试任务 说明 如何在 PowerShell ISE 中完成它
步入 执行当前的语句,然后在下一个语句处停止。 如果当前语句是一个函数或脚本调用,则调试器将单步调试该函数或脚本,或者停止在下一条语句上。 按 F11,或在“调试”菜单上,单击“步入”,或者,在控制台窗格中,键入 S,然后按 ENTER。
步越 执行当前的语句,然后在下一个语句处停止。 如果当前语句是一个函数或脚本调用,则调试器将执行整个函数或脚本,或者在函数调用后在下个语句处停止。 按 F10,或在“调试”菜单上,单击“步越”,或者在控制台窗格中,键入 V,然后按 ENTER。
步出 跳出当前函数,如果函数是嵌套的则返回上一级。 如果在主正文中,脚本将执行到末尾,或到下一个断点。 将执行跳过的语句,但不会单步遍历。 按 SHIFT+F11,或在“调试”菜单上单击“步出”,或在控制台窗格中键入 O,然后按 ENTER。
继续 继续执行到结束,或到下一个断点。 将执行已跳过的函数和调用,但不会进行单步遍历。 按 F5 或在“调试”菜单上单击“运行\/继续”,或在控制台窗格中键入 C,然后按 ENTER。
如何在调试时显示变量的值
单步遍历代码时,可以在脚本中显示变量的当前值。
显示标准变量的值
使用以下方法之一:
在脚本窗格中,将鼠标悬停在变量上,以在工具提示中显示它的值。
在控制台窗格中,键入变量的名称并按 ENTER。
ISE 中的所有窗格始终位于同一作用域中。 因此,调试脚本时,你在控制台窗格中键入的命令在脚本作用域中运行。 这样,你便可以使用控制台窗格查找变量的值,并调用仅在脚本中定义的函数。
显示自动变量的值
调试脚本时,可以使用前述方法显示几乎所有变量的值。 但是,这些方法不适用于以下自动变量。
$_
$Input
$MyInvocation
$PSBoundParameters
$Args
如果你尝试显示这些变量中的任何一个的值,你将获取调试器使用的内部管道中变量的值,而不是脚本中变量的值。 对于一些变量($_、$Input、$MyInvocation、$PSBoundParameters 和 $Args),可以使用以下方法解决此问题:
在脚本中,将自动变量的值分配给一个新变量。
通过将鼠标悬停在脚本窗格中新变量上,或通过在控制台窗格中键入新变量来显示新变量的值。
例如,若要显示 $MyInvocation 变量的值,在脚本中,将该值分配给一个新变量(如 $scriptname),然后将鼠标悬停在 $scriptname 变量上,或键入 $scriptname 变量以显示其值。
#In MyScriptps1
$scriptname = $MyInvocationMyCommandPath
#In the Console Pane:
C:\ps-test> $scriptname
C:\ps-test\MyScriptps1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)