Windows
をテンプレートにして作成
[
トップ
|
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#contents
*TIPS [#x63b921a]
**Windowsでシンボリックリンク [#r61957d6]
[[Link Shell Extension:http://schinagl.priv.at/nt/hardlin...
対応する環境のファイルをダウンロード,インストール後右ク...
*コマンドプロンプト [#c39564aa]
***コマンドプロンプトでpatch [#uf71261d]
-GNU patchを使用する場合
++GNU patchを[[プログラミング・ツール(移植ソフト):http:...
++解凍して"patch.exe"をパスの通ったフォルダにコピー.
++コマンドプロンプトから
patch -v
と打って,バージョン情報が出ればOK.
---パッチをあてる
patch < test.patch
---パッチを外す
patch -R < test.patch
-TortoiseSVNを用いる場合
patch,diffファイルを右クリック,
TortoiseSVN -> パッチを適用
***コマンドプロンプトでls [#v711a392]
[[Windows Service For UNIX:http://www.microsoft.com/japan...
***Windowsで使えるコマンド [#scfce4f9]
-[[Windowsコマンド集:http://itpro.nikkeibp.co.jp/free/NT/...
***pushd,popd [#m0a7dbd7]
コマンドプロンプトでフォルダを移動するときは,
cd d:\temp
のように通常 cd コマンドを使うが,cdの代わりにpushdを用い...
popdコマンドで以前のフォルダに戻ることができる.
例えば,現在"C:\Windows\System32"にいて,"d:\temp"に移動...
C:\Windows\System32>pushd D:\Temp
D:\Temp>popd
C:\Windows\System32>
ディレクトリパスの情報はスタックにためられるので,何回か...
D:\Temp\dir0>pushd ..\dir1
D:\Temp\dir1>pushd ..\dir2
D:\Temp\dir2>popd
D:\Temp\dir1>popd
D:\Temp\dir0>
また,pushdの特別な機能として,ネットワーク上のパス(UNCパ...
自動的にそのパスをネットワークドライブとして割り当てると...
例えば,
D:\Temp>pushd \\enterprise\data
Z:\>net use
新しい接続は記憶されます。
ステータス ローカル名 リモート名 ネット...
--------------------------------------------------------...
OK Z: \\enterprise\data Microso...
コマンドは正常に終了しました。
Z:\>popd
D:\Temp>net use
新しい接続は記憶されます。
一覧にエントリが存在しません。
popdすると割り当てられたドライブは解放される.
***ネットワークドライブの割り当て [#l59d3504]
net useを用いる.割り当てるときは
net use x: \\pcname\dir
"x:"を"*"にすれば,空いているドライブ名に割り当てられる(...
接続にユーザ名とパスワードが必要な場合は以下.
net use x: \\pcnam\dir password /user:username
次回起動時に自動的に接続する場合は以下.
net use x: \\pcnam\dir /persistent:yes
切断する場合は以下.
net use x: /delete
*バッチファイル(*.bat) [#n3169db1]
***環境変数 [#g1c34d71]
-%0 : バッチファイル名
-%1〜%9 : それぞれ1番目から9番目の引数,ファイルをD&Dした...
-%[変数名]% : 実際には環境変数として登録されるが,文字列...
set X=1
set CH=Hello World
echo %X%
echo %CH%
環境変数の変更をバッチファイルのある範囲内でのみにローカ...
-ファイル名の分解
"D:\Temp\bat\test 1.txt"が引数で渡されたとき,
|変数|echo表示|説明|h
|%1|"D:\Temp\bat\test 1.txt"|引数|
|%~1|D:\Temp\bat\test 1.txt|""の削除|
|%~f1|D:\Temp\bat\test 1.txt|完全修飾パス|
|%~d1|D:|ドライブ名|
|%~p1|\Temp\bat\|フォルダ名|
|%~n1|test 1|ファイル名(拡張子なし|
|%~x1|.txt|拡張子|
|%~s1|D:\Temp\bat\TEST1~1.TXT|MS-DOSファイル名(8.3)|
|%~a1|--a------|ファイル属性|
|%~t1|2010/02/10 17:29|ファイル更新日時|
|%~z1|290|ファイルサイズ|
***システム環境変数 [#n7dd24d6]
OS側で最初から定義されている環境変数.以下はWindows 7での...
-%CD% : 現在のディレクトリ
-%DATE% : 日付
-%TIME% : 時間
-%RANDOM% : 乱数[0,32767]
-%PATH% : パスディレクトリ
-%PATHEXT% : 実行可能ファイル拡張子
-%COMPUTERNAME% : コンピュータ名
-%OS% : OS名
-%USERNAME% : ログオンユーザ名
-%USERPROFILE% : ログオンユーザのホームディレクトリ(Windo...
-%HOMEDRIVE% : ログオンユーザのホームドライブ
-%HOMEPATH% : ログオンユーザのホームディレクトリ(ドライブ...
-%APPDATA% : アプリケーションの設定などが格納されるディレ...
-%SYSTEMDRIVE% : OSがインストールされたドライブ
-%SYSTEMROOT%,%WINDIR% : OSがインストールされているディレ...
-%PROGRAMDATA% : アプリケーションデータ格納ディレクトリ(C...
-%PROGRAMFILES% : アプリケーションインストールディレクト...
-%TEMP%,%TMP% : 一時作業ディレクトリ
***コマンド [#rb392c7f]
-rem : コメント
rem コメント
-echo : メッセージ表示
echo メッセージ
echo offとするとその行以下のコマンドが表示されなくなるの...
基本的にはバッチファイルの行頭で
@echo off
と書く.@はその行のコマンドを表示しないようにするためのも...
-pause : その位置でストップして「続行するには何かキーを押...
-call : 他のバッチファイルを呼び出す
call test2.bat
***ユーザ入力 [#t5992123]
-ユーザ入力 : ユーザからのキー入力は,
set /p X="入力してください : "
echo %X%
***条件分岐 [#o1d5cd89]
if 条件式 実行1 else 実行2
複数行にわたる場合は,
if "%X%" == "fujis" (
echo OK
) else (
echo NG
)
-ファイル,フォルダの存在確認
if existファイル名 実行1 else 実行2
if not existファイル名 実行1 else 実行2
使用例,
if exist C:\test.txt (
echo OK
) else (
echo NG
)
***Forループ [#b424c226]
for %%変数名 in (集合) do 実行 [実行パラメータ]
コマンドラインで直接入力する場合は単純に%変数名でよいが,...
-渡された引数全てを処理
for %%F in (%*) do (
echo %%F
)
-Cのfor文のように変数をカウントアップ
for /l %%X in (1,2,5) do (
echo %%X
)
この例では%%Xが1から5まで増分2でカウントアップされる.
***四則演算 [#c6c3966f]
"set /a"を使うと四則演算ができる.
set /a X=20
set /a Y=X+1
set /a Z=X%%7
上から代入,加算,剰余を計算している.
バッチファイルでは%は特別な意味があるので,剰余には%%が使...
***環境変数の遅延展開 [#u53092dd]
for文やif文で以下のように括弧を使って処理を行うと,括弧を...
@echo off
setlocal
set X=0
for /l %%I in (1,1,5) do (
echo %X%
set /a X=X+2
)
endlocal
実行結果は
0
0
0
0
0
これを解決するには,
-サブルーチンで括弧を使わないようにする : 括弧を使う代わ...
@echo off
setlocal
set X=0
for /l %%I in (1,1,5) do call :proc
goto :end
:proc
echo %X%
set /a X=X+2
goto :eof
:end
endlocal
実行結果は以下
0
2
4
6
8
-環境変数の遅延展開を使う :
setlocal enabledelayedexpansion
と記述し,変数を使用するときに%の代わりに!を使うと処理内...
@echo off
setlocal enabledelayedexpansion
set X=0
for /l %%I in (1,1,5) do (
echo !X!
set /a X=X+2
)
endlocal
実行結果は以下
0
2
4
6
8
遅延展開をenableにした状態でファイル名に"!"が含まれるもの...
解決策としては,
setlocal disabledelayedexpansion
を使って,必要なところだけ有効にする.
***バッチファイルの例:ファイルコピー [#j6fa5e28]
適当なテキストファイルを作成して,拡張子をbatにして,以下...
@echo off
setlocal
set DEST=D:\
echo copy files to %DEST%
for %%F in (%*) do (
copy "%%F" "%DEST%" /V /Y
)
endlocal
pause
batファイルに任意のファイル(複数でも可)をドラッグアンドド...
DESTに設定されたパスにコピーする(上書きコピー).
***バッチファイルの例:ファイルをN個おきにコピー [#x9edb6ac]
@echo off
setlocal enabledelayedexpansion
set DEST=E:\result\
set N=3
set IDX=0
set IDX3=0
echo copy files to %DEST%
for %%F in (%*) do (
set /a IDX3=IDX%%N
if !IDX3! == 0 (
echo %%F
copy "%%F" "%DEST%" /V /Y
)
set /a IDX=IDX+1
)
endlocal
pause
上記の遅延展開を使っている.
この例ではD%Dしたファイル群を3個おきにDESTにコピーする.
終了行:
#contents
*TIPS [#x63b921a]
**Windowsでシンボリックリンク [#r61957d6]
[[Link Shell Extension:http://schinagl.priv.at/nt/hardlin...
対応する環境のファイルをダウンロード,インストール後右ク...
*コマンドプロンプト [#c39564aa]
***コマンドプロンプトでpatch [#uf71261d]
-GNU patchを使用する場合
++GNU patchを[[プログラミング・ツール(移植ソフト):http:...
++解凍して"patch.exe"をパスの通ったフォルダにコピー.
++コマンドプロンプトから
patch -v
と打って,バージョン情報が出ればOK.
---パッチをあてる
patch < test.patch
---パッチを外す
patch -R < test.patch
-TortoiseSVNを用いる場合
patch,diffファイルを右クリック,
TortoiseSVN -> パッチを適用
***コマンドプロンプトでls [#v711a392]
[[Windows Service For UNIX:http://www.microsoft.com/japan...
***Windowsで使えるコマンド [#scfce4f9]
-[[Windowsコマンド集:http://itpro.nikkeibp.co.jp/free/NT/...
***pushd,popd [#m0a7dbd7]
コマンドプロンプトでフォルダを移動するときは,
cd d:\temp
のように通常 cd コマンドを使うが,cdの代わりにpushdを用い...
popdコマンドで以前のフォルダに戻ることができる.
例えば,現在"C:\Windows\System32"にいて,"d:\temp"に移動...
C:\Windows\System32>pushd D:\Temp
D:\Temp>popd
C:\Windows\System32>
ディレクトリパスの情報はスタックにためられるので,何回か...
D:\Temp\dir0>pushd ..\dir1
D:\Temp\dir1>pushd ..\dir2
D:\Temp\dir2>popd
D:\Temp\dir1>popd
D:\Temp\dir0>
また,pushdの特別な機能として,ネットワーク上のパス(UNCパ...
自動的にそのパスをネットワークドライブとして割り当てると...
例えば,
D:\Temp>pushd \\enterprise\data
Z:\>net use
新しい接続は記憶されます。
ステータス ローカル名 リモート名 ネット...
--------------------------------------------------------...
OK Z: \\enterprise\data Microso...
コマンドは正常に終了しました。
Z:\>popd
D:\Temp>net use
新しい接続は記憶されます。
一覧にエントリが存在しません。
popdすると割り当てられたドライブは解放される.
***ネットワークドライブの割り当て [#l59d3504]
net useを用いる.割り当てるときは
net use x: \\pcname\dir
"x:"を"*"にすれば,空いているドライブ名に割り当てられる(...
接続にユーザ名とパスワードが必要な場合は以下.
net use x: \\pcnam\dir password /user:username
次回起動時に自動的に接続する場合は以下.
net use x: \\pcnam\dir /persistent:yes
切断する場合は以下.
net use x: /delete
*バッチファイル(*.bat) [#n3169db1]
***環境変数 [#g1c34d71]
-%0 : バッチファイル名
-%1〜%9 : それぞれ1番目から9番目の引数,ファイルをD&Dした...
-%[変数名]% : 実際には環境変数として登録されるが,文字列...
set X=1
set CH=Hello World
echo %X%
echo %CH%
環境変数の変更をバッチファイルのある範囲内でのみにローカ...
-ファイル名の分解
"D:\Temp\bat\test 1.txt"が引数で渡されたとき,
|変数|echo表示|説明|h
|%1|"D:\Temp\bat\test 1.txt"|引数|
|%~1|D:\Temp\bat\test 1.txt|""の削除|
|%~f1|D:\Temp\bat\test 1.txt|完全修飾パス|
|%~d1|D:|ドライブ名|
|%~p1|\Temp\bat\|フォルダ名|
|%~n1|test 1|ファイル名(拡張子なし|
|%~x1|.txt|拡張子|
|%~s1|D:\Temp\bat\TEST1~1.TXT|MS-DOSファイル名(8.3)|
|%~a1|--a------|ファイル属性|
|%~t1|2010/02/10 17:29|ファイル更新日時|
|%~z1|290|ファイルサイズ|
***システム環境変数 [#n7dd24d6]
OS側で最初から定義されている環境変数.以下はWindows 7での...
-%CD% : 現在のディレクトリ
-%DATE% : 日付
-%TIME% : 時間
-%RANDOM% : 乱数[0,32767]
-%PATH% : パスディレクトリ
-%PATHEXT% : 実行可能ファイル拡張子
-%COMPUTERNAME% : コンピュータ名
-%OS% : OS名
-%USERNAME% : ログオンユーザ名
-%USERPROFILE% : ログオンユーザのホームディレクトリ(Windo...
-%HOMEDRIVE% : ログオンユーザのホームドライブ
-%HOMEPATH% : ログオンユーザのホームディレクトリ(ドライブ...
-%APPDATA% : アプリケーションの設定などが格納されるディレ...
-%SYSTEMDRIVE% : OSがインストールされたドライブ
-%SYSTEMROOT%,%WINDIR% : OSがインストールされているディレ...
-%PROGRAMDATA% : アプリケーションデータ格納ディレクトリ(C...
-%PROGRAMFILES% : アプリケーションインストールディレクト...
-%TEMP%,%TMP% : 一時作業ディレクトリ
***コマンド [#rb392c7f]
-rem : コメント
rem コメント
-echo : メッセージ表示
echo メッセージ
echo offとするとその行以下のコマンドが表示されなくなるの...
基本的にはバッチファイルの行頭で
@echo off
と書く.@はその行のコマンドを表示しないようにするためのも...
-pause : その位置でストップして「続行するには何かキーを押...
-call : 他のバッチファイルを呼び出す
call test2.bat
***ユーザ入力 [#t5992123]
-ユーザ入力 : ユーザからのキー入力は,
set /p X="入力してください : "
echo %X%
***条件分岐 [#o1d5cd89]
if 条件式 実行1 else 実行2
複数行にわたる場合は,
if "%X%" == "fujis" (
echo OK
) else (
echo NG
)
-ファイル,フォルダの存在確認
if existファイル名 実行1 else 実行2
if not existファイル名 実行1 else 実行2
使用例,
if exist C:\test.txt (
echo OK
) else (
echo NG
)
***Forループ [#b424c226]
for %%変数名 in (集合) do 実行 [実行パラメータ]
コマンドラインで直接入力する場合は単純に%変数名でよいが,...
-渡された引数全てを処理
for %%F in (%*) do (
echo %%F
)
-Cのfor文のように変数をカウントアップ
for /l %%X in (1,2,5) do (
echo %%X
)
この例では%%Xが1から5まで増分2でカウントアップされる.
***四則演算 [#c6c3966f]
"set /a"を使うと四則演算ができる.
set /a X=20
set /a Y=X+1
set /a Z=X%%7
上から代入,加算,剰余を計算している.
バッチファイルでは%は特別な意味があるので,剰余には%%が使...
***環境変数の遅延展開 [#u53092dd]
for文やif文で以下のように括弧を使って処理を行うと,括弧を...
@echo off
setlocal
set X=0
for /l %%I in (1,1,5) do (
echo %X%
set /a X=X+2
)
endlocal
実行結果は
0
0
0
0
0
これを解決するには,
-サブルーチンで括弧を使わないようにする : 括弧を使う代わ...
@echo off
setlocal
set X=0
for /l %%I in (1,1,5) do call :proc
goto :end
:proc
echo %X%
set /a X=X+2
goto :eof
:end
endlocal
実行結果は以下
0
2
4
6
8
-環境変数の遅延展開を使う :
setlocal enabledelayedexpansion
と記述し,変数を使用するときに%の代わりに!を使うと処理内...
@echo off
setlocal enabledelayedexpansion
set X=0
for /l %%I in (1,1,5) do (
echo !X!
set /a X=X+2
)
endlocal
実行結果は以下
0
2
4
6
8
遅延展開をenableにした状態でファイル名に"!"が含まれるもの...
解決策としては,
setlocal disabledelayedexpansion
を使って,必要なところだけ有効にする.
***バッチファイルの例:ファイルコピー [#j6fa5e28]
適当なテキストファイルを作成して,拡張子をbatにして,以下...
@echo off
setlocal
set DEST=D:\
echo copy files to %DEST%
for %%F in (%*) do (
copy "%%F" "%DEST%" /V /Y
)
endlocal
pause
batファイルに任意のファイル(複数でも可)をドラッグアンドド...
DESTに設定されたパスにコピーする(上書きコピー).
***バッチファイルの例:ファイルをN個おきにコピー [#x9edb6ac]
@echo off
setlocal enabledelayedexpansion
set DEST=E:\result\
set N=3
set IDX=0
set IDX3=0
echo copy files to %DEST%
for %%F in (%*) do (
set /a IDX3=IDX%%N
if !IDX3! == 0 (
echo %%F
copy "%%F" "%DEST%" /V /Y
)
set /a IDX=IDX+1
)
endlocal
pause
上記の遅延展開を使っている.
この例ではD%Dしたファイル群を3個おきにDESTにコピーする.
ページ名: