サーチ…


前書き

バッチファイルの便利な機能の1つは、バッチファイルを使用してファイルを作成できることです。このセクションでは、バッチコードを使用してファイルを作成する方法を示します。

構文

  • エコー(あなたがしたいものをここに入力します)>>(ファイル名)
  • echo(変数名)>>(ファイル名)

備考

ファイルが存在する場合、 >はファイルを上書きし、 >>はファイルの末尾に追加します。ファイルが存在しない場合、両方とも新しいファイルを作成します。

また、 echoコマンドは文字列の後に自動的に改行を追加します。

そう

echo 1 > num.txt
echo 1 > num.txt 
echo 2 >> num.txt 

次のファイルを作成します。

1
2

これではない:

1 1 2

または

1 2

さらに、テキストファイル内の1行だけを変更することはできません。ファイル全体を読み込み、コード内で修正してからファイル全体に書き戻す必要があります。

リダイレクション

フォーマット:

[command] [> | >>] [filename]

> [コマンド]の出力を[ファイル名]に保存します。

>> [コマンド]の出力を[ファイル名]に追加します。

例:

  1. echo Hello World > myfile.txtは "Hello World"をmyfile.txtに保存します。

  2. echo your name is %name% >> myfile.txtは "your name is xxxx"をmyfile.txtに追加します

  3. dir C:\ > directory.txtは、C:¥のディレクトリをdir C:\ > directory.txt保存します

ファイルを作成するエコー

echoコマンドでファイルを作成する方法:

ECHO. > example.bat (creates an empty file called "example.bat")

ECHO message > example.bat (creates example.bat containing "message")
ECHO message >> example.bat (adds "message" to a new line in example.bat)
(ECHO message) >> example.bat (same as above, just another way to write it)

ECHOコマンドを使用してコンピュータの特定のディレクトリにファイルを作成する場合は、問題が発生する可能性があります。

ECHO Hello how are you? > C:\Program Files\example.bat

(This will NOT make a file in the folder "Program Files", and might show an error message)

しかし、それではどうしたらいいのですか?それは実際には非常に簡単です...名前にスペースが含まれているパスやファイル名を入力するときは、 "引用符"

ECHO Hello how are you? > "C:\Program Files\example.bat"
(This will create "example.bat" in the folder "Program Files")

しかし、新しいファイルを出力するファイルを作成したい場合はどうすればよいでしょうか?

ECHO message > file1.bat > example.bat

(example.bat is NOT going to contain "message > file1.bat")
example.bat will just contain "message"... nothing else

それでは、どうすればいいのですか?これは^記号を使用しています。

ECHO message ^> file1.bat > example.bat

(example.bat is going to contain "message > file1.bat")

バッチ内の他のものにも同じです

次のステップでは、変数とステートメントに関する知識が必要です。

変数について学ぶにはここをクリック ifとelse文については、こちらをクリックしてください。

変数:

SET example="text"
ECHO %example% > file.bat
(This will output "text" to file.bat)

"text"を出力するのではなく単に%example%を出力したい場合、次のように記述します:

ECHO ^%example^% > file.bat
(This will output "%example%" to file.bat)

IF / ELSEステートメント:

ELSE statements are written with "pipes" ||

IF ^%example^%=="Hello" ECHO True || ECHO False > file.bat

(example.bat is going to contain "if %example%=="Hello" echo True")
[it ignores everything after the ELSE statement]

行全体を出力するには、前と同じようにします。

IF ^%example^%=="Hello" ECHO True ^|^| ECHO False > file.bat

This will output:
IF %example%=="Hello" ECHO True || ECHO False

変数が "Hello"と等しい場合は "True"、そうでない場合は "False"

多くのコマンドの出力を保存する

多くのECHOコマンドを使用してバッチファイルを作成する:

(
  echo echo hi, this is the date today
  echo date /T
  echo echo created on %DATE%
  echo pause >nul
)>hi.bat

コマンド・インタープリタは、括弧内のセクション全体を単一のコマンドとして処理し、すべての出力をhi.batます。

hi.batは以下が含まれています:

echo hi, this is the date today
date /T
echo created on [date created]
pause >nul


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow