如何将复制文件划分为优先级以复制不同的文件



我试图构建一种方法来在窗口中自动创建文件夹结构,自动放弃作业编号和他们需要多少部件。 我能够使代码运行到我在包含部分的文件夹中制作主文件夹、子文件夹和子文件夹的程度。 然而,我想做的事情是根据优先级将不同的部分转移到每个文件夹中

最多有 7 个优先级,需要除以多少个部分,因此示例将有 4 个部分具有 4 个优先级。.(在此示例代码中,它创建销售文件夹,然后在其下方放置一个名为 conveyors 的文件夹,然后在传送带文件夹中放置 4 个带有数字的文件夹) id 像这样根据优先级数将四个不同的部分放在四个不同的文件夹中)

尝试潜水优先级,但这不起作用,因为我无法理解如何存储数组来执行 IM 要求的操作

powershell
$salesorder = read-host -prompt 'What is the customer name and salesorder number? (ex.. turnkey - 3335)'
$jobnumber = read-host -prompt 'what is the Plant folder plus job number? (ex... 930-12345)' 
$foldername = $jobnumber + " - " +  $salesorder 
#$conveyornumber = read-host -prompt "what is the number for conveyors? " + " - "
$priority = read-host -prompt "how many priorities are there?"


##************************* setting variables for second level basic Folder Structure *********************************
$partpath = '\wal-filepublicsullivansully_temp_part.ipt'
$layout = 'D0100 - Layout'
$footprint = 'D0101 - Footprint'
$equipment = 'D01xx - Equipment'
$Guarding = 'D85xx - Guarding'
$conveyor = 'D60xx - Conveyors'
$platform = 'D90xx - Platforms'
#*************************** creating new variables based on folder name stylings *************************************
$workdir = new-item -path "C:vault_workspaceTemp_vaultwendt" -name $foldername -itemtype 'directory' -force
$layoutdir = new-item -path $workdir -name $layout -itemtype 'directory'
$layoutfilename = $layoutdir -join '.ipt'

#*************************** setting work directory input **************************************************************

new-item -path $layoutdir -name "$salesorder.ipt" -itemtype "file"
$footprintdir = new-item -path $workdir -name $footprint -itemtype 'directory'

$conveyordir = new-item -path $workdir -name $conveyor -itemtype 'directory'

#looping statement to create multiple folders 
$conveyorinput = read-host -prompt "how many conveyors need to be made?"
for ($i = 1; $i -le $conveyorinput; $i++){"{0:D2}" -f $number} { [system.io.directory]::CreateDirectory("$conveyordirD51$I")}
start-sleep -seconds 5 
#creating multiple files 
$conveyorarray = Get-ChildItem $conveyordir | Where-Object {$_.PSChildname} |  Foreach-Object {$_.Name}
foreach ($path in $conveyorarray) {copy-item -path $partpath -destination "$conveyordir$path$jobnumber-4-$path-DUmmy-A0.ipt "}

我尝试了一些事情,结果好坏参半,这里没有接近我想要的 D.我尝试了 Goodling 它,但我找不到一种方法来实现任何接近我要求某种形式的 If 语句可能会做的事情,但是我会把它放在哪里,它将如何工作?

感谢您的任何帮助

这只是一个建议,您能否考虑添加函数以使代码可读。我看不出你想要什么。如果您需要查看Write-Host发生了什么,您还可以用输出来填充它吗?我不知道什么是污垢样本或它与此有何关系,所以我猜它是一个文件夹还是一个 ipt 文件?我无法读取代码代码的可读性,因为它除了创建目录之外,我无法传达您的意图?如果你能省略"污秽样本"语言并使用小部件,我想我们可以更好地理解它。比如我需要 4 个小部件文件供 4 个人查看?

# powershell
$salesorder = read-host -prompt 'What is the customer name and salesorder number? (ex.. turnkey - 3335)'
$jobnumber = read-host -prompt 'what is the Plant folder plus job number? (ex... 930-12345)' 
$foldername = $jobnumber + " - " +  $salesorder 
#$conveyornumber = read-host -prompt "what is the number for conveyors? " + " - "
$priority = read-host -prompt "how many priorities are there?"


