将 pdf 文件从递归数字字符串重命名为来自相同 .html (http link) 或 .txt 文件的原始名称

Rename pdf files from recursive numeric strings into original name from same .html (http link) or .txt file

我从HERE

下载了一些pdf文件

PDF 文件不是使用原始文件名而是通过数字字符串下载的,例如

1610.00005
1610.00022

幸运的是在这个 HTTP link 页面或 txt 文件中(如果我复制用于离线重命名)我有亲戚

numeric -> original text filename

字符串对应
例如当我下载这个文件时

- A Note on Time Operators in Relativistic Quantum Mechanics
- A Stronger Theorem Against Macro-realism
- Determining quantum correlations in bipartite systems - from qubit to qutrit and beyond
- Pair entanglement in dimerized spin-s chains

使用此文件名下载文件

1610.00005.pdf
1610.00022.pdf
1610.00041.pdf
1610.00056.pdf

但我想重命名为原始文件名而不是数字字符串 我想为路径

设置一个 http link 或文本文件

我只有这个代码

(powershell)

$names = Get-Content c\myfiles
Get-ChildItem C:\somedir\*.pdf | Sort -desc | 
    Foreach {$i=0} {Rename-Item $_ ($_.basename + $names[$i++] + $_.extension) -WhatIf}

批号

@echo off
setlocal EnableDelayedExpansion

rem Load the list of authors:
set i=0
for /F %%a in (myfiles.txt) do (
   set /A i+=1
   set "author[!i!]=%%a"
)

rem Do the rename:
set i=0
for /F %%a in ('dir /b *.pdf') do (
   set /A i+=1
   for %%i in (!i!) do ren "%%a" "%%~Na!author[%%i]!%%~Xa"
)
#All PDFs | Rename { query Arxiv for the abstract by filename, use the page title + ".pdf"}

Get-ChildItem *.pdf | Rename-Item -NewName { 
    $title = (Invoke-WebRequest "https://arxiv.org/abs/$($_.BaseName)").parsedhtml.title
    $title = $title -replace '[\/:\*\?"<>\|]', '-'       # replace forbidden characters
    "$title.pdf"                                          # in filenames with -
}

您可能想先在末尾添加一个 -whatif,看看它会做什么,以防它破坏所有文件名。或者备份该文件夹。

编辑:其中一个标题是 "Signatures of bifurcation on quantum correlations: Case of quantum kicked top",文件名中不允许使用 :。编辑脚本以将 Windows 文件名中的所有禁用字符替换为破折号。