ssh no password

Your aim
You want to use Linux and OpenSSH to automize your tasks. Therefore you need an automatic login from host A / user a to Host B / user b. You don’t want to enter any passwords, because you want to call ssh from a within a shell script.
How to do it
First log in on A as user a and generate a pair of authentication keys. Do not enter a passphrase:
a@A:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa):
Created directory ‘/home/a/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A

Now use ssh to create a directory ~/.ssh as user b on B. (The directory may already exist, which is fine):
a@A:~> ssh b@B mkdir -p .ssh
b@B’s password:

Finally append a’s new public key to b@B:.ssh/authorized_keys and enter b’s password one last time:
a@A:~> cat .ssh/id_rsa.pub | ssh b@B ‘cat >> .ssh/authorized_keys’
b@B’s password:

From now on you can log into B as b from A as a without password:
a@A:~> ssh b@B hostname
B

A note from one of our readers: Depending on your version of SSH you might also have to do the following changes:
Put the public key in .ssh/authorized_keys2 Change the permissions of .ssh to 700 Change the permissions of .ssh/authorized_keys2 to 640

发表在 未分类 | 标签为 | 留下评论

这就是网易的微博管理员

微博管理员:尊敬的用户,您在2011-05-08 22:14:41发表的微博“艾未未又被抓了。所谓驻英使馆还跳出来澄清,唉,此地无银三百两啊…”已被删除。给您带来不便,表示歉意。
2011-05-08 22:19
删除 微博管理员:尊敬的用户,您在2011-01-19 11:13:16发表的微博“对《胡锦涛访美》评论:“皇帝的新装!!!每个人都在阿谀奉承。唉,中国牺牲了多少国家利益,确切的说,是中国的老百姓牺牲了多少!!!!!!!!!!!!!!” http://163.fm/SSJvnsQ…”已被删除。给您带来不便,表示歉意。
2011-01-19 12:24
删除 微博管理员:尊敬的用户,您在2010-12-27 16:23:53发表的微博“对《温家宝称有信心让房价回到合理价位》评论:“怎么这么多五毛,这样的总理还不下台就是中国的耻辱。” http://163.fm/97Lf17N…”已被删除。给您带来不便,表示歉意。

发表在 未分类 | 标签为 | 留下评论

xcutsel usage

使用xcutsel共享vncviewer与Xserver的剪切板no comments
by Yunt in Linux,系统管理

最近使用vnc很是频繁,我的工作环境是控制端为archlinux被控端为winxp,它们之间剪切板的共享问题一直没有解决,以前少的字符总是自己打上去的,大的段落就用ftp把文件传过去后复制粘贴,由于今天要复制的内容十分的多,终于促使我下决心解决这个问题了,在网上搜了半天终于发现原来解决方法是这么的简单,都怪以前太懒,浪费了大把大把的时间呐。
解决问题的关键就是这个xcutsel程序,这个程序相当的简单,只有三个丑陋的按钮,分别是:

1,quit
2,copy primary to 0
3,copy 0 to primary

解释下使用法方,在windows中复制文本内容后,点击3:copy 0 to primary,然后在linux下点击鼠标中键或者shift+insert,即可实现clipboard transfer。
反过来,在linux下中复制文本内容后,点击2:copy primary to 0,然后就可以复制到windows中了。So Easy~~

原创文章,转载请注明: 转载自LazyHack | 使用xcutsel共享vncviewer与Xserver的剪切板

发表在 未分类 | 标签为 | 留下评论

Hello world!

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!

发表在 未分类 | 一条评论

高个的烦恼

 
1) 床不够长,冬天脚露在外面,冷
2) 坐上公交车,站着的时候看不见站牌,容易错过,而且找不到合适的站的地方,以前老公交车顶盖开的时候就站在那下面
3) 心脏压力大,挂的早,概率论与数理统计里面就有课后习题统计了美国高个子总统个矮个子总统的寿命,平均少5年多
4) 吃的多,人家吃一碗你得吃两碗,cost直线飙
5) 上厕所撞头,那种栏杆套门式的,走在上下地铁的楼梯的时候,一定要注意摄像头会撞到头。
6) 裤子买不到合适的。都是九分裤
7) 鞋子也买不到合适的,有46、47的么?没有,最大的44。
8) 拜访朋友,进到人家小区,总是被保安问两句,干嘛的?上上下下打量一遍。好人难做。
9) 坐长途飞机要死人,只能做aisle,里面的人出来去wc,你不得不先挪屁股。
10) 逛街的时候经常被骂,ex说,刚刚你听到了么?他说,他妈的,这人怎么长这么长!
其他的楼下补充。
 
