[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 leeonix 于 2011-10-20 09:00 编辑

最后我说一下我为什么扔掉VB,然后可以终止这个VB的话题了。
大概是1999年下半年,我还在上大学的时候,在一个个人办软件公司里打零工,老板姓武,我就叫他武老师。当时VB很流行,老师也在用。当时我说,学校里学的都是玩具的东西,我想跟老师深入学学用VB,老师笑呵呵的打开了Delphi4,然后再打开VB6,说,这个东西其实就是拖拖控件然后写一些东西。你看看VB,才那么几个控件,你再看看Delphi,好几排控件比VB多得多,所以干脆你直接学Delphi得了。下午我就去买了本delphi5从入门到精通。就我知道武老师当时的项目已经从VB转向Delphi了。

其实我当时开始学Delphi实际上是被控件多给左右思想了。而今,我一直很庆幸当时没有选择用VB。VB出问题了,你不知道哪里出问题,找错误都费解。而Delphi,市面上的版本都是带源代码的。如果你不懂,可以看看它是怎么工作的,然后你就知道错误在哪了。

TOP

我看那些高人教育初学者的时候说,一般情况下,少用临时文件。虽然没有UNIX那种`xxx`或者${xxx}的命令替换, ...
awk 发表于 2011-10-19 23:45


对了,是没有替换命令。但是用Python完全可以做到,只需要一个lambda就可以替换${xxx},然后交给批处理用。

TOP

无论是哪种编程语言,归根到底都只是人类利用的一种工具。至于好与不好,那是因人而异的,不是说 ...
broly 发表于 2011-10-20 01:48


因人而异,是没错。但人在使用工具的时候,也会养成使用工具的习惯。好习惯和坏习惯都会伴随终身。如果已知一个工具可以养成坏习惯,为什么要去养坏习惯?
多年前,谭浩强教授的那本书让很多人养成了写C语言的各种坏习惯,然后现在不知道有多少人在骂谭老头。
而VB从根本就带来了各种各样的坏习惯。而且语言本身带来的概念太多,而且面向对象也是不完全的。多花时间去学一下VC和MFC比学VB要好的多的多。

TOP

本帖最后由 leeonix 于 2011-10-20 08:42 编辑
不同的环境下,每个语言总有自己的擅长之处,最后都是二进制,就看使用的人觉得那个更方便和快速;

编程 ...
plp626 发表于 2011-10-19 23:55


那是你干的太少。选工具才是首选。因为语言涉及到一个大脑思维的过程,干久了会影响你的思维习惯。
我记得10年前有个形容VB,Delphi,和VC++的有个著名的例子。
三个程序员造桥,VB用手头的工具造了一个颤颤巍巍的桥,Delphi用别人的材料造了个坚固耐用的桥,VC则是自己种树自己炼铁最后造了个桥。

可以说学Delphi的拿过问题来首先想到的是找控件,VC的是找代码然后自己做。
而学VB的拿过问题来,遇到VB干不了的事情,就基本是束手无策了。
这就是影响人的思考方式的可怕之处。

TOP

我看那些高人教育初学者的时候说,一般情况下,少用临时文件。虽然没有UNIX那种`xxx`或者${xxx}的命令替换, ...
awk 发表于 2011-10-19 23:45



我当然知道可以直接用dir /b生成临时字符串放到for里面用。但中间呢?批处理最大的问题就是没有数据结构支持。倘若我需要生成一个list.txt的时候,会通过其他方式再处理一次这个list.txt。然后再用for去做。我只是举个利用纯文本的例子,根据一个简单的备份例子解释生成临时文本的方式而已。
grep给你的功能是过滤。多数的管道操作就是由grep处理然后再交给sed。而不是在awk里面写判断。遵循一件工具做好一件事的原则。grep从unix出现到现在,为什么没有呼吁其他工具替换他,这就是威力所在。
我并没有看到批处理有这四个操作符"."(所有字符) "*"(0个或多个) "^"(行首) "$"(行尾),如果你认为有,那就有吧。批处理有吗?你看到了吗?

TOP

VB易用归易用,还没有看到我说的“有害”二字?学习一种有害于以后自己发展的东西,是应该完全摒弃的。

  Visual Basic 是一种给儿童和菜鸟程序员的语言,它自从设计开始就是一种简单的语言。一些 C++ 和 Java 中的特性在 VB 中并没有出现。在感受开发的方便和快速的同时,一些类似于编译时进行类型和声明检查的功能在默认情况下是关闭的。这样一些程序员一边感叹 VB 的易用性,一般沮丧地地看着一些类似于“未定义类型”错误的发生。
  一些批评家认为 VB 的简单特性使得其在未来具有伤害性。很多人自学了 VB,但是并没有学到好的编程习惯。当 VB 进入课堂的时候,学生们不会学到很多基础的程序技术和结构,因为很多技术已经包含在那些对用户可见的组件里面了。不用学习标准的编程习惯,因为 VB 具有可视化的特性,所以导致了一些莫名其妙的代码的产生。而且很多错误和警告的检查默认情况下都是关闭的,程序员很难找到隐藏的错误。有经验的程序员在用 VB 编程的时候都会把这些选项打开。
  一些批评家批评微软简单地拷贝了 BASIC的思想到 VB 中。
  Visual Basic 开发的程序只能运行在 Microsoft Windows 中;VB 程序在运行时还需要 VB 运行库。
  Visual Basic 不能很好的综合Windows 的基础 API,很多时候要使用低级运算的“小伎俩”来进行编程。而 C 语言的低级内存运算比 VB 的要简单得多。

TOP

类Basic语言包括VB并没有任何好的帮助。而且这些语言是有害于思考的,编程人员学习语言,其实是学习符号系统 ...
leeonix 发表于 2011-10-19 22:18



    无论是哪种编程语言,归根到底都只是人类利用的一种工具。至于好与不好,那是因人而异的,不是说你觉得不好它就不好,它不会为你的主观意志所改变。而且每种语言都有自己的优缺点,没有什么是完美的。比如说VB,优点是简单易学易用,效率也不差。C#的确比Batch强大,这个想必大家没有疑问吧?像一个业余的编程爱好者,C#和Batch放在面前,如果说Batch就能满足他平时的需要,他何苦去学习C#呢?明显Batch更加易学易用,这个就是价值所在,再者,VB或者VBS同样有这样的优点,它同样有学习的价值。我怎么看都不觉得它没有任何好的帮助。即使是专业的编程人员,同样学习了许多语言,能有几个人会跟楼主一样说学习VB没任何好的帮助?说句难听点的话,拉不出屎不能怪地球引力不够,那是自己的问题。总之语言是死的,人是活的。
---学无止境---

TOP

不同的环境下,每个语言总有自己的擅长之处,最后都是二进制,就看使用的人觉得那个更方便和快速;

编程语言是技术工具,干活前先想好怎么干最关键,其次选工具;

“穷人”没强大工具只好暂时将就着用“锄头”或“铁锹”,不过如果仅仅是栽一颗小树苗,“铁锹和锄头”很合适;

TOP

我看那些高人教育初学者的时候说,一般情况下,少用临时文件。虽然没有UNIX那种`xxx`或者${xxx}的命令替换,但是有for:
for /f %%i in ('dir /b') do echo copy /y %%i %TEMP%\%%i.bak

高人们又说,写代码尽量不要有明显的bug:
for /f "delims=" %%i in ('dir /b') do echo copy /y "%%i" "%TEMP%\%%i.bak"

高人们还说,不要学会一个for /f就到处乱用:
for %%i in ("*.*") do echo copy /y "%%i" "%TEMP%\%%i.bak"

高人们还说,一般情况下,少用管道。像sed或者awk前面那些grep通常都是多余的。

高人们还说,虽然BAT的正则很弱,但是最基本的四个操作符"." "*" "^" "$"是有的。

高人们还说,重定向符号前面乱加空格会让纯文本也变得不是100%可信。

经常看到高人吹牛13,我也不是很理解,看到一点就记一点。但是没有听说过stderr输出的不会被使用,楼主给讲解一下子呗,我得记到自己的小本本上。

TOP

我不是平白无故说这个,而我在大学里半年学期就是在学VB,而同时我在自学Delphi。10多年过去了,我会的语言很多,从C/C++ delphi perl python lua falcon asm ActionScript C#,粗略了解过Java php 和javascript。这一系列语言都给我带来帮助,而VB以及我14年前学的Quick Basic,除了有害没有别的,我都已经忘了Basic语言到底该怎么写了。10年前的RAD快速开发方面比delphi差了不止一个档次,而现在和C#更不是一个档次。扩展性方面,只能用COM扩展还得借助VC或者Delphi。而且瓶颈开发的方式,最终只能调用Win32 API,其实还不如用C语言浅显易懂。尽管现在微软弄了VB.net,给我的感觉,还是一个可笑的玩具。

TOP

类Basic语言包括VB并没有任何好的帮助。而且这些语言是有害于思考的,编程人员学习语言,其实是学习符号系统,可以说,如果一种语言没有任何值得学习的地方,就不要学。

TOP

LZ为什么反感VB,难道不好吗,VBS和VB6可能老了比较落后了,但是还是能开发出很好的软件,况且现在还有VB.net,还有PB等。另一个方面,VB6和VC6用的是同一个编译器和连接器,.net系列代码可以直接互转,似乎没什么理由反感VB
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

本帖最后由 leeonix 于 2011-10-19 21:47 编辑

概括总结,图片处理,是一个从32位色点阵图,转化为d3d纹理文件,打包进虚拟文件系统的工具。脚本是把文本文件,编译为byte code,然后打包进虚拟文件系统。其他的文件也类似,比如声音文件。其实这个工具也只是调用了游戏用的打包解包库的一组简单的Lua脚本。复制好,最红用zip -9 -r打包为zip文件发送。

TOP

我写的打包是给游戏用的,游戏专用的虚拟文件系统。并不是压缩包。。。

TOP

rar、7z、tar神马的不是挺好挺强大么,你写的命令行打包的工具也是作业性质的吗?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表