Board logo

标题: [已回复]我想说说现在对批处理的个人观点 [打印本页]

作者: 523066680    时间: 2010-7-15 09:03     标题: [已回复]我想说说现在对批处理的个人观点

我对于批处理的现在的观点

以前我大概就是个天真的傻X,学批处理的第一原因是感觉他酷毙了。不过天真是好事....
工作后才开始用批处理做点工作上的处理,刚好操作系统出现各种新潮~

我们大部分在讨论的xp下的批处理正面临危机 ,
1.许多客户已经升级到vista , win7,接下来还有win8
   后面的批处理语法就渐渐不同了,也不知道是否会被抛弃。
   而同时竞争的还有linux桌面。
   我们论坛一直把话题维持在批处理上面,我觉得太单一了,这一块经历了太多,
   微软并没有挽留的意思,何来永恒的话题?

2. 其他脚本的竞争,各有特色吧,但总体而言,我觉得批处理真的不能胜出。
    批处理的话,很好的一点是自由度很高。语法很简单,但是也就有了明显的不严谨之类的缺陷。
    它的字符串操作,在先天上没有其他脚本完整、严谨。
3. 无法跨平台

批处理去哪里寻找永恒的共同的话题?
我想着论坛能有其他几个热门脚本的区,不过这很难,因为是“批处理之家”....
但是批处理的含义,仅仅是微软的批处理吗?
作者: neorobin    时间: 2010-7-15 09:14

论坛当然应该进一步扩展 技术 面, 仅限于(或很偏重) BAT, CMD, 我也认为只会愈来举步维艰
作者: Batcher    时间: 2010-7-15 09:24

后面的批处理语法就渐渐不同了

能否举几个例子来说明一下?
作者: neorobin    时间: 2010-7-15 09:29

我也准备学习 powershell, bash 等等了
作者: qaz123654    时间: 2010-7-15 09:32

批处理也包括shell脚本吧
作者: namejm    时间: 2010-7-15 10:35

  1、批处理以命令行方式工作,在很多时候,其高效是图形化界面软件所不能比拟的,所以,批处理一时半会消失不了,别看Win7下推出了PowerShell,但是,CMD.exe照样没放弃啊,我敢断言,Win8下依然能找到CMD.exe,乐观一点,10年内批处理是无法被取代的,只会增强,可能那时候不再是CMD.exe,而是PoewerShell或其他什么,但是,命令行的工作方式这一本质是不变的,不为别的,只因为它的高效;
  2、网络上还有海量的命令行工具,很多都有Windows版本,大名鼎鼎的就有sed、curl、wget、grep之流,并且还在不断更新中,只是很多人平时用不到,所以感觉不到它们的存在,一旦用上了,就会觉得再也难以摆脱,本人就是一个例子——也许很多人会说,这些原本就是Linux系统下的东西,只有在Unix下才能体会到它们的强大和普通,但是又有几个人为了使用这些工具而换上另外一套系统呢?
  3、我认为批处理最大的优势就是系统自带解释器,无需另行安装;另外一个优势就是它是批量处理的方式,对工作效率的提升是十分明显的;作为随写随用的脚本,它这些优势是十分明显的,只是会用的人不多,导致它的作用没有得到重视;
  4、如果是系统管理员的话,将能体会到批处理的强大威力——光一个WMIC就能受用无穷了;
  5、不能跨平台不应算它的缺点,本来就是脚本而已,没必要把功能弄得那么强大,能在Windows下工作也不错了;要考虑跨平台的话,那就是职业写手+高级语言的事情了;

  总之一句话:批处理的功能大家还没有完全发挥出来,导致大家对批处理不看好;真正精通了,则会感到它还是很强大的。乐观一点,批处理在10年内还不会消失。

  没有任何技术话题能永恒,包括Linux。生活不缺少美,而是缺乏发现美的眼光,夸个海口,可惜本人精力已不够用,否则,说不定哪天还真能掀起批处理的热潮呢;同样的,只要大家有这份精力,看准了方向,重新掀起批处理的热潮也是指日可待的,而我们论坛,就是一个非常好的平台。
作者: 523066680    时间: 2010-7-15 10:56

作为一个业余爱好者,我有开始担心自己学的东西会消失,
也有用一句话撤销疑虑:“即使我拜拜了,我学的东西也还存在,所以放心学吧。”

批处理是我无法遗弃xp的一个原因, 即使我去学shell,那些命令的参数却很多,很多……
想比的话批处理还真是简单呐~    想着可以配合一下,可惜是两个不同世界的东西。

=================
后面的语法不同的问题我是猜测罢了,纯粹是因为看到别人在发帖时会说
你的批处理在我的vista上 无法正常运行之类的。

[ 本帖最后由 523066680 于 2010-7-15 11:01 编辑 ]
作者: canyuexiaolang    时间: 2010-7-15 11:02

原来楼主担心Win7,8下边批处理会被和谐了啊、
我觉得应该不会,,因为批处理有很大的用处呐、
而且你觉得、按100下回车与1行代码哪个好。。
绝算是批处理被和谐了,VBS也不会啊
再说了,批处理的核心是cmd。语法变了,
核心却不会变。

敢于接受新事物嘛、变了就学。没什么大不了的、
思维定势也是可以改变的、、
死微软出什么Win7啊...还是用XP的好...汗(因为我家的破电脑实在跑不了Win7,否则早换了)
作者: gxuan2008    时间: 2010-7-15 11:17

希望不会出现这种情况,我还没学会它就没了,那不是好受打击.
作者: fanfande    时间: 2010-8-8 09:14

为随写随用的脚本,它这些优势是十分明显的,只是会用的人不多,导致它的作用没有得到重视;
作者: ZJHJ    时间: 2010-8-8 10:18

方便随写随用想修改就修改
作者: plp626    时间: 2010-8-8 14:32

就看论坛的定位了,何谓批处理, 只限于cmd解释器吗? 还是说 任何脚本 语言 解释器。

如果只为方便工作生活使用的任何脚本语言,那——

我提议管理员 开个 perl 脚本讨论区, perl 跨平台大家都知道, 而且在bat里嵌入perl代码也是很方便的很自然的,超爽!!


http://www.bathome.net/thread-8159-1-3.html
作者: czjt1234    时间: 2010-8-8 17:43

我是网吧网管

批处理我常用的

@echo off
cls

rd /q/s C:\WINDOWS\Temp||(
    echo 
    echo 
    echo.
    echo 请退出 pubwin2009 并重启
    echo.
    pause>nul
    exit
    )
md C:\WINDOWS\Temp

cd /d C:\"Program Files"\HintSoft\PubwinClient
dir /a/b | find /i "0" && (
    echo y|cacls Ad /p everyone:F>nul
    echo y|cacls Logs /p everyone:F>nul
    echo y|cacls Patch /p everyone:F>nul
    rd /q/s Ad||(
        echo 
        echo 
        echo.
        echo 请退出 pubwin2009 并重启
    echo.
        pause>nul
        exit
        )
    rd /q/s Logs
    rd /q/s Patch
    \\server\客户机\pub2009.exe
    )

echo.
cd /d c:\windows\system32
if not exist update.zip (
    cd.>update.zip
    echo y|cacls update.zip /p everyone:R>nul
    )
for /f "delims=" %%i in ('dir /a:d/b/o:n') do (
    if not exist c:\windows\system32\"%%i"\update.zip (
        echo 新建 %%i\update.zip
        cd /d c:\windows\system32\"%%i"
        cd.>update.zip
        echo y|cacls update.zip /p everyone:R>nul
        )
    )

echo.
cd /d c:\windows\system32
for /f "delims=" %%i in ('dir /a/s/b update.zip') do (
    if %%~zi NEQ 0 (
        echo 覆盖 %%~dpiupdate.zip
        cd /d "%%~dpi"
        del /q/a/f update.zip||echo 覆盖 %%~dpiupdate.zip 失败
        cd.>update.zip
        echo y|cacls update.zip /p everyone:R>nul
        )
    )

echo.
\\server\客户机\maxdos8开机还原.exe
regedit /s \\server\客户机\禁用待机.reg
regedit /s \\server\客户机\pub4.reg
\\server\客户机\Pubclt.exe

echo.
cd /d c:\
echo on
del /q/a/f c:\windows\*.log
del /q/a/f c:\windows\Memory.dmp
del /q/a/f C:\"Program Files"\GameMenu\dltemp\*.*
del /q/a/f c:\*.log
del /q/a/f c:\*.txt
del /q/a/f c:\*.bat
del /q/a/s/f C:\WINDOWS\Help\*.*
rd /q/s C:\WINDOWS\Bak
rd /q/s C:\WINDOWS\Logs
rd /q/s C:\WINDOWS\LastGood.Tmp
rd /q/s C:\WINDOWS\system32\config\systemprofile
@echo off

echo.
echo.
echo.
echo.
echo. 临时文件清理完毕,按回车键开始安装还原
pause>nul

cd /d C:\"Program Files"\GameMenu\Bin
DriversInstall.exe unvidorestore reboot install cde 123456
作者: czjt1234    时间: 2010-8-8 17:44

@echo off
cls

echo 清理 F:\
cd /d f:\ && (
    del f:\*.* /q/a/f
    for /f "delims=" %%i in ('dir /a/b') do if /i "%%i" NEQ "System Volume Information" rd /q/s f:\"%%i"
    )

echo 清理 D:\
cd /d d:\
del d:\*.* /q/a/f
copy \\server\客户机\d.txt e:\ || (
    echo copy \\server\客户机\d.txt e:\ 失败 !
    pause>nul
    exit
    )
for /f "delims=" %%i in ('dir /a/b') do find /i "%%i" e:\d.txt||rd /q/s d:\"%%i"
cd /d d:\棋牌对战
for /f "delims=" %%i in ('dir /a/b') do if /i "%%i" NEQ "QQ游戏" rd /q/s d:\棋牌对战\"%%i"
\\server\客户机\腾讯QQ2010.exe

echo 清理 E:\
cd /d e:\
copy \\server\客户机\e.txt e:\ || (
    echo copy \\server\客户机\e.txt e:\ 失败 !
    pause>nul
    exit
    )
for /f "delims=" %%i in ('dir /a:d/b') do find /i "%%i" e:\e.txt||rd /q/s e:\"%%i"
del e:\*.* /q/a/f

echo.
echo.
echo.
echo.
echo.
cd /d e:\MaxBAK
cd
dir /a/b
echo.
echo.
echo.
echo.
echo.
echo 复制 SYSBAK.MAX ?
echo.
echo.
echo.
echo.
echo.
pause
pause
pause
ren SYSBAK.MAX sysbak.old
\\server\客户机\MaxDOS8.exe
copy \\001\MaxBak\SYSBAK.MAX e:\MaxBak\SYSBAK.MAX
echo.
echo.
echo.
echo.
echo.
pause
作者: czjt1234    时间: 2010-8-8 17:45

不过一般人用的地方是不多




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2