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!

  • BobTheDestroyerOP
    link
    fedilink
    arrow-up
    1
    ·
    9 months ago

    Thanks but I’m getting a ‘Cannot create a file when that file already exists.’ error. I checked the path so I am certain it is correct.

    • d3Xt3r@lemmy.nz
      link
      fedilink
      arrow-up
      2
      ·
      9 months ago

      That means there’s a duplicate entry, check the full error message for the file name. You can also use the -Verbose switch to see what’s going on.

        • d3Xt3r@lemmy.nz
          link
          fedilink
          arrow-up
          2
          ·
          9 months ago

          Ah, I misplaced a quote in my code, I’ve update the post - try version.

          • BobTheDestroyerOP
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            9 months ago

            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?

            • d3Xt3r@lemmy.nz
              link
              fedilink
              arrow-up
              3
              ·
              9 months ago

              Well yeah, you need the full name of the file. PowerShell will not automatically asumme the extension of a file.

              Also that empty string error means there’s a blank line somewhere in your input list, so you’ll need to get rid of that.

              • BobTheDestroyerOP
                link
                fedilink
                arrow-up
                1
                ·
                edit-2
                9 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!