我看不到生成的随机数
我写了这个脚本来组合更多的html文件。我使用随机函数的一部分。我看到一个奇怪的东西......我看不到生成的随机数
@echo on
pause
CD "C:\Documents and Settings\Mauro\Documenti\Firme\ProvaMerge\"
pause
for %%i in (Pasqualino,Mauro) DO (
pause
ECHO %%i
pause
type Parti_Standard\StrutturaTabella_1parte.txt > %%i.html
pause
type utenti\%%i.html >> %%i.html
pause
type Parti_Standard\StrutturaTabella_2parte.txt >>%%i.html
:loop
set /a photo=%random% %% 3 + 1
ECHO RANDOM
ECHO %random% %%PHOTO
TYPE Immagini\%photo%.txt >> %%i.html
pause
type Parti_Standard\StrutturaTabella_3parte.txt >> %%i.html
type Firme_Standard\"Firma Inox Pack.html" >> %%i.html
)
pause
全部是确定的,但我没有看到%photo%
变量...我试图与%%photo
或%photo%
,但我只获得一个空的变量。相反,首先要改进该脚本的复杂性,我在没有for循环的情况下使用它...并且它工作正常。
@echo on
CD "C:\Documents and Settings\Mauro\Documenti\Firme\ProvaMerge\"
type Parti_Standard\StrutturaTabella_1parte.txt >new.html
type mauro.html >> new.html
type Parti_Standard\StrutturaTabella_2parte.txt >>new.html
:loop
set /a photo=%random% %% 3 + 1
echo %%photo
pause
TYPE Immagini\%photo%.txt >> new.html
type Parti_Standard\StrutturaTabella_3parte.txt >> new.html
type Firme_Standard\"Firma Inox Pack.html" >>new.html
pause
为什么?
在一个代码块(例如for循环)中,您需要delayed expansion
。例如,这不起作用:
@echo off&setlocal
(
set /a photo=%random% %% 3 + 1
echo %photo%
)
..而这个工程:
@echo off&setlocal enabledelayedexpansion
(
set /a photo=!random! %% 3 + 1
echo !photo!
)
这必须ASO被用来写入文件:
TYPE Immagini\!photo!.txt >> %%i.html
我把!也在类型中......当我尝试使用“echo!photo!”时我看到书面回声!照片!而不是生成的数字。然后也“type!photo!.txt而不是1.txt或2或3 ...我按任意键,脚本继续,我看到生成的文件的名称,然后我再次按,只有现在我可以看到生成的数字..但它已经太晚,包括采取...我不能发布图像,让你明白... ma parli italiano? – 2013-04-24 08:43:39
命令'setlocal enabledelayedexpansion'丢失! – Endoro 2013-04-24 08:46:03
现在确定它的工作!谢谢!!
@echooff
pause
CD "C:\Documents and Settings\Mauro\Documenti\Firme\ProvaMerge\"
for %%i in (Pasqualino,Mauro) DO (
for %%g in ("Firma Inox Pack","Firma Mail Arca Cucine") Do (
pause
ECHO "%%i %%g".html
type Parti_Standard\StrutturaTabella_1parte.txt > Firme_Composte\%%i\"%%i %%g".html
type utenti\%%i.html >> Firme_Composte\%%i\"%%i %%g".html
type Parti_Standard\StrutturaTabella_2parte.txt >> Firme_Composte\%%i\"%%i %%g".html
pause
setlocal enabledelayedexpansion
(
set /a n=!random! %% 3 + 1
echo !n!
)
TYPE Immagini\!n!.txt >> Firme_Composte\%%i\"%%i %%g".html
pause
type Parti_Standard\StrutturaTabella_3parte.txt >> Firme_Composte\%%i\"%%i %%g".html
type Firme_Standard\%%g.html >> Firme_Composte\%%i\"%%i %%g".html
)
)
我不明白对不起?我尝试了只有一个%,但它是一样的... – 2013-04-23 16:34:36
您是否尝试过使用EnableDelayedExpansion并使用!照片!为你的变量? – 2013-04-23 16:42:57
查看我的回答/ expample。 – Endoro 2013-04-23 16:48:47