2016-07-11 4 views
0

実行時に文字列変数を表示しないバッチスクリプトがあります。私は別のファイルを使用してこのスクリプトを実行するとバッチスクリプトで変数が表示されない

@ECHO OFF 
color 0c 
set /a Copyed = 1 
set /a File = %random% 
set /a Origin = %~z1 
set /a End = 0 
set /a OSize = %~z1 
if %~z1 LEQ 999 (
    set /a Size = %~z1 
    set Z="Bytes" 
) 
if %OSize% GEQ 1000 (
    set /a OSize /= 1000 
    set /a OEnd += 1 
) 
if %OSize% GEQ 1000 (
    set /a OSize /= 1000 
    set /a OEnd += 1 
) 
if %OSize% GEQ 1000 (
    set /a OSize /= 1000 
    set /a OEnd += 1 
) 
if %OSize% GEQ 1000 (
    set /a OSize /= 1000 
    set /a OEnd += 1 
) 
if OEnd == 1 (set OZ="KB") 
if OEnd == 2 (set OZ="MB") 
if OEnd == 3 (set OZ="GB") 
if OEnd == 4 (set OZ="TB") 
echo ::::::::::::::::::::::: > %File% 
echo ::::::::::::::::::::::: 
echo Original File "%1" Has A Size Of %OSize% %OZ% >> %File% 
echo Original File "%1" Has A Size Of %OSize% %OZ% 
pause 

私が手:

::::::::::::::::::::::: 
    Original File ""P:\Virus Testing\Fill.txt"" Has A Size Of 536 

あなたがそれらのいずれを見ることができるように表示します。

::::::::::::::::::::::: 
Original File ""P:\Virus Testing\Fill.txt"" Has A Size Of 536 
Press any key to continue . . . 

ファイルでは、私はこれが取得作成します可変%OZ%。これをどうやって解決するのですか?あなたは、あなたがバイトのためにOZの記述子を必要OEnd、ないEnd

set /a OEnd = 0 

を初期化する必要が

:おかげで、事前に

+0

'セットZ =「バイト」が' 'OZ =「バイト」を'に設定する必要がありますか。 – TessellatingHeckler

+0

'OEnd'に1を加え続けますが、上で宣言して初期化した変数は' End'です。 –

+0

「IF」のスペースをなくしてください。 'OEnd 'は ' 1 'になることはほとんどありません。 –

答えて

0

は、スクリプト内のいくつかのバグ

if %OEnd% == 1 (set OZ="KB") 
if %OEnd% == 2 (set OZ="MB") 
if %OEnd% == 3 (set OZ="GB") 
if %OEnd% == 4 (set OZ="TB") 
+0

ありがとうございました –

0

をお試しください〜のようなもの

if %OEnd% == 0 (set OZ=Bytes) 

そして、他のチェックのそれぞれは、それ自体に名前を付け、OEndの値ではなくチェックする必要があります。

if %OEnd% == 1 (set OZ=KB) 
if %OEnd% == 2 (set OZ=MB) 
if %OEnd% == 3 (set OZ=GB) 
if %OEnd% == 4 (set OZ=TB) 
+0

ありがとう、私は変更を加えました –

関連する問題