标题: 【批处理】应该向实用性发展
[打印本页]
作者: plp626
时间: 2009-9-2 12:48
标题: 【批处理】应该向实用性发展
【批处理】应该向实用性发展
标题看似废话,但是还是想强调下,就像八荣八耻也得强调下似地,
此批处理分狭义与广义上的,包括脚本代码。。。
然后我说下我对批处理实用性的看法:比如 制作启动盘,制作个性化操作系统,绿化软件,自动安装更新软件(也就这些了,大家后面补充。。。)
然后我选了针对这些实用的领域,需要好好掌握的一些命令
先说狭义下的批处理命令(排名不分先后):
number 1:reg.exe,regsvr32.exe,学习直到掌握注册表
number 2:cacls.exe(或者xcacls.vbs),增加你的系统安全,如果不懂这些,那么我想ntfs给了咱们有点冤
3:net.exe 输入net /? 慢慢研究
4:schtasks.exe,计划任务,个性化制作系统,看自己需要了
5:ntsd.exe 有必要把这个工具好好研究下,好多强大东西有待学习
还有.................大家补充
然后说广义下的批处理:
1:windows不自带的跨平台的三方工具,如sed,wget,maths,....
2:一些脚本语言如vbs,autoit,perl,... [这个范围有点广了,]
3:wmic,powershell,
其他的不说,觉得vbs还是头等重要,vb在号称windows的杀手锏,因为我们毕竟都是用脚本管理系统,其他的大家也不一定有精力有兴趣研究。。
暂时先写这里,我想有些归类大家一定不喜欢,先看看大家意见
作者: azziporah
时间: 2009-9-2 13:06
不是很明白lz的重点 - -b
关于cacls,微软从Windows NT 6.0开始在 cacls /? 中声明
"Cacls is now deprecated, please use Icacls."
fsutil.exe 也挺常用的,个人而言
作者: yishanju
时间: 2009-9-2 13:58
没有感觉文不对题吗
作者: 523066680
时间: 2009-9-3 07:58
打字快的人都这样……
作者: 523066680
时间: 2009-9-3 10:49
标题: 批处理策略--判断媒体文件转换是否完成和选择性复制。
文:
http://hi.baidu.com/523066680
最近要帮人把DVD里面的电影转换成avi格式的,内容大
而且分好几部分。转换的时候机子又卡,做不了其他事。想弄个批,等它
全部转换完了以后 ctrl+G 地响几声提示我回来。
刚开始还真没想到好法子~ 想用核对文件名的方式。不过人家是先建
立文件名,再往里面写数据的,判断文件名是不适合了。还是是通过判断
数据大小了,不知道转换后的,但是它在转换,数据就在变化~
策略:
每隔ping -n 5 127.1>nul 的时间检查一次数据,对比上一次的,如果不
变化,就是over了~ CTRL+G 得出的那个符号 响几下。忙这忙那的我就听到啦。
后来第一个转换好就响了,闷~ 原来跳下个文件间隔时间挺久的,那就
ping -n 10 127.1>nul 吧。
@echo off
setlocal enabledelayedexpansion
set now=x
:loop
for /f "tokens=3" %%a in ('dir *.avi ^|find "个文件"') do (
echo, %date% %time:~0,-3% !now! 约!now2!MB
if "!now!"=="%%a" (【这里应是Ctrl+G得出的符号】>nul &exit) else (set "now=%%a")
set /a now2=!now:,=!/1048576
)
ping -n 10 127.1>nul
goto :loop
-------------------------------------------------------------------
后续: 这闷完还有别的闷,这次还要转换CD碟的音乐wma到mp3 判断还是用上面的了
CD碟比较郁闷的是 歌曲都是编号的,歌名要自己按着包装上的一个个打~
鼠标一个个点我可不干,还是弄个文本先按顺序写好再用批量改。然后转换
-----------------RenForCd----------------
::为了方便给CD复制来的音乐改上歌名(本来的是编号)
::在name.x中按包装的歌名写好,执行本batch
@echo off
setlocal enabledelayedexpansion
set "op=echo"
:a
set /a a=1
for /f "tokens=*" %%a in ('type name.x') do (
if !a! lss 10 (set x=0!a!) else (set x=!a!)
%op% ren "!x! 曲目 !a!.wma" %%a.wma
set /a a+=1
)
if "%op%"=="echo" (
echo,are you sure ?
pause
set "op="
goto :a
)
exit
-----------------------------------------
最后还有个问题的,转换好的歌曲跟以前复制到u盘过的歌曲是在一个目录下的,
又要区分出来复制进去。划分文件夹是好,不过一个个建立也不爽快。
难道要通过判断建立时间来复制?还好伟大的cmd提供了xcopy
看看/d参数:
/D:m-d-y 复制在指定日期或指定日期以后更改的文件。
如果没有提供日期,只复制那些源时间
比目标时间新的文件。
这个跟复制过的、没复制过的什么关系?复制来的文件,建立时间会不同,但是
[修改时间]是同样的。上面这个 /D 判断的就是“更改时间”。
同一个文件,更改时间都一样,就跳过了。剩下的都复制过去。
而且,这种判断有更新的话还可以判断出来并复制过去~
一个浅浅的 cpynew.bat
@echo off
set source="E:\ExistSpace\剪切单曲"
set way="K:\DVDmusic"
xcopy %source% %way% /d