2007-7-16 22:55
oraix
[挑战] 批处理高手挑战帖
借色虫的宝地一用,摆个擂台.
最近写了不少windows批处理脚本, 雄心大增.
虽然windows出来了powershell 在向unix shell靠近, 但是毕竟是一个额外的软件. 通过系统的批处理功能已经能解决很多PC Server/Windows平台的功能.
大家在实际工作中, windows也是必不可少的要接触的系统, 学习批处理就像掌握unix shell一样, 可以事半功倍.
在此希望能在挑战中共同进步, 也发掘一下论坛中windows的人才, 哈哈. 一专多能
挑战第一贴:
如何生成一个以当前时间(包括日期和时间命名的文件)
编写成一个子程序, 带两个参数作为文件名的前缀和扩展名
这个有实用意义, 比如每次输出一个日志文件,
比如: prefix-20070716-230340.log
prefix和log是输入的参数
要求: 简短精炼, 健壮实用
平台: windows xp, windows 2003
希望回贴的人也出招.
[[i] 本帖最后由 oraix 于 2007-7-16 23:01 编辑 [/i]]
2007-7-21 22:01
oraix
没人顶, 自己定
看来没人应战,难道我是独孤求败了?哈哈
自己给个答案, 下面的片段可以做成子批处理:
:begin of bat============
@echo off
set filename=" "
set fd=%date:~0,10%
set fd=%fd:-=%
set ft=%time:~0,8%
set ft=%ft::=%
set filename=%1%fd%%ft%.%2
echo %filename%
:end of bat====================
说明:
%1 %2分别是前缀和 扩展名
可以显示一下生成的文件名字
echo %filename%
或者生成一个空文件:
echo. > %filename%
假设批处理文件名为genfile.bat
调用方式为
genfile.bat prefix log
输出文件名为:prefix20070721215929.log