近来,吧里出现了大量所谓“系统/OS”贴,各种弃坑贴、互怼贴、水贴、抱怨他人发水贴的水帖等等。
的确,现在的bat吧热度不如从前,优质的内容也变少了,但还是希望作为bat吧新生力量的你们,能够从我们手中接过接力棒,并好好传下去,下面说几点建议吧:
1.谦虚,与人和善,不要狂妄自大。很多人一上来就做个OS,然后沾沾自喜,觉得自己非常厉害,对新人来说,这自然是值得鼓励的,但如果止步于此,甚至觉得bat已经没有什么不会的了,就不好了。首先,OS是什么?是操作系统,那我们每天在电脑里用的这个,每天看到的桌面是操作系统吗?不是,它只不过是个explorer,是个文件管理器,它的功能只不过是浏览文件、启动其他软件罢了,其实真正的操作系统是在幕后,我们平时很难直接接触到它,它负责与硬件打交道,负责进程的切换,负责内存的管理,负责系统调用的处理。那些用bat写的所谓OS,连文件管理器都比不上,又怎么好意思说是系统呢?
2.学习。至少认认真真地完整地看一个bat教程,不至于连一些基础的知识都不会,比如for的普通用法和/l /r /d选项的使用,变量替换,变量截取,变量拓展,if的语法等等。
你知道echo.和echo,的区别吗?知道如何用echo显示一个on或者off吗?
你知道for的用法吗?知道怎样把下面的代码写得更简洁吗?
if"%choice%"=="menu" goto menu
if"%choice%"=="start" goto start
if"%choice%"=="test" goto test
if"%choice%"=="info" goto info
if"%choice%"=="exit" goto exit
你知道什么是预处理吗?看得懂下面的代码吗?
@echo off
set "&=setlocal enabledelayedexpansion
set %^^^&=td!
set %%%%%%=$^&
set ",/=a,a
set ^au=^^^au
set ^^^^^^^^=shu
set ^^=^^^^=^^^^^^^^^^^^^^^^
set,/a,a= -
%&%
set ^^^t=t %time:~0,2%
set %^%
set %%%%=own
!%^%%^%!%^&%%%%%!-!%^%%^%:~0,1!!,/%,/%!%^t%
你知道怎样获取一个文件的拓展名吗?用变量截取还是变量拓展?
……
bat的世界里其实有很多东西值得我们去探索、去学习,就说说我的经历吧,虽然已经在bat吧待了这么多年,但也时常能碰到一些新鲜的东西,就比如说下面这段代码:
@cmd/q/v/c"set;=这是一个简单例子&set/p=123<nul&for %%@ in (0x -)do for /l %%# in (1 1 8)do for /f%%$ in ('copy/z %0 nul')do set/p=!;:~,%%@%%#! !;:~%%@%%#!%%$<%0"&%0
它就非常巧妙地利用了copy/z来将光标移动到行首,这样下一次显示的时候可以覆盖上一次的内容,实现刷新。
祝大家新年快乐,共勉。
的确,现在的bat吧热度不如从前,优质的内容也变少了,但还是希望作为bat吧新生力量的你们,能够从我们手中接过接力棒,并好好传下去,下面说几点建议吧:
1.谦虚,与人和善,不要狂妄自大。很多人一上来就做个OS,然后沾沾自喜,觉得自己非常厉害,对新人来说,这自然是值得鼓励的,但如果止步于此,甚至觉得bat已经没有什么不会的了,就不好了。首先,OS是什么?是操作系统,那我们每天在电脑里用的这个,每天看到的桌面是操作系统吗?不是,它只不过是个explorer,是个文件管理器,它的功能只不过是浏览文件、启动其他软件罢了,其实真正的操作系统是在幕后,我们平时很难直接接触到它,它负责与硬件打交道,负责进程的切换,负责内存的管理,负责系统调用的处理。那些用bat写的所谓OS,连文件管理器都比不上,又怎么好意思说是系统呢?
2.学习。至少认认真真地完整地看一个bat教程,不至于连一些基础的知识都不会,比如for的普通用法和/l /r /d选项的使用,变量替换,变量截取,变量拓展,if的语法等等。
你知道echo.和echo,的区别吗?知道如何用echo显示一个on或者off吗?
你知道for的用法吗?知道怎样把下面的代码写得更简洁吗?
if"%choice%"=="menu" goto menu
if"%choice%"=="start" goto start
if"%choice%"=="test" goto test
if"%choice%"=="info" goto info
if"%choice%"=="exit" goto exit
你知道什么是预处理吗?看得懂下面的代码吗?
@echo off
set "&=setlocal enabledelayedexpansion
set %^^^&=td!
set %%%%%%=$^&
set ",/=a,a
set ^au=^^^au
set ^^^^^^^^=shu
set ^^=^^^^=^^^^^^^^^^^^^^^^
set,/a,a= -
%&%
set ^^^t=t %time:~0,2%
set %^%
set %%%%=own
!%^%%^%!%^&%%%%%!-!%^%%^%:~0,1!!,/%,/%!%^t%
你知道怎样获取一个文件的拓展名吗?用变量截取还是变量拓展?
……
bat的世界里其实有很多东西值得我们去探索、去学习,就说说我的经历吧,虽然已经在bat吧待了这么多年,但也时常能碰到一些新鲜的东西,就比如说下面这段代码:
@cmd/q/v/c"set;=这是一个简单例子&set/p=123<nul&for %%@ in (0x -)do for /l %%# in (1 1 8)do for /f%%$ in ('copy/z %0 nul')do set/p=!;:~,%%@%%#! !;:~%%@%%#!%%$<%0"&%0
它就非常巧妙地利用了copy/z来将光标移动到行首,这样下一次显示的时候可以覆盖上一次的内容,实现刷新。
祝大家新年快乐,共勉。