
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
そのままの構文でも、変数のデータが以下の様な感じなら不具合は起きないはずです。
@echo off
set DATA=xxx
set OUTPUT_FILE=OUTPUT_FILE.txt
echo %DATA%>%OUTPUT_FILE%
不具合が起きる原因として考えられるのは、
パスや変数に、特殊な意味を持つ半角記号が含まれる場合です。
「"」「<」「>」「&」「|」「%」と、半角スペースです。
これらは、エスケープをし、文字として認識させる必要があります。
「%」以外の半角記号は、
「^」を使ってエスケープします。
「%」は「%」を使ってエスケープします。
つまり、「%%」と書きます。
コマンドプロンプトで直接打っている場合は、必要ないかも知れません。
例えば、上記の構文を使って、
「&」という文字をファイル出力したいとします。
「set DATA=&」としてしまうと、
「&」は特殊な意味がある記号ですから、うまくセットされません。
「&」をエスケープする為に、「^」を付けて、
「set DATA=^&」とすると、
「DATA」に「&」がセットされた状態にはなりますが、
ファイル出力はうまくいきません。
「echo &>%OUTPUT_FILE%」という状態になっているからです。
うまく「&」をファイル出力するには、
「echo ^&>%OUTPUT_FILE%」という状態にしなくてはいけません。
ですので、変数「DATA」をセットする段階で、
「^」を「^^」とエスケープし、
「&」を「^&」とエスケープし、
「set DATA=^^^&」とすると、
「DATA」に「^&」がセットされた状態になり、
「echo ^&>%OUTPUT_FILE%」となり、
これでやっと「&」がファイル出力されます。
エスケープが面倒な場合は、「"」で囲むと、その間にある半角記号は基本的に文字として認識されますが、「%」と「"」が入っている場合はうまくいきませんので注意が必要です。
「&」を「"」で囲む例は以下の通りです。
set DATA="&"
echo %DATA%>%OUTPUT_FILE%
ただ、これだと、最初と最後に「"」が付いた状態で出力されます。
あと、パスに関しては、
個人的には、全て「"」で囲んだ方が無難だと思います。
変数に入れるパスは、
「"」無しの方が、後々扱いやすいかと思います。
えっと、そのままでは不具合が起きるので質問をしました。
この後いろいろ調べてみましたが、バッチファイルではやりたいことをやるのが難しいことがわかりました
他の方法を考えてみようと思います
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- その他(プログラミング・Web制作) Windowsのバッチファイルについてご教示ください 5 2023/07/25 20:23
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP 値の取り出し方について教えて下さい。 1 2023/03/31 13:30
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- iOS ファイルの名前変更 2 2022/08/11 20:47
- PHP phpでアクセスカウンターの数値の割合でリンク先を変更したい 1 2022/09/16 11:47
- 画像編集・動画編集・音楽編集 DVD Styler トラブル解決方法 6 2022/10/29 16:00
このQ&Aを見た人はこんなQ&Aも見ています
-
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
-
4
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
5
バッチコマンドの「set」で入力した内容をファイルに出力する場合の問題点
Windows Vista・XP
-
6
コマンドプロンプトによるフォルダ内のファイル存在有無
UNIX・Linux
-
7
コマンドプロンプトのエラーについて
その他(パソコン・周辺機器)
-
8
バッチファイル 指定行の切り出し
その他(Microsoft Office)
-
9
バッチファイル 文字列にスペースがある場合
その他(プログラミング・Web制作)
-
10
Dosブロンプトでtabを出力したい
その他(プログラミング・Web制作)
-
11
ファイルの先頭行を全て削除したい
Windows Vista・XP
-
12
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
13
echoの出力の最後のスペースを除去したい
iOS
-
14
Windowsのバッチファイルで正規表現の置換方法について…
Windows 10
-
15
ファイルの最後に文字列挿入
その他(プログラミング・Web制作)
-
16
Windowsのバッチファイルを利用しtxtファイルの指定のした位置に文字を追加する方法
その他(プログラミング・Web制作)
-
17
コマンドプロンプトでのBATファイルで、定数文字列の記述方法
Windows Vista・XP
-
18
DOSコマンドのforで空白行をスキップしない
UNIX・Linux
-
19
Dirコマンドでフォルダ内ファイルの合計サイズをだすには?(コマンドプロンプトにて)
UNIX・Linux
-
20
バッチファイルで昨日の日付を取得
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えてください!困ってます。
-
Winmerge ファイルの中身は同じ...
-
onedriveの中身を削除したらパ...
-
emlをtxtに変換するには?
-
ファイルの先頭行を全て削除したい
-
ショートカットアイコンと、元...
-
ファイルの単位
-
同期センターのマークが出てま...
-
Excellにて→ファイルエラー:デ...
-
office365 ファイルを削除したい
-
バッチファイルで変数の中身を...
-
ファイルの「読み取り専用」が ...
-
ODBCエラー「admin」によってロ...
-
コマンドプロンプトによるフォ...
-
Applescriptでファイルを開き、
-
iMovieとgifファイルの読み込み...
-
macのdmgファイル(動画)をMP4...
-
mac os9 不可視ファイルの移動...
-
dpsファイルを開きたいのですが...
-
Kshでエラー(no closing quote...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Winmerge ファイルの中身は同じ...
-
教えてください!困ってます。
-
onedriveの中身を削除したらパ...
-
emlをtxtに変換するには?
-
コマンドプロンプトによるフォ...
-
ファイルの先頭行を全て削除したい
-
同期センターのマークが出てま...
-
バッチファイルで変数の中身を...
-
Windows10 フォルダ内の自動並...
-
office365 ファイルを削除したい
-
mrl→midファイルへ
-
外字ファイル、eudc.tte と e...
-
ファイルの単位
-
Excellにて→ファイルエラー:デ...
-
macのdmgファイル(動画)をMP4...
-
VScodeでjarファイルを開く方法
-
ショートカットアイコンと、元...
-
BAKファイルを非表示にする方法
-
mac ファイルの詳細情報を編集...
-
クラリスワークスのファイルを...
おすすめ情報