I have a script that duplicates a Word doc template and renames each using a csv file with a list of names. What would be the equivalent code if instead of a csv file I use a text file?

Import-csv ‘.\individuals2.csv’ | foreach-object {
	$newname = ‘2 ‘ + $_.name + '.docx’
	Copy-item '.\template.docx' $newname
}

What’s the format of the text file?

It’s just a Notepad text file.

The confusion is that CSV is also just a Notepad text file that uses Commas to Separate Values.

They are asking about what kind of values are in it.

His example doesn’t seem to perform any comparisons to determine what to name the file. If the text file is just a list then something like this could work:

$file = Get-Content -Path .\individuals2.txt

foreach ($line in $file) { Copy-Item -Path .\template.docx -Destination “.$(2 + $line + ‘.docs’)” }

Edit: Wow, Lemmy destroys formatting.

It’s markdown, you should be able to indent your lines by 4 spaces or fence with triple backtics to get code blocks. Your client’s editor may have a button to help

```
$file = Get-Content -Path .\individuals2.txt

foreach ($line in $file)
{
    Copy-Item -Path .\template.docx -Destination ".\$(2 + $line + '.docs')"
}
```

Becomes

$file = Get-Content -Path .\individuals2.txt

foreach ($line in $file)
{
    Copy-Item -Path .\template.docx -Destination ".\$(2 + $line + '.docs')"
}

That’s good to know. Thanks!

Create a post

All things programming and coding related. Subcommunity of Technology.


This community’s icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

  • 1 user online
  • 7 users / day
  • 7 users / week
  • 14 users / month
  • 121 users / 6 months
  • 1 subscriber
  • 296 Posts
  • 2.15K Comments
  • Modlog