CMDシェルを台無しにするために何をしましたか? Windows XP Pro、cmdウィンドウを開いて次を実行:
C:\>set tt = name
C:\>set tt
tt = name
C:\>echo %tt%
%tt%
C:\>echo %time%
14:13:28.67
何らかの理由でechoコマンドが機能しません。組み込み変数をうまくエコーできます。別のコンピューターで試してみましたが、期待どおりに機能します
set
コマンドはスペースを取りません。適切な構文は次のとおりです。
set tt=name
この例では、環境変数tt<space>
を設定しています。それを念頭に置いて、これを試すことができます:
echo %tt%
そしてあなたの出力を見てください。
等しい間にスペースを入れずに変数を設定してみましたか? (tt = nameを設定)
ここで最も賛成された答えは、はるか以前に受け入れられており、
「
set
コマンドはスペースを取りません。」
しかし、それは正しくありません。_%tt %
_変数は実際に機能します。設定および参照できます。 (それにもかかわらずは混乱します。)
確かに、私のWin7では:
_C:\>set os
OS=Windows_NT
C:\>set tt = name
C:\>set tt2= name
C:\>set tt3=name
C:\>set tt
tt = name
tt2= name
tt3=name
_
私は試してみました:
_C:\>echo "%os%"
"Windows_NT"
C:\>echo "%tt3%"
"name"
C:\>echo "%tt2%"
" name"
C:\>echo "%tt%"
"%tt%"
_
直感的に期待される変数_%tt%
_が設定されていません。 ただし、代わりに_%tt %
_が設定されます:
_C:\>echo "%tt %"
" name"
_
さらに、値の末尾にスペースを入れると、_set tt4 = name
_:
_C:\>echo "%tt4 %"
" name "
_
set
コマンドはtrim()
を実行しません:
var_name
_に含まれています。var_value
_に含まれます。var_value
_の末尾のスペースが含まれます。一方:
var_name
_の先頭のスペースは含まれていません。これは、一般的なコマンドライン引数ではかなり正常です。