2013-04-23 67 views
-1

我写了这个脚本来组合更多的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 

为什么?

+0

我不明白对不起?我尝试了只有一个%,但它是一样的... – 2013-04-23 16:34:36

+0

您是否尝试过使用EnableDelayedExpansion并使用!照片!为你的变量? – 2013-04-23 16:42:57

+0

查看我的回答/ expample。 – Endoro 2013-04-23 16:48:47

回答

0

在一个代码块(例如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 
+0

我把!也在类型中......当我尝试使用“echo!photo!”时我看到书面回声!照片!而不是生成的数字。然后也“type!photo!.txt而不是1.txt或2或3 ...我按任意键,脚本继续,我看到生成的文件的名称,然后我再次按,只有现在我可以看到生成的数字..但它已经太晚,包括采取...我不能发布图像,让你明白... ma parli italiano? – 2013-04-24 08:43:39

+0

命令'setlocal enabledelayedexpansion'丢失! – Endoro 2013-04-24 08:46:03

0

现在确定它的工作!谢谢!!

@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 
) 
)