首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >powershell: For循环只循环一次,而不是多次

powershell: For循环只循环一次,而不是多次
EN

Stack Overflow用户
提问于 2021-07-26 15:08:45
回答 1查看 19关注 0票数 0

我读入了一个包含多行信息的csv文件,但我的代码只执行csv内容的第一行。如果我只是想用write-host $dataFilesJS把它打印出来

它可以很好地处理csv文件中的所有内容。但是如果我想执行其他代码,它只需要循环一次。

我的源码:

代码语言:javascript
运行
复制
$CSV= Import-Csv \\test\test.csv -Delimiter ';'

$csvFiles = $CSV 

$csvFiles.Count

for($i=0;$i -lt $csvFiles.count;$i++){

$filepathpdf = $csvFiles.filePathPdf[$i]

$filepathattachments = $csvFiles.filePathAttachments[$i]

$dataFilesJS= $csvFiles.dataFilesJS[$i]

$jsonFile= $csvFiles.jsonFile[$i]

$destinationFolderSave=$csvFiles.destinationFolderSave[$i]

$kategorieName=$csvFiles.kategorieName[$i]

New-Item -Path $destinationFolderSave -ItemType Directory

$foldersaves="\_#_"

$sidepaths = New-Object System.Collections.Generic.List[System.Object]
$sidepathsAttachments= New-Object System.Collections.Generic.List[System.Object]

$children = Get-ChildItem $filepathpdf


$childrenAttachments= Get-ChildItem $filepathattachments


$childrensss = Get-ChildItem $filepathpdf/$children
$childrensssAttachments = Get-ChildItem $filepathattachments/$childrenAttachments


for($i=0;$i -le $childrensss.count;$i++){

$sidepaths.add($childrensss[$i])

}


for($i=0;$i -le $childrensssAttachments.count;$i++){

$sidepathsAttachments.add($childrensssAttachments[$i])

}

write-host $sidepathsAttachments

 
for($i=0;$i -lt $childrensss.count;$i++){
$childrenpath= $filepathpdf+"/"+$children+"/"+$sidepaths[$i]

$pdfchildren = Get-ChildItem $childrenpath
write-host $pdfchildren

Copy-Item $childrenpath/*  -Destination $destinationFolderSave -Recurse -force

}

}
EN

回答 1

Stack Overflow用户

发布于 2021-07-26 16:01:20

这个方法对我很有效:

代码语言:javascript
运行
复制
$CSV= Import-Csv \\test\test.csv -Delimiter ';'

$csvFiles = $CSV 

$csvFiles.Count

foreach($i in $csvFiles){

$filepathpdf = $i.filePathPdf

$filepathattachments = $i.filePathAttachments

$dataFilesJS= $i.dataFilesJS

$jsonFile= $i.jsonFile

$destinationFolderSave=$i.destinationFolderSave

$kategorieName=$i.kategorieName

New-Item -Path $destinationFolderSave -ItemType Directory

$foldersaves="\_#_"

$sidepaths = New-Object System.Collections.Generic.List[System.Object]
$sidepathsAttachments= New-Object System.Collections.Generic.List[System.Object]

$children = Get-ChildItem $filepathpdf


$childrenAttachments= Get-ChildItem $filepathattachments


$childrensss = Get-ChildItem $filepathpdf/$children
$childrensssAttachments = Get-ChildItem $filepathattachments/$childrenAttachments


for($i=0;$i -le $childrensss.count;$i++){

$sidepaths.add($childrensss[$i])

}


for($i=0;$i -le $childrensssAttachments.count;$i++){

$sidepathsAttachments.add($childrensssAttachments[$i])

}

write-host $sidepathsAttachments

 
for($i=0;$i -lt $childrensss.count;$i++){
$childrenpath= $filepathpdf+"/"+$children+"/"+$sidepaths[$i]

$pdfchildren = Get-ChildItem $childrenpath
write-host $pdfchildren

Copy-Item $childrenpath/*  -Destination $destinationFolderSave -Recurse -force

}

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68525757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档