Это мой первый вопрос здесь, и я новичок в powershell.
У меня есть папка $home\Devoluciones\
с несколькими файлами с именами DtoXXXYYYYMM.dat, где XXX — номер компании, YYYY — текущий год, а MM — текущий месяц.
Что мне нужно сделать, так это скопировать эти файлы в папки с номером компании, например, если у меня есть Dto509201506.dat и Dto908201506.dat, мне нужно скопировать эти файлы в $destination\509\
и $destination\908\
соответственно.
До сих пор у меня есть следующий код:
#List the items and send to a.txt
ls $home\Devoluciones\Dto*.dat | select -exp Name > $home\a.txt
#From a.txt keep first 6 characters and send to b.txt
Get-Content $home\a.txt | foreach {$_.remove(6)} | Add-Content $home\b.txt
#From b.txt replace Dto with "" and send to c.txt
Get-Content $home\b.txt | foreach {$_ -replace "Dto",""} | Add-Content $home\c.txt
#From c.txt copy the files to destination
Get-Content $home\c.txt | foreach {copy-item $home\Devoluciones\*$_*.dat $Destination\$_\}
#Clean temp files
Remove-Item -ErrorAction Ignore $home\a.txt -Force
Remove-Item -ErrorAction Ignore $home\b.txt -Force
Remove-Item -ErrorAction Ignore $home\c.txt -Force
Я хотел бы добиться того же результата, сделав его «чище», чем это, я хочу научиться манипулировать строкой в одной строке и, если возможно, скопировать все с помощью одной команды.
Спасибо, Нестор.