BobTheDestroyer

joined 7 months ago
[–] [email protected] 1 points 7 months ago

Thanks for your help, but I had a couple errors pop up when I tried this out. I don't need to input anything in the code you provided, do I?

Cannot convert value "VALUE" to type "System.Int32". Error: "Input string was not in a correct format."
At line:4 char:55
+ ... py-Item -Path .\template.docx -Destination ".\$(2 + $line + '.docs')"
+                                                     ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvalidCastFromStringToInteger

Copy-Item : Cannot overwrite the item FILENAME with itself.
At line:4 char:5
+     Copy-Item -Path .\template.docx -Destination ".\$(2 + $line + '.d ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (FILENAME) [Copy-Item], IOException
    + FullyQualifiedErrorId : CopyError,Microsoft.PowerShell.Commands.CopyItemCommand
[–] [email protected] 1 points 7 months ago

Just words? It's a list of names.

[–] [email protected] 1 points 7 months ago

Oh I see. I thought only .txt files are text files.

I was trying to adjust the code so that it uses a .txt file instead of a .csv file.

[–] [email protected] 1 points 7 months ago (2 children)

It's just a Notepad text file.

 

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
}
[–] [email protected] 1 points 7 months ago

By the way, what would be the equivalent code when using a text file for the list of names rather than a csv file?

[–] [email protected] 1 points 7 months ago

Ah, I think that was it. Forgot about the column heading. Thanks for your help!

[–] [email protected] 1 points 7 months ago* (last edited 7 months ago)

Just figured it out! Added '.pdf' in the second half of the command.

$names = cat "\path\to\names.txt"; $i=0; dir | % { ren $_ "$($names[$i]).pdf"; $i++ }

Thanks for all your help!

[–] [email protected] 1 points 7 months ago* (last edited 7 months ago) (2 children)

So it sort of worked in that it outputed a bunch of files with the names but with blank icons and not the Adobe icons. Powershell also had an error for each list item that looked like the following:

Rename-Item : Cannot bind argument to parameter 'NewName' because it is an empty string.
At line:1 char:86
+ ... ads\individuals.txt"; $i=0; dir | % { ren $_ "$($names[$i])"; $i++ }
+                                                   ~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Rename-Item], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.Rena
   meItemCommand

Maybe the command needs '.pdf' somewhere?

[–] [email protected] 1 points 7 months ago (3 children)

Hey this worked for me yesterday but now I'm having trouble getting it to work again. It just outputs a Word doc titled '.docx' now.

[–] [email protected] 1 points 7 months ago (4 children)

It manages to output one file titled 'name; 0++'

[–] [email protected] 1 points 7 months ago (1 children)

Actually they're all different files.

[–] [email protected] 1 points 7 months ago (3 children)

I see. Any suggestions on how to correct it?

11
submitted 7 months ago* (last edited 7 months ago) by [email protected] to c/powershell
 

Note: I'm a beginner to Powershell and a bit more familiar with Bash (though still a beginner for that too).

*I have multiple PDF files and I want to rename each file based on a list of names found in an Excel/CSV (could be a text file if easier) file.

*The list begins at the A2 cell and the A1 cell has the header 'name'.

*The files are in sequential order and match the order of the list of names.

Thanks for your help!

 

I'm a beginner to Powershell and CLI in general, but this task does not need to use either so I'm open to using other tools.

I'm trying to do the following:

  1. Create multiple files from a Word template.
  2. Rename each file based on a list of names found in an Excel/CSV sheet.

Thanks in advance!

view more: next ›