《我抽完一条烟也没想明白哪错》(1)DOS命令实现自动关机

举报
_nojava 发表于 2022/12/01 14:08:33 2022/12/01
【摘要】 给我整不会了,chao。。。 DOS命令基础众所周知,网安学生啥都学,所以DOS也是绕不开的,只不过因为DOS多用于恶意小程序,以及一大堆没啥用的操作,很少有人学过这一门语言。很多大佬问:DOS是干什么用的?我只能苦笑说一个6。据我所知(据我瞎扯),在计算机刚诞生的年代,是没有鼠标这种配件的,在这种情况下,DOS应运而生,通过命令行终端实现对文件、进程等等的操作。DOS的破坏效果还是十分强大...

给我整不会了,chao。。。

DOS命令基础

众所周知,网安学生啥都学,所以DOS也是绕不开的,只不过因为DOS多用于恶意小程序,以及一大堆没啥用的操作,很少有人学过这一门语言。

很多大佬问:DOS是干什么用的?

我只能苦笑说一个6。

据我所知(据我瞎扯),在计算机刚诞生的年代,是没有鼠标这种配件的,在这种情况下,DOS应运而生,通过命令行终端实现对文件、进程等等的操作。

DOS的破坏效果还是十分强大的,例如

  • 无限弹出命令行
  • 停止桌面进程
  • 让某个恶意程序在开机时自启动
  • 。。。。。。

echo 输出内容 类似于 print

学习DOS的第一步,自然是hello world。

首先,如果echo代表输出的话,我们就可以直接在bat文件中编辑

echo hello world!

点击运行后,会出现命令行一闪而过,咱也不到输出成功没有。

所以在上述命令后面,加入

pause

意义是在命令行输出之后暂停执行,避免命令行一闪而过的情况。

修改之后输出如下

可以看到。。。怎么评价,

非常难看,对吧。

前面的执行路径看着非常闹心,有没有哪行命令能够搞掉他呢。

有的。

在文件执行的最前面,输入

@echo off

即可实现想要的效果

 问题代码

上述命令会了吧,那就看看我们这次的问题

依次往下看,首先第一行

@echo off,屏蔽屏幕不合理输出。

title qingshu,设置标题,这是我的情书。

color f0 ,将执行时的背景颜色设为白色(f0),其他颜色寄几搜,屑屑。

echo ==============,两个都是为了美观,(为了)看起来像边框。

echo 1…

echo 2…自定义选项。

先跳过下面的一连串if语句,

直接从 :1 开始看,

首先,:1即是设置了一个名称为1的块,当然,这里并不是因为前面的自定义选项有1,2,3而强制要求,只要你喜欢,这里的名甚至可以改成你的前女友(doge

1中有一个set命令,即为设置一个变量,/p则是将用户输入的值赋给前面的变量,等号右边的拼音,则是类似于python中input()里的enter

a = input("enter")

注意:如果没有/p的话,a就等于等号右边的那一长串。

而下面的shutdown,有以下数据供解释

  • shutdown   -l      注销。这不能与 /m 或 /d 选项一起使用。
  • shutdown   -s      关闭计算机。
  • shutdown   -r      完全关闭并重新启动计算机。
  • shutdown   -a      中止系统关闭。
  • shutdown   -p      关闭本地计算机,没有超时或警告。
  • shutdown   -h      休眠本地计算机。
  • shutdown   -t xxx  将关闭前的超时时间设置为 xxx 秒。
  • shutdown   -c “comment” 有关重新启动或关闭的原因的注释。
  • shutdown   -f      强制关闭正在运行的应用程序而不事先警告用户。
  • shutdown   -d [p|u:]xx:yy  提供重新启动或关闭的原因。

将这串命令丢出来后,就可以放心地讲goto了。

先说明这串代码中的几个块。

  1. menu
  2. 1
  3. 2
  4. 3

之所以在1、2中加入回到开头菜单的命令是因为

如果不回去的话,因为DOS命令是从上到下执行的

假设执行1,那么2、3也会在后续执行。

目光回到第一个set语句那里。

在这里,设置了一个名为num的变量,负责读取用户输入的数字,将其赋给自己。

通过goto语句,跳转到相应的块里面,执行相应的命令,而在变量左右加入%,则是表示引用该变量的值。

致命问题

在本段代码中,输入1之后并不能执行shutdown命令。

在我个人测试时,发现问题应该如下

shutdown是可以正常运行的,测试命令

shutdown -s -t 300

5分钟后关机,也是可以运行的。

问题就出在,如果执行

shutdown -s -t300

输出的错误信息和该程序正常执行报错是一样的。问题应该就出现在这,求大佬指教。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。