2006-09-14

 
一个比较文件夹不同的 DOS 批处理脚本
@echo off
setlocal
set dircmd=/ad /on /b

if not exist old.txt (
 dir > old.txt
 goto lblEndLocal
)

echo. > log.txt
dir > new.txt
echo N | comp old.txt new.txt
echo.

if "%errorlevel%" == "0" (
 goto lblEndLocal
)

echo -------------------------------------- >> log.txt
echo 已删除的文件夹: >> log.txt
for /F "tokens=*" %%o in (old.txt) do (
 call :lblSubProcessDeleted "%%o"
)

echo. >> log.txt
echo -------------------------------------- >> log.txt
echo 新增的文件夹: >> log.txt
for /F "tokens=*" %%n in (new.txt) do (
 call :lblSubProcessAdded "%%n"
)


copy /y new.txt old.txt

REM 发送邮件
if defined CYGWIN_HOME (
 %CYGWIN_HOME%\bin\email --version
 if "%ERRORLEVEL%" == "0" (
  %CYGWIN_HOME%\bin\email --subject "文件夹有变化" account@domain.com < log.txt
 ) else (
  echo 未安装 email 工具
 )
) else (
 echo 未安装 cygwin 仿 unix 环境
)


:lblEndLocal
endlocal
goto :EOF

:lblSubProcessDeleted
 findstr /x /c:%1 new.txt > NUL
 REM echo %errorlevel%
 if "%errorlevel%" == "0" (
  REM echo "%~1 found in new.txt!"
 ) else (
  REM echo %~1 not found in new.txt! it's DELETED
  echo  %1 >> log.txt
 )
goto :EOF

:lblSubProcessAdded
 findstr /x /c:"%~1" old.txt > NUL
 REM echo %errorlevel%
 if "%errorlevel%" == "0" (
  REM echo %~1 found in old.txt!
 ) else (
  REM echo %~1 not found in old.txt! it's ADDED
  echo  %1 >> log.txt
 )
goto :EOF

2005-09-01

 

Linux Shell 学习1:挂载编码可变的挂载Windows分区的脚本 MountWindowsDriver.sh

我的电脑有2个硬盘,主硬盘安装了Windows,次硬盘安装了 Redhat Linux 9.0Fedora Core 4。 在 Linux 中我想挂载 Windows 的分区,我不想在 /etc/fstab 里配置,我只想在想挂载的时候挂载,所以采用了脚本的方法来实现。

还一个问题是:Linux 中我采用 utf-8 作为系统的默认编码,而 zhcon (一个类似 UCDOS 的中文平台) 则只支持国标系列 (GB2312, GBK) 以及 BIG5、JIS、KSCM等编码,所以在挂载分区时,挂载编码 (iocharset/nls) 必须可调,所以脚本里需要做一点处理,脚本如下所示:

#!/bin/bash

#default iocharset(nls),设定默认编码为 utf8
charset=utf8
echo "The default charset(nls) is $charset"
if [ $1 ]; then
    #如果参数1不为空,则认为是手工指定了新的编码,将新的编码存储…
    charset=$1
    echo "charset is set to $charset"
fi

#begin mount with $charset... 挂载…
mount /dev/hda1 /mnt/c -r -o nls=$charset
mount /dev/hda5 /mnt/d -r -o nls=$charset

小结: 此次编写 sh 脚本学习了:


This page is powered by Blogger. Isn't yours?