2014年2月23日日曜日

■【Windows】
 IF EXIST ファイル名   コマンド [パラメーター]
  ディレクトリの存在をチェックしたい時にはパスの最後に「\」を付ける
    IF   EXIST   C:\TEST\   ECHO C:\TESTフォルダは存在

■特定のフォルダ下に指定のフォルダがあるかを調べる
【Windows】
set TARGET_PATH="C:\usr\command\tes t\trr"
set DIR_PATH="C:\usr\command\tes t"
IF %TARGET_PATH% GEQ %DIR_PATH% ECHO 以上の同一

【Unix】
set TARGET_PATH="C:\usr\command\tes t\trr"
set DIR_PATH="C:\usr\command\tes t"
IF %TARGET_PATH% -ge %DIR_PATH% ECHO 以上の同一


■特定フォルダーを除外して圧縮するzipコマンドの例。
【Unix】
zip -r what_ever_you_want.zip ./target_dir/ -x ./target_dir/dont_zip_dir\*
dont_zip_dirフォルダーを除外したtarget_dirまるごとを圧縮する例。


【Unix】
${#NAME} $NAMEの文字数(全角文字も1文字)になる。 echo ${#1}
→$1の文字数が表示される

■Winddowsコマンド解析
http://d.hatena.ne.jp/thinca/20100210/1265813598

■Unixコマンド
【Unix】
http://www.ne.jp/asahi/hishidama/home/tech/unix/command.html

■調査対象がファイルかディレクトリかを自動判別し、サイズを取得する。
【Windows】
@echo off
rem 対象の属性情報取得
set TARGET_NAME=%~a1
rem 対象がディレクトリか否かのチェック
set TARGET_DIR_FLAG=%TARGET_NAME:~0,1%
rem 対象がディレクトリであればジャンプ
if "%TARGET_DIR_FLAG%"=="d" (goto FLAG_DIR_SIZE)

rem 対象ファイルのサイズを取得
for %%A in ("%1") do set FILESIZE=%%~zA
echo 使用量 = %FILESIZE%
goto :EOF

:FLAG_DIR_SIZE
set WKF=__work.txt

dir /-c /s /a-d /w %1 | findstr "個の" > %WKF%
for /f "usebackq tokens=3" %%A in (`
find /c /v "" %WKF%
`) do set /a LC=%%A - 2
for /f "skip=%LC% tokens=1,2,3" %%A in (
%WKF%
) do call :SUB1 "%%A" "%%C"
del %WKF%

echo 使用量 = %NUM1%
echo 空き容量 = %NUM2%
echo ファイル = %NUMF1%
goto :EOF


:SUB1
set NUMF=%~1
set NUMF1=%NUMF2%
set NUMF2=%NUMF%
set NUM=%~2
set NUM1=%NUM2%
set NUM2=%NUM%
goto :EOF

0 件のコメント:

コメントを投稿