发表在 未分类 | 2条评论

WordPress.com

Finally, Microsoft chooses wordpress.
Ah, two years ago, I found this website and thought it was good….
发表在 未分类 | 留下评论

mplayer/mencoder

播放swf文件
安装swf解码器
sudo apt-get install swfmill
如何保存串流视频(mms/rtsp)
mplayer -dumpfile dump.rm -dumpstream rstp://….
批量将rmvb转为avi
#ipod touch可用for i in *.rmvb; do mencoder -vf harddup -oac mp3lame -lameopts vbr=3 -ovc xvid -xvidencopts fixed_quant=4 -of avi $i -o `echo $i | sed -e
‘s/rmvb$/avi/’`; done
批量将DVD转为avi
for i in *.VOB; do mencoder -oac mp3lame -lameopts aq=7:vbr=2:q=6 -srate 44100 -ovc xvid -xvidencopts fixed_quant=4 -of avi $i -o `echo $i | sed -e
‘s/VOB$/avi/’`; done
批量将任何格式的电影转为ogv
#sudo apt-get install ffmpeg2theora   #firefox3.5或chrome直接支持播放,无需安装任何解码器,注意不支持rmvb,rmvb会出现a/v不同步问题for i in *; do
ffmpeg2theora –optimize –deinterlace $i; done
批量将rmvb格式的电影转为ogv
#!/bin/bashfor i in *; do   mkfifo "/tmp/$i"   mencoder -quiet -vf harddup -ovc raw -oac pcm -o "/tmp/$i" "$i" &   ffmpeg2theora –optimize –deinterlace
"/tmp/$i"    -o "`echo $i | sed ‘s/\(.*\)\..*$/\1/’`.ogv"   rm "/tmp/$i"done
利用gst来转换任意电影为ogv
#!/bin/bash
for i in *; do   gst-launch-0.10 filesrc location="$i" ! decodebin name=demux \   { oggmux name=mux ! filesink location="`echo $i | sed ‘s/\(.*\)\..*$/
\1/’`.ogv" } \   { demux. ! queue ! audioconvert ! vorbisenc ! queue ! mux. } \   { demux. ! queue ! ffmpegcolorspace ! videorate ! theoraenc ! mux. } done
 
批量转换任意文件为ipod touch使用的mp4
#!/bin/bash#sudo apt-get install mencoder mplayerfind . -name ‘*.avi’ -o -name ‘*.rm’ -o -name ‘*.rmvb’ -o -name ‘*.wmv’ -o \      -name ‘*.vob’ -o -name
‘*.asf’ -o -name ‘*.mpg’ -o -name ‘*.ts’ -o \      -name ‘*.flv’ -o -name ‘*.mpeg’ -o -name ‘*.ogv’ -o -name ‘*.mov’ -o \      -name ‘*.mkv’ -o -name ‘*.dat’
| while read i; do  basename=`echo $i | sed ‘s/\(.*\)\..*$/\1/’`  font="WenQuanYi Zen Hei"  if [ -f "${basename}.srt" ] ; then     cp "${basename}.srt"
$$.srt     m0="-vf scale=480:-10,harddup -sub $$.srt -unicode -subcp GB18030 -subfont-text-scale 3";   else     m0="-vf scale=480:-10,harddup";   fi   x0="-
lavfopts format=mp4 -faacopts mpeg=4:object=2:raw:br=160 -oac faac -ovc x264 -sws 9 -x264encopts
nocabac:level_idc=30:bframes=0:global_header:threads=auto:subq=5:frameref=6:partitions=all:trellis=1:chroma_me:me=umh:bitrate=500 -of lavf -ofps 24000/1001";
 mencoder $m0 -fontconfig -font "${font}" $x0 -o "$$.mp4" "$i"  mv "$$.mp4" "${basename}.mp4"  if [ -f "${basename}.mp4" ] ; then     rm "$i"  fidone
图形界面为ipod touch转mp4的方法
先确保有zenity和memcoder
wget http://linuxfire.com.cn/~lily/toIpod -O ~/.gnome2/nautilus-scripts/toIpod && chmod +x ~/.gnome2/nautilus-scripts/toIpod
在nautilus里对视频文件点右键,选择"脚本"-"toIpod".
详情请查看出处。
 
mencoder/mplayer 反拉丝参数
-vf lavcdeint
合并多个 rm 文件为一个 avi 文件
mencoder -ovc lavc 1.rm -oac mp3lame -o 1.avimencoder -ovc lavc 2.rm -oac mp3lame -o 2.avimencoder -idx 1.avi -ovc copy -oac copy -o o1.avimencoder -idx
2.avi -ovc copy -oac copy -o o2.avicat o1.avi o2.avi | mencoder -noidx -ovc copy -oac copy -o output.avi –
CD 抓轨为 mp3 (有损)
#sudo apt-get install abcdeabcde -o mp3 -b
CD 抓轨为 Flac (无损)
#sudo apt-get install abcdeabcde -o flac -b
ape 转换为 flac
#sudo apt-get install flac shntool iconviconv -f GB2312 -t UTF-8 example.cue -o example_UTF-8.cueshntool split -t "%n.%p-%t" -f example_UTF-8.cue -o flac
example.ape -d flacOutputDir
ape/flac 转换为 mp3
#sudo apt-get install flac shntool lame #ape 需要安装  monkeys 包iconv -f GB2312 -t UTF-8 example.cue -o example_UTF-8.cueshntool split -t "%n.%p-%t" -f
example_UTF-8.cue -o ‘cust ext=mp3 lame –r3mix -b 320 –quiet – %f’ example.ape -d mp3OutputDir
批量将 ape 转为 mp3
for i in *.ape; do shnconv -i ape -o "cust ext=mp3 lame -b 320 – %f" "$i" -d mp3OutputDir; done
批量将 flac 转为 mp3
for i in *.flac; do shnconv -i flac -o "cust ext=mp3 lame -b 320 – %f" "$i" -d mp3OutputDir; done
批量将svg转为png
for i in *.svg; do inkscape $i –export-png=`echo $i | sed -e ‘s/svg$/png/’`; done
批量转换格式到mp3
#sudo apt-get install lame mplayerfor i in *; do base=${i%.*}; mplayer -quiet -vo null -vc dummy -af volume=0,resample=44100:0:1 -ao
pcm:waveheader:file="$i.wav" "$i" ; lame -V0 -h -b 192 -vbr-new "$i.wav" "$base.mp3"; rm -f "$i.wav" ; done
批量缩小图片到30%
for i in *.jpg; do convert -resize 60%x60% "$i" "sm-$i"; done
批量转换jpg到png
for i in *.jpg; do convert $i `echo $i | sed -e ‘s/jpg$/png/’`; done
如何压缩png图片
#sudo apt-get install optipngoptipng -o7 old.png new.png#或 sudo apt-get install pngcrush#pngcrush -brute old.png new.png
批量把pdf转换为txt并格式化
sudo apt-get install poppler-utils poppler-datafind ./ -name ‘*.txt’ | while read i; do cat $i | awk ‘{if ($0 ~ "^space:”) {printf “\n”$0} else {printf $0}}’
| sed ‘/^space:*digit:*$/d’ | sed ’s/^space:\+/    /’ | sed ’s/"/”/g’ > “../txt/$i”; done
转换 pdf 到 png
#sudo apt-get install imagemagickconvert -density 196 FILENAME.pdf  FILENAME.png
获取jpg的扩展信息(Exif)
identify -verbose xxx.jpg
获取视频文件 xxx.avi 的信息
mplayer -vo null -ao null -frames 0 -identify "xxx.avi" 2>/dev/null | sed -ne ‘/^ID_/ { s/[]()|&;<>`’"’"’\\!$" []/\\&/g;p }’
查看MKV视频文件 xxx.mkv 的信息
#sudo apt-get install mkvtoolnixmkvinfo -v xxx.mkv
发表在 Misc | 留下评论

