batch-file
バッチ(Windows)とターミナル(Linux)の違い
サーチ…
前書き
バッチとbashは全く異なっています。バッチフラグは
/
で示され、bashフラグは-
示されます。大文字と小文字の区別はbashでは重要ですが、(ほとんど)一括ではありません。バッチ変数名はスペースを含むことができ、bash変数名はスペースを含むことができません。最終的には、どちらもコマンドラインを操作して対話する方法です。驚くべきことではないが、2つのシステムの能力の間にかなりの量のオーバーラップがある。
備考
-
bitsadmin
は、PowerShellコマンドレットBITSを使用して非推奨になりましたが、Windows 10バージョン1607 -
certutil
空間と16進数の対を分離するので、md5sum
一例値返されd41d8cd98f00b204e9800998ecf8427e
ながら、certutil
同じ値を表示d4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e
- 別のドライブ(たとえば、C:からD :)に
cd
するには、/d
フラグを使用する必要があります -
del
はフォルダを削除できません。代わりにrm
を使用してください -
grep
はfind
やfindstr
よりはるかに強力ですfind
、それを比較することはほとんど公平ではありません。find
は正規表現の機能を持たず、findstr
の正規表現の能力は非常に限られています([az]{2}
は有効な構文ではありませんが、[az][az]
は) -
for
Windowsのコマンドプロンプトでは、1文字の変数名しか使用できません。バッチ変数名では大文字と小文字が区別される唯一の時間です - コマンドプロンプトの
for
ループも、%A
代わりに%A%
使用します - バッチスクリプトのfor
ループは変数%%A
使用します -
md
は必要な親ディレクトリを自動的に作成しますが、mkdir
には-p
フラグが必要です -
rem
それが先行する場合を除き、インラインコメント文字として使用することはできません&
-
::
はインラインコメントとしては使用できません。また、コードブロック内では使用しないでください(括弧のセット)
- 以下のようないくつかのWindowsのコマンドがあります
ping
まだ使用しています-
フラグとして
バッチコマンドとBashに相当するもの
バッチ | バッシュ | 説明 |
---|---|---|
command /? | man command | コマンドのヘルプを表示します。 |
bitsadmin | wget またはcurl | リモートファイルをダウンロードする |
certutil -hashfile file_name MD5 | md5sum file_name | file_nameのMD5チェックサムを取得します。 |
cd | pwd | 現在のディレクトリを表示します。 |
cd directory | cd directory | 現在のディレクトリを指定されたディレクトリに変更します。 |
cls | clear | 画面をクリアします。 |
copy | cp | ソースパスからターゲットパスにファイルをコピーする |
date | date | 日付を表示するか、ユーザーの入力に基づいて日付を設定します。 |
del | rm | ファイルを削除します。 |
dir | ls | 現在のディレクトリにファイルとディレクトリのリストを表示します。 |
echo | echo | 画面にテキストを表示する |
exit | return | スクリプトまたはサブルーチンを終了する |
exit | logout | コマンドプロンプトまたはターミナルを閉じます。 |
fc | diff | 2つのファイルの内容を比較する |
find "string" file_name | grep "string" file_name | file_nameで文字列を検索します。 |
findstr "string" file_name | grep "string" file_name | file_nameで文字列を検索します。 |
for /F %A in (fileset*) do something | for item in fileset*; do; something; done | 一連のファイル内のすべてのファイルに対して何かをする |
for /F %A in ('command') do something | `command` | コマンドの出力を返します。 |
for /L %A in (first,increment,last) do something | for item in `seq first increment last`; do; something; done | 最初に開始し、 最後に到達するまで増分カウントします。 |
forfiles | find | 特定の条件に一致するファイルを検索します。 |
if "%variable%"=="value" ( | if [ "variable"="value" ]; then | 2つの値を比較する |
ipconfig | ifconfig | IP情報を表示する |
md | mkdir | 新しいフォルダを作成します。 |
mklink | ln -s | シンボリックリンクを作成する |
more | more | 一度に1画面ずつ出力する |
move | mv | ファイルをソースパスからターゲットパスに移動する |
pause | read -p "Press any key to continue" | ユーザーがボタンを押すまでスクリプトの実行を一時停止する |
popd | popd | トップエントリをディレクトリスタックから削除し、新しいトップディレクトリに移動します。 |
pushd | pushd | 現在のディレクトリをディレクトリスタックに追加し、新しいトップディレクトリに移動します。 |
ren | mv | ファイルの名前を変更する |
rem または:: | # | コード行にコメントする |
rd | rmdir | 空のディレクトリを削除する |
rd /s | rm -rf | ディレクトリが空であるかどうかに関係なくディレクトリを削除します。 |
set variable=value | variable=value | 変数の値をvalueに設定します。 |
set /a variable=equation | variable=$((equation)) | 数学を実行します(バッチは32ビットの整数しか使用できません) |
set /p variable=promptstring | read -p "promptstring" variable | ユーザー入力を取得し、 変数に格納します。 |
shift | shift | 引数を1にシフトします(指定されている場合はn) |
sort | sort | 出力をアルファベット順にソートします。 |
tasklist | ps | 実行中のプロセスの一覧を表示します。 |
taskkill /PID processid | kill processid | PIDのprocessidでプロセスを強制終了する |
time /t | date | 現在の時刻を表示します。 |
type | cat | ファイルの内容を表示します。 |
where | which | 現在のディレクトリとPATHでファイルまたはコマンドを検索します。 |
whoami | id | 現在のユーザーの名前とグループを表示します。 |
バッチ変数とその等価なBash
バッチ | バッシュ | 説明 |
---|---|---|
%variable% | $variable | 通常の変数 |
!variable! | $variable | setlocal enabledelayedexpansion がオンの場合のコードブロック内の変数 |
%errorlevel% またはERRORLEVEL | $? | 前のコマンドのステータスを返します。成功した場合は0、失敗した場合は1(または何か他のもの)を返します。 |
%1 、 %2 、 %3 など | $1 、 $2 、 $3 など | スクリプトに与えられたパラメータ |
%* | $* | スクリプトに与えられたすべてのパラメータ |
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow