切换文件名的一部分


1

我有大量的pdf文件,它们的格式均为“ [something] somethingelse”。

如何切换第一部分和最后部分以实现“某物[something]”?

例如(之前和之后):

[P. Morandi] Field and Galois Theory
Field and Galois Theory [P. Morandi]

[D. S. Bridges] Foundations of Real and Abstract Analysis
Foundations of Real and Abstract Analysis [D. S. Bridges] 

[J. G. Ratcliffe] Foundations of Hyperbolic Manifolds
Foundations of Hyperbolic Manifolds [J. G. Ratcliffe]

[R. E. Edwards] Fourier Series - A Modern Introduction Volume 1
Fourier Series - A Modern Introduction Volume 1 [R. E. Edwards]

[B. Bollobás] Graph Theory - An Introductory Course
Graph Theory - An Introductory Course [B. Bollobás]

请为您的操作系统添加标签。
dirkt

请注意,superuser.com不是免费的脚本/代码编写服务。如果您告诉我们到目前为止您已经尝试过什么(包括您已经在使用的脚本/代码)以及您遇到的困难,那么我们可以尝试解决特定的问题。您还应该阅读如何问一个好问题?
DavidPostill

@DavidPostill我根本不是一名程序员,所以除了以我希望的方式手动剪切和粘贴文件名之外,我无法提供任何尝试。这样的任务看起来应该很简单,可以自动化,但是我自己无法提供任何此类代码。
不定期的用户

请在示例名称之前和之后添加一些名称,我将为您提供帮助。
DavidPostill

1
晚饭很
开心

Answers:


2

如何切换第一部分和结束部分?

例如(之前和之后):

[P. Morandi] Field and Galois Theory.pdf
Field and Galois Theory [P. Morandi].pdf

使用以下批处理文件(test.cmd):

@echo off 
setlocal enabledelayedexpansion
for /f "usebackq delims=] tokens=1,2" %%a in (`dir /b *.pdf`) do (
  rem %%b is end part of name and will become 1st part
  rem remove extension
  set _first=%%~nb
  rem remove leading space
  set _first=!_first:~1!
  ren "%%a]%%b" "!_first! %%a].pdf"
  )
endlocal  

笔记:

  • 使用问题中的前两个示例文件名进行了测试。

用法示例:

> dir *.pdf
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test

02/10/2016  19:43                 0 [D. S. Bridges] Foundations of Real and Abstract Analysis.pdf
02/10/2016  19:42                 0 [P. Morandi] Field and Galois Theory.pdf
               2 File(s)              0 bytes
               0 Dir(s)  1,733,769,015,296 bytes free

> test

> dir *.pdf
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test

02/10/2016  19:42                 0 Field and Galois Theory [P. Morandi].pdf
02/10/2016  19:43                 0 Foundations of Real and Abstract Analysis [D. S. Bridges].pdf
               2 File(s)              0 bytes
               0 Dir(s)  1,733,769,015,296 bytes free

进一步阅读

  • Windows CMD命令行的AZ索引 -Windows cmd行相关的所有内容的出色参考。
  • dir-显示文件和子文件夹的列表。
  • / f-针对另一个命令的结果循环命令。
  • 参数 -命令行参数(或参数)是传递到批处理脚本中的任何值。
  • ren-重命名一个或多个文件。
  • 变量 -提取变量的一部分(子字符串)。

太好了,谢谢!它可以完美地工作(除了使用非英语字符(例如š)的作者,但这种情况很少见,可以手动完成)。进一步的阅读部分对这个答案<插入一些关于教人钓鱼的说法>来说是一个巨大的收获。
不定期的用户

@IrregularUser您可以通过使用正确的代码页来修复奇数字符(我对此没有太多经验)。请参阅chcp-更改活动的控制台代码页。默认代码页由Windows区域设置确定。
DavidPostill
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.