##************************* setting variables for second level basic Folder Structure *********************************
# Dunno what this file is or how it got here?
$partpath = '\wal-filepublicsullivansully_temp_part.ipt'
$layout = 'D0100 - Layout'
$footprint = 'D0101 - Footprint'
$equipment = 'D01xx - Equipment' #Are these meant to be numbers or x character?
$Guarding = 'D85xx - Guarding'
$conveyor = 'D60xx - Conveyors'
$platform = 'D90xx - Platforms'
#*************************** creating new variables based on folder name stylings *************************************
$folderArray = @() # of things you want to keep track of
function CreateNewFolder() { 
param( 
$path = "C:vault_workspaceTemp_vaultwendt",
$name = $foldername,
[switch] $force
)
$newDirectory = new-item -path $path -name $name -itemtype 'directory' -force:$force
Write-Host "Adding $name to FolderArray"
$folderArray.Add($newDirectory)
return $newDirectory 
}
$workdir = CreateNewFolder -path "C:vault_workspaceTemp_vaultwendt" -name $foldername -force
#$workdir = new-item -path "C:vault_workspaceTemp_vaultwendt" -name $foldername -itemtype 'directory' -force
$layoutdir = CreateNewFolder -path $workdir -name $layout 
#$layoutdir = new-item -path $workdir -name $layout -itemtype 'directory'
$layoutfilename = $layoutdir -join '.ipt' # Why are we joining the directory to ipt?

#*************************** setting work directory input **************************************************************

new-item -path $layoutdir -name "$salesorder.ipt" -itemtype "file"
#$footprintdir = new-item -path $workdir -name $footprint -itemtype 'directory'
$footprintdir = CreateNewFolder -path $workdir -name $footprint 

$conveyordir = new-item -path $workdir -name $conveyor -itemtype 'directory'

#looping statement to create multiple folders 
$conveyorinput = read-host -prompt "how many conveyors need to be made?"
for ($i = 1; $i -le $conveyorinput; $i++){
# This just gets printed out?
"{0:D2}" -f $number
} 
{ 
[system.io.directory]::CreateDirectory("$conveyordirD51$I")
}
start-sleep -seconds 5 
#creating multiple files 
$conveyorarray = Get-ChildItem $conveyordir | Where-Object {
$_.PSChildname
} |  Foreach-Object { 
@{ 
Name = $_.Name
FullName = $_.FullName
}
}
foreach ($path in $conveyorarray) {
$name = $_.Name
$fullName = $_.Name
$destination = '{0}{1}{2}-4-{3}-Dummy-A0.ipt' -f $conveyordir, $name, $jobnumber, $path
copy-item -path $fullName -destination $destination # "$conveyordir$path$jobnumber-4-$path-DUmmy-A0.ipt "
}

所以我实际上完全改变了suyntax,但我能够执行以下操作

$salesorder = read-host -prompt 'What is the customer name and salesorder number? (ex.. turnkey - 3335)'
$jobnumber = read-host -prompt 'what is the Plant folder plus job number? (ex... 930-12345)'
$topleveldir = new-item -path "C:vault_workspaceTemp_vaultwendt" -name "M$jobnumber - $salesorder" -ItemType 'directory'
$subfolders = "D0100 - Layout", "D0101 - Footprint", "D01xx - Equipment","D85xx - Guarding", "D60xx - Conveyors", "D90xx - Platforms", "D09XX - Chutes"
foreach($subfolder in $subfolders){new-item -path "$topleveldir" -name $subfolder -type directory }
#$partpath = '\wal-filepublicsullivansully_temp_part.ipt'    
#p1
$p1conveyorinput = read-host -prompt "how many p1 conveyors need to be made?"
for ($i = 1; $i -le $p1conveyorinput; $i++) { 
$p1c = "{0:D2}" -f $i
[system.io.directory]::CreateDirectory("$topleveldirD60xx - ConveyorsD61$p1c-p1")
copy-item -path "\wal-filepublicsullivansully_temp_part.ipt" -destination "$topleveldirD60xx - ConveyorsD61$p1c-p1D61$p1c-p1-dummy.ipt" -force
}
start-sleep -seconds 1

我遇到的唯一问题是如何循环回最后一条语句

#p1
$p1conveyorinput = read-host -prompt "how many p1 conveyors need to be made?"
for ($i = 1; $i -le $p1conveyorinput; $i++) { 
$p1c = "{0:D2}" -f $i
[system.io.directory]::CreateDirectory("$topleveldirD60xx - ConveyorsD61$p1c-p1")
copy-item -path "\wal-filepublicsullivansully_temp_part.ipt" -destination "$topleveldirD60xx - ConveyorsD61$p1c-p1D61$p1c-p1-dummy.ipt" -force
}
start-sleep -seconds 1

对于尽可能多的优先级,无需复制和更改变量(我现在将这样做,因为它起作用)

最新更新