bat 编程基础

BAT编程基础学习日志
echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。 
echo 表示显示此命令后的字符 
echo off 表示在此语句后所有运行的命令都不显示命令行本身 
@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。 
call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。 
pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue^N..的提示,等待用户按任意键后继续 
rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。 
例1:用edit编辑a.bat文件,输入下列内容后存盘为 c:\a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动?OS,进入WPS等功能。 
  批处理文件的内容为:         命令注释: 
    @echo off           不显示后续命令行及当前命令行
     dir c:\*.* >a.txt       将c盘文件列表写入a.txt 
     call c:\?os\?os.bat    调用?os 
    echo 你好            显示"你好" 
    pause              暂停,等待按键继续 
    rem 准备运行wps         注释:准备运行wps 
    cd ?os            进入?os目录 
    wps               运行wps   
批处理文件的参数
批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符 “%”。 
%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。 
例2:C:根目录下有一批处理文件名为f.bat,内容为:
@echo off
format %1
如果执行C:\>f a:
那么在执行f.bat时,%1就表示a:,这样format %1就相当于format a:,于是上面的命令运行时实际执行的是format a:
例3:C:根目录下一批处理文件名为t.bat,内容为:
@echo off
type %1 
type %2 
那么运行C:\>t a.txt b.txt 
%1 : 表示 a.txt
%2 : 表示b.txt
于是上面的命令将顺序地显示a.txt和b.txt文件的内容。
特殊命令
if goto choice for 是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。 
一、if 是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式: 
1、if [not] "参数" == "字符串" 待执行的命令 
参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。
例:if "%1"=="a" format a:
2、 if [not] exist [路径\]文件名 待执行的命令 
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如: if exist c:\config.sys type c:\config.sys 
表示如果存在c:\config.sys文件,则显示它的内容。
3、if errorlevel <数字> 待执行的命令 
很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。
如if errorlevel 2 goto x2
二、goto 批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与 if配合使用,根据不同的条件来执行不同的命令组。 
如:
goto end 
:end 
echo this is the end 
标号用“:字符串”来定义,标号所在行不被执行。 
三、choice 使用此命令可以让用户输入一个字符(用于选择),从而根据用户的选择返回不同的errorlevel,然后于if errorlevel配合,根据用户的选择运行不同的命令。
注意:choice命令为 DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。
choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异):
CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]
描述:
   该工具允许用户从选择列表选择一个项目并返回所选项目的索引。
