- PR -

コマンドプロンプトからテキストファイルを読み込んで・・・

投稿者投稿内容
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2006-07-12 17:20
Windows Server Insiderにて質問する内容にふさわしくないかもしれませんが、

コマンドプロンプトに関してひとつ質問させて下さい。
例えば、コマンドプロンプト上でテキストファイルを読み込み、それを変数に
格納することは可能でしょうか?

テキストファイルに、日付が入っており(1レコードのみ)、それをDOS上で開き、
変数に入れたいのですが・・・。


ちなみに、OSはWindows2000です。

よろしくお願いします。













ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-07-12 17:24
こんにちは。

TechNet に テキスト ファイル内の指定した 1 行だけを読み取る方法はありますか という記事がありますが、変数に入れるというのはこういうことでしょうか。
_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for VSTO (Jul 2008 - Jun 2009)
Hello Another World!
.NET 勉強会 / ヒーロー島
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2006-07-12 17:44
返信ありがとうございました。

リンク先を拝見させて頂きましたが、VBScriptは使用せずに、DOSのコマンドだけを
組み合わせてできないのかと考えていました。

やりたいことの詳細は(始めに記載せず申し訳ありません。)、
Batファイル内に下記のコードを記載しています。

Set aaa=C:\Test.txt" <--1レコードの日付が入っています。

これをDOS上でオープンさせて変数へ格納します。そして、この変数を利用して
SQLPLUSで、@xxxx.sql bbbb(この1レコードの日付)
というSQLスクリプトを実行させたいのです。

xxxx.sql内で、whereで日付を指定しているところがあるのですが、この日付を bbbbで処理するようにしたいのです。








Uchikoshi
@ITエディタ
会議室デビュー日: 2001/07/27
投稿数: 197
投稿日時: 2006-07-12 18:00
どうしてもというなら、 for /f コマンドが利用できます。
詳細は for /?でお調べください。指定したファイルから
テキストを読み込み、変数にセットしながら、ループする、
という処理が可能になります。

・参考情報
Windows 2000 コマンドライン徹底活用
第8回 forコマンド(その2)
2.ファイル解析による繰り返し処理
http://www.atmarkit.co.jp/fwin2k/operation/command008/command02.html
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2006-07-13 09:59
皆様、返信ありがとうございました。

とりあえず、テキストファイルの1レコード(日付だけ)を変数に格納することが
できました。

for /f %%i in (C:\Test.txt) do echo %%i

上記の式で %%iに日付が入りました。
しかし、この後に、

Set aaa=%i といった形で、aaaにこの日付を格納したいのですが、
どうしてもうまくいかず困っています。
(色々と構文を調べたのですが・・・。)

文法的なアドバイスを頂けたらと思っております。
よろしくお願いします。










einen
会議室デビュー日: 2006/07/04
投稿数: 3
投稿日時: 2006-07-13 10:14
set aaa=%i%
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2006-07-13 10:26
einenさん、ありがとうございました。

実は、色々なことを試したのですが、うまくいきませんでした。
set aaa=%i%もその一つでした。

今、下記のようなコードを書いて簡易的なテストをしています。

for /f "tokens=*" %%i in (C:\Test.txt) do echo %%i <-- 日付を読み込み
Set aaa=%i% <-- 日付を入れたい
@echo %aaa% <-- 変数が入っているかを確認したい

Set aaa=%%i とか Set aaa=%i とか やりましたけれどよく分からなくなってきて・・・。

そもそもテキストの情報を読んで、それをSETすることはできないのでしょうか?




IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2006-07-13 10:27
einenさん、ありがとうございました。

実は、色々なことを試したのですが、うまくいきませんでした。
set aaa=%i%もその一つでした。

今、下記のようなコードを書いて簡易的なテストをしています。

for /f "tokens=*" %%i in (C:\Test.txt) do echo %%i <-- 日付を読み込み
Set aaa=%i% <-- 日付を入れたい
@echo %aaa% <-- 変数が入っているかを確認したい

Set aaa=%%i とか Set aaa=%i とか やりましたけれどよく分からなくなってきて・・・。

そもそもテキストの情報を読んで、それをSETすることはできないのでしょうか?




スキルアップ/キャリアアップ(JOB@IT)