我需要重命名许多包含名称和徽章编号的文件。
文件如下所示:“John Doe 1234.txt”,我必须将其重命名为 1234.txt
(新文件必须仅包含徽章编号)。
徽章编号也不是固定的,它可以包含 3-4 个数字。
更新:文件名包含 2-3 个用空格分隔的名称。例如:“John Doe 123.txt”或“John Junior Doe 1234.txt”
我想删除名称中的所有字母和空格,只保留数字,但我不知道 Powershell 足够好。
谁能帮我吗?
我需要重命名许多包含名称和徽章编号的文件。
文件如下所示:“John Doe 1234.txt”,我必须将其重命名为 1234.txt
(新文件必须仅包含徽章编号)。
徽章编号也不是固定的,它可以包含 3-4 个数字。
更新:文件名包含 2-3 个用空格分隔的名称。例如:“John Doe 123.txt”或“John Junior Doe 1234.txt”
我想删除名称中的所有字母和空格,只保留数字,但我不知道 Powershell 足够好。
谁能帮我吗?
假设所有文件名的格式为“First Last Number.txt
你可以运行:
更改第一行以匹配您的路径。(粘贴整个片段并按两次回车键)
文件名不能包含特殊字符(代码现在是万无一失的。/\:*?"<>|
),但可以包含诸如%
和之类的字符,!
这会导致cmd.exe
误解,因此代码不是万无一失的。截屏:
注意:最多只能处理 31 个文件,因为我的假设是错误的。它可以处理无限的文件,因为配对SETLOCAL
SETLOCAL
和ENDLOCAL
.电源外壳:
根据需要编辑$Source。“ -WhatIf ”参数意味着可以运行发布的代码来验证是否找到了所需的文件并且 NewName 是正确的。删除“ -WhatIf ”参数以实际重命名文件。
假设所有输入文件都以空格结尾,然后至少有一个数字,这看起来像是另一种完成这项工作的方法。它不检查重复号码。[咧嘴笑]
它能做什么 ...
我总是对破坏原始文件感到不安,所以这会复制它们而不是重命名它们。如果您想直接执行此操作,请将 替换
Copy-Item
为Rename-Item
。当您准备好实际操作时, 创建一些测试目录和文件会删除整个区域。
.BaseName
props 不以空格和至少一位数字结尾的 文件.Basename
空格并抓取结果中的最后一项.Extension
道具添加到上面-PassThru
在线将Copy-Item
“创建文件”信息发送到屏幕编码 ...
您可以使用以下方法对批处理文件执行此操作。
无论开头有多少个字母和空格,这都会起作用。
您无需创建额外的 temp.log 文件来执行此任务,也无需担心文件名中的非数字字符...
如果您
U N I C O D E
要这样做,请在循环中进行过滤for
,并且仅从文件名中获取数字输出,可以通过以下方式完成:1)
cmd /u
将echo\string
逐个字符命名2)将在循环中仅
findstr [0-9]
获得变量编号!_n!
%%~n
3)使用变量通过仅连接输出数字
!_n!
来增加%%~n
字符对于命令行帮助,您可以使用
/?
:在互联网上,您可以获得更多帮助:
流行音乐
寻找
推送
在哪里
对于 /f
查找
暂停
设置本地
本地化
任 / 重命名
转到:EOF
启用延迟扩展
If, Else If, Else, If defined, Errorlevel ...
对不起我有限的英语