-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

すべて問題ありませんが、変数が表示されません... or%photo%を試しましたが、null 変数しか取得できません。最初にそのスクリプトの複雑さを改善する代わりに、for ループなしで使用していました...そして、正常に動作します。%%photo%photo%

@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

なんで?

4

2 に答える 2

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

これは、ファイルへの書き込みにも使用する必要があります。

TYPE Immagini\!photo!.txt >> %%i.html
于 2013-04-23T16:44:44.887 に答える
0

OK今それは動作します! ありがとうございました!!

@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-24T09:45:40.510 に答える