参数列表:
  /C    choices       指定要创建的选项列表。默认列表是 "YN"。
  /N                  在提示符中隐藏选项列表。提示前面的消息得到显示,
                      选项依旧处于启用状态。
  /CS                 允许选择分大小写的选项。在默认情况下,这个工具
                      是不分大小写的。
  /T    timeout       做出默认选择之前,暂停的秒数。可接受的值是从 0
                      到 9999。如果指定了 0,就不会有暂停,默认选项
                      会得到选择。
  /D    choice        在 nnnn 秒之后指定默认选项。字符必须在用 /C 选
                      项指定的一组选择中; 同时,必须用 /T 指定 nnnn。
  /M    text          指定提示之前要显示的消息。如果没有指定,工具只
                      显示提示。
  /?                  显示帮助消息。
  注意:
  ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选
  择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,
  该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的
  ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0
  的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降
  序排列。
示例:
  CHOICE /? 
  CHOICE /C YNC /M " 确认请按 Y,否请按 N,或者取消请按 C。"
  CHOICE /T 10 /C ync /CS /D y
  CHOICE /C ab /M " 选项 1 请选择 a,选项 2 请选择 b。"
  CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。"
  
如果我运行命令:CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"
屏幕上会显示:
确认请按 Y,否请按 N,或者取消请按 C。 [Y,N,C]?
  
  
例:test.bat的内容如下(注意,用if errorlevel判断返回值时,要按返回值从高到低排列): 
@echo off 
choice /C dme /M "defrag,mem,end"
if errorlevel 3 goto end
if errorlevel 2 goto mem 
if errotlevel 1 goto defrag 
:defrag 
c:\dos\defrag 
goto end 
:mem 
mem 
goto end 
:end 
echo good bye 
此批处理运行后,将显示“defrag,mem,end[D,M,E]?” ,用户可选择d m e ,然后if语句根据用户的选择作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为 end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,批处理运行结束。 
四、 for 循环命令,只要条件符合,它将多次执行同一命令。 
语法:
对一组文件中的每一个文件执行某个特定命令。
FOR %%variable IN (set) DO command [command-parameters]
%%variable  指定一个单一字母可替换的参数。
(set)      指定一个或一组文件。可以使用通配符。
command    指定对每个文件执行的命令。
command-parameters
            为特定命令指定参数或命令行开关。
例如一个批处理文件中有一行: 
for %%c in (*.bat *.txt) do type %%c 
则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。
批处理示例
1. IF-EXIST
1)
首先用记事本在 C:\建立一个test1.bat批处理文件,文件内容如下: 
@echo off 
IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC.BAT 
IF NOT EXIST \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT does not exist 
然后运行它:
C:\>TEST1.BAT 
如果C:\存在AUTOEXEC.BAT文件,那么它的内容就会被显示出来,如果不存在,批处理就会提示你该文件不存在。
2)
接着再建立一个test2.bat文件,内容如下: 
@ECHO OFF 
IF EXIST \%1 TYPE \%1 
IF NOT EXIST \%1 ECHO \%1 does not exist 
执行: 
C:\>TEST2 AUTOEXEC.BAT 
该命令运行结果同上。
说明: 
(1) IF EXIST 是用来测试文件是否存在的,格式为 
IF EXIST [路径+文件名] 命令 
(2) test2.bat文件中的%1是参数,DOS允许传递9个批参数信息给批处理文件,分别为%1~%9(%0表示 test2命令本身) ,这有点象编程中的实参和形参的关系,%1是形参,AUTOEXEC.BAT是实参。 
3) 更进一步的,建立一个名为 TEST3.BAT的文件,内容如下: 
@echo off
IF "%1" == "A" ECHO XIAO 
IF "%2" == "B" ECHO TIAN 
IF "%3" == "C" ECHO XIN 
如果运行:
C:\>TEST3 A B C 
屏幕上会显示:
XIAO
TIAN
XIN
如果运行:
C:\>TEST3 A B 
屏幕上会显示
XIAO
TIAN 
在这个命令执行过程中,DOS会将一个空字符串指定给参数%3。 
2、IF- ERRORLEVEL
建立TEST4.BAT,内容如下:
@ECHO OFF 
XCOPY C:\AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO 文件拷贝失败 
IF ERRORLEVEL 0 ECHO 成功拷贝文件 
然后执行文件:
C:\>TEST4
如果文件拷贝成功,屏幕就会显示“成功拷贝文件”,否则就会显示“文件拷贝失败”。 
IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。
因此下面的批处理文件是错误的:
@ECHO OFF 
XCOPY C:\AUTOEXEC.BAT D:\ 
IF ERRORLEVEL 0 ECHO 成功拷贝文件 
IF ERRORLEVEL 1 ECHO 未找到拷贝文件 
IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拷贝操作 
IF ERRORLEVEL 3 ECHO 预置错误阻止文件拷贝操作 
IF ERRORLEVEL 4 ECHO 拷贝过程中写盘错误 
无论拷贝是否成功,后面的: 
未找到拷贝文件 
用户通过ctrl-c中止拷贝操作 
预置错误阻止文件拷贝操作 
拷贝过程中写盘错误
都将显示出来。 
以下就是几个常用命令的返回值及其代表的意义: 
backup 
0 备份成功 
1 未找到备份文件 
2 文件共享冲突阻止备份完成 
3 用户用ctrl-c中止备份 
4 由于致命的错误使备份操作中止 
diskcomp 
0 盘比较相同 
1 盘比较不同 
2 用户通过ctrl-c中止比较操作 
3 由于致命的错误使比较操作中止 
4 预置错误中止比较 
diskcopy 
0 盘拷贝操作成功 
1 非致命盘读/写错 
2 用户通过ctrl-c结束拷贝操作 
3 因致命的处理错误使盘拷贝中止 
4 预置错误阻止拷贝操作 
format 
0 格式化成功 
3 用户通过ctrl-c中止格式化处理 
4 因致命的处理错误使格式化中止 
5 在提示 “proceed with format(y/n)?”下用户键入n结束 
xcopy 
0 成功拷贝文件 
1 未找到拷贝文件 
2 用户通过ctrl-c中止拷贝操作 
4 预置错误阻止文件拷贝操作 
5 拷贝过程中写盘错误 
3、 IF STRING1 == STRING2
建立TEST5.BAT,文件内容如下: 
@echo off 
IF "%1" == "A" formAT A: 
执行: 
C:\>TEST5 A 
屏幕上就出现是否将A:盘格式化的内容。 
注意:为了防止参数为空的情况,一般会将字符串用双引号(或者其它符号,注意不能使用保留符号)括起来。
如:if [%1]==[A] 或者 if %1*==A*
5、 GOTO
建立TEST6.BAT,文件内容如下: 
@ECHO OFF 
IF EXIST C:\AUTOEXEC.BAT GOTO _COPY 
GOTO _DONE
:_COPY 
COPY C:\AUTOEXEC.BAT D:\ 
:_DONE 
注意: 
(1) 标号前是ASCII字符的冒号":",冒号与标号之间不能有空格。 
(2) 标号的命名规则与文件名的命名规则相同。
(3) DOS支持最长八位字符的标号,当无法区别两个标号时,将跳转至最近的一个标号。
6、FOR
建立 C:\TEST7.BAT,文件内容如下: 
@ECHO OFF 
FOR %C IN (*.BAT *.TXT *.SYS) DO TYPE %C 
运行: 
C:>TEST7
执行以后,屏幕上会将C:盘根目录下所有以BAT、TXT、SYS为扩展名的文件内容显示出来(不包括隐藏文件)
发表在 未分类 | 留下评论

Test

发表在 未分类 | 留下评论

To be deleted

#!/usr/bin/perl -w
# $Author: Shanghai Support Center$
# $Date: 06/20/2010 04:40:37 $
# $Version: 0.1 $
use strict;
use warnings;
open (F,$ARGV[0]) || die $!;
my @cont = <F>;
close F;
my @arr;
my @day;
my $i = 0;
my $j = 0;
foreach my $a (@cont) {
 $i ++;
 if ($a =~ /TIMESTAMP\s+(\d+\/\d+\/\d+)/) {
# print "$a";
  $day[$j] = $1;
  $arr[$j] = $i;
  $j ++;
 }
}
my $header;
foreach (my $k = 0 ; $k < $#cont ; $k ++ ) {
 foreach (my $t =0 ; $t < $#arr ; $t ++ ) {
  if ($k < $arr[$t] ) {
   $header = $day[$t];
   last;
  }
 }
 if ( $cont[$k] =~ /IN:/ || $cont[$k] =~ /OUT:/ ) {
  my $rm = $cont[$k];
  chomp $rm;
  my $len = length $rm;
  if (substr($rm,0,1) eq ‘ ‘) {
   $rm = substr($rm,1,$len-1);
   $len -= 1;
  }
  if (substr($rm,0,$len) eq ‘ ‘) {
   $rm = substr($rm,0,$len-1);
  }
  my @line  = split /[\t| ]+/, $rm;
  my @headers = split /\//, $header;
  print "$headers[2]-$headers[0]-$headers[1] ";
  #print "@line";
  if (1) {
   print "$line[0]\t";  #time
   my $lmd =  $line[1];  #lmd
   $len = length $lmd;
   if (substr($lmd,0,1) eq ‘(‘) {
    $lmd = substr($lmd,1,$len-2);
   }
   print "$lmd\t";
   my $in_out = $line[2];
   if ( $in_out eq "IN:" ) {
    print "1\t";
   } elsif ($in_out eq "OUT:" ) {
    print "0\t";
   } else {
    #print STDERR "Error! Should not reach here!\n";
   }
   my $fea = $line[3];
   $len = length $fea;
   if (substr($fea,0,1) eq ‘"’) {
    $fea = substr($fea,1,$len-2);
   }
   print "$fea\t";
   my ($u,$m) = split /\@/, $line[4];
   print "$u\t$m\t";
   if ( defined $line[5] ) {
    print "$line[5]\n";
   } else {
    print "\n";
   }
  }
  #print "$header $cont[$k]";
 }
}
发表在 未分类 | 留下评论