2016-05-05 14 views
3

変数に膨大な数のSETを持つファイルを使用しています。特定の行の後、それらのセットは動作していません。変数の数に制限があるようですが、それは正しいのですか?その制限を避ける方法はありますか?Windowsバッチの最大変数数

ありがとうございます。

+1

これはあなたが持っているRAMの量に依存すると思います... – npocmaka

+0

私はそれを確認します、ありがとう! –

+0

私はあなたのコードに推論を提案します。 varsの限界は十分に広いので、あなたのコードが最大許容値を下回るようにするための方法があるはずです – Drako

答えて

0

ここには2つの制限があります。最初は、cmd.exeコマンドラインの最大長に課せられた1つの変数に対する制限です。 2番目は、現在のシステムでは32キロビット程度の環境の合計サイズです。詳細については、https://blogs.msdn.microsoft.com/oldnewthing/20100203-00/?p=15083を参照してください。

+1

32 KiBの制限はWindows XP私は思うが、Windows Vista以降は*適用されなくなりました!コマンドラインの長さ、ひいては変数値の長さはWindows XPから8 KiBに制限されており、以前のWindowsバージョンでは2 KiBでした... – aschipfl

+2

Windows XPには32 KiBの制限はありません[コマンドシェルの概要](https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_shelloverview.mspx?mfr=true)を参照してください。 Windows XPのこの記事では、__note__の下に「個々の環境変数の最大サイズは8192バイトです。」および「変数名と等号を含むすべての変数の最大合計環境変数サイズは65,536 KBです。」すべての環境変数のメモリ制限は64 MiB(= 65536 KiB)です。 RaúlGarcíaがこの制限を超えていると思います。 – Mofi

+0

[コマンドライン文字列の最大長](http://stackoverflow.com/questions/3205027/)も参照してください。 – Mofi