[前の記事]« バッチファイル実行結果がリダイレクト出来ない
[次の記事]unixのshellのWindowsバッチへの変換がうまくいかない »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「SET, PATH, %環境変数%」索引へ

変数に代入したパスを参照すると「指定されたファイルが見つかりません」になる

33.
変数の使用方法
2004年01月07日(水) 21時26分
ジニービーチ
初心者すぎる質問で恐縮でございますが、
バッチ内での変数使い方を教えてください。
どういうことをやりたいかと、いいますと、バッチの中で
callで別のバッチを呼びます。別のバッチとはsetで変数に
パスなどの値をいれています。元のバッチに戻ったときにその変数に
代入したパスを使いたいのですが
 「指定されたファイルが見つかりません。」と怒られてしまいます。
教えてください!!!どうしたら言いのでしょう。%などを使ってみているのですが上手くいきません。(T_T)
38.
Re:変数の使用方法
2004年01月08日(木) 06時42分
ふぇむ
>どういうことをやりたいかと、いいますと、バッチの中で
>callで別のバッチを呼びます。別のバッチとはsetで変数に
>パスなどの値をいれています。元のバッチに戻ったときにその変数に
>代入したパスを使いたいのですが
> 「指定されたファイルが見つかりません。」と怒られてしまいます。

ちょっと情報不足です。スクリプトのコアな部分も抜粋したりして、もう少し具体的にやろうとしていることを説明くださいませ。
41.
Re2:変数の使用方法
2004年01月08日(木) 09時54分
ジニービーチ
>ちょっと情報不足です。スクリプトのコアな部分も抜粋したりして、もう少し具体的にやろうとしていることを説明くださいませ。

すみません。あんな文じゃわかりずらいですよね。
下記にやりたいことを簡単にではありますが抜き出します。
mainバッチ
copy c:\a.txt c:\test\xxx.txt
call sub.bat
copy %WORK_HOME%\all.dat %DAT_HOME$\all.dat

subバッチ
set COM_HOME  = c:\test
set WORK_HOME = c:\test1
set SQL_HOME  = c:\test2
set LOG_HOME  = c:\test3
set DAT_HOME  = c:\test4

と、こんな感じなのですが、メインの方での変数の
記述の仕方がおかしいのでしょうか?
42.
Re3:変数の使用方法
2004年01月08日(木) 10時35分
じゃく
>mainバッチ
>copy c:\a.txt c:\test\xxx.txt
>call sub.bat
>copy %WORK_HOME%\all.dat %DAT_HOME$\all.dat
ここの、%DAT_HOME$\all.dat は %DAT_HOME%\all.dat のタイプミスかな?



>subバッチ
>set COM_HOME  = c:\test
>set WORK_HOME = c:\test1
>set SQL_HOME  = c:\test2
>set LOG_HOME  = c:\test3
>set DAT_HOME  = c:\test4

OSをWindows 2000/XP 系と仮定しますが、set 文の"="の前後の空白はそのまま「あるもの」として認識されます。

>set COM_HOME  = c:\test
set WORK_HOME=c:\test1
set SQL_HOME=c:\test2
set LOG_HOME=c:\test3
set DAT_HOME=c:\test4

このように空白をつめて記述するようにするか、参照先で
%WORK_HOME % のように空白も含めて"%"でくくるかいずれかで
試してみてください。
43.
Re4:変数の使用方法
2004年01月08日(木) 11時12分
ジニービーチ
>>copy %WORK_HOME%\all.dat %DAT_HOME$\all.dat
>ここの、%DAT_HOME$\all.dat は %DAT_HOME%\all.dat のタイプミスかな?
確かに・・・。すみましぇん。

>OSをWindows 2000/XP 系と仮定しますが、set 文の"="の前後の空白はそのまま「あるもの」として認識されます。

>>set COM_HOME  = c:\test
>set WORK_HOME=c:\test1
>set SQL_HOME=c:\test2
>set LOG_HOME=c:\test3
>set DAT_HOME=c:\test4

>このように空白をつめて記述するようにするか、参照先で
>%WORK_HOME % のように空白も含めて"%"でくくるかいずれかで
>試してみてください。

試してみました!!上手く行きました!!!!
ありがとうございます。
ちなみに、unixのsetenvと同じことをバッチのsetで出来るのでしょうか?setenvは環境変数を設定しているみたいですが・・。
最初の質問でじゃくさんに回答いただいた、変数(COM_HOMEとか)は環境変数として使われているわけではないんですよね?
44.
Re5:変数の使用方法
2004年01月08日(木) 11時58分
じゃく
>ちなみに、unixのsetenvと同じことをバッチのsetで出来るのでしょうか?setenvは環境変数を設定しているみたいですが・・。
>最初の質問でじゃくさんに回答いただいた、変数(COM_HOMEとか)は環境変数として使われているわけではないんですよね?

環境変数として使われているのです。
set /? でコマンドプロンプトのset コマンドのヘルプをご覧下さい。

以下に抜粋を転記しておきます。
C:\>set /?
cmd.exe 環境変数を表示、設定、または削除します。

SET [変数名=[文字列]]

  変数名   環境変数名を指定します。
  文字列   変数に割り当てる文字列を指定します。

現在の環境変数を表示するには、パラメータを指定せずに SET と入力してください。
(以下省略)
 
 


カテゴリー「SET, PATH, %環境変数%」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年01月07日 11:10に投稿されたエントリーのページです。

ひとつ前の投稿は「バッチファイル実行結果がリダイレクト出来ない」です。

次の投稿は「unixのshellのWindowsバッチへの変換がうまくいかない」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート