2013-12-08 37 views
0

我试图建立50000 *。html的不同的内容(标题,meta描述,和帧链接)这一切都在CSV一个CSV不同的代码创建多个htm文件基于CSV

有这些列(城,TITULO,descripcion,链接)

$file = "C:\Users\Victor\Desktop\web\full.csv" 
$homepath = "C:\Users\Victor\Desktop\web\html" 
Import-CSV $file | ForEach-Object {New-Item -ItemType file -Path $homepath -name ($_.ciudad + '.htm')} | foreach-object {add-content $_ @" 
<title>$_.titulo</title> 

<meta name="keywords" content="$_.ciudad photos"> 
<meta name="description" content=" $_.descripcion "> "@} 

的文件与HTML code..but在HTML代码中的变量产生不正确

回答

0

您需要两个结合的foreach - 对象合并为一个:

Import-CSV $file | ForEach-Object { 
    $newFile = New-Item -ItemType file -Path $homepath -name ($_.ciudad + '.htm')} 
    add-content $newFile @" 
    <title>$_.titulo</title> 
"@ 
} 

随着代码的写入,第二个foreach对象将获取每个新文件作为$ _,而不是从CSV文件获取记录。

我没有尝试运行此代码,因此它可能有语法错误或其他逻辑错误。

+0

Thanks..but not work fine。 in $ _。titulo包括 @ {link = http://www.xxx.com; TITULO = XXX; descripcion =完整描述; ciudad = m – user3080377

+0

运行这个并发布结果:'Import-CSV $ file | select -first 5' –

+1

尝试 $($ _。titulo) Antony