batch-file - 取文件名的一部分,复制到文件中
问题描述
我正在寻找一种(批量)解决方案将文件名的一部分复制到文本文件中。所有文件(数千个)都在一个目录中,修改后的文件应该转到另一个目录(比如说 c:\tmp )。
这些文件被称为:
0001_Songtitle1.txt
0002_Songtitle2.txt
0003_Songtitle3.txt
前导数字始终是 4 位数字,以 a 结尾_
,而 Songtitle 可以有不同的长度。我希望将数字(前四位)复制到每个文件的第一行,格式如下:
(对于第一个文件)SongID:0001
(对于第二个文件)SongID:0002
(对于第三个文件)SongID:0003
有人有想法吗?
我试过这段代码:
@echo off
for %%I in (*.txt) do (
echo %%~nI>"%TEMP%\FileName.tmp"
echo/>>"%TEMP%\FileName.tmp"
copy /B "%TEMP%\FileName.tmp" + "%%~I" "%%~I.tmp">nul
del "%%~I"
ren "%%~I.tmp" "%%~nxI"
)
del "%TEMP%\FileName.tmp" 2>nul
它将完整的文件名(不带 .txt)发送到第一行。但我很难只提取前四位数字。
谢谢,拉尔夫
解决方案
这是我要插入的地方:
@echo off
for %%I in (????_*.txt) do (
for /f "tokens=1 delims=_" %%J in ("%%~nxI") do (
>"temp.tmp" echo SongID:%%J
>>"temp.tmp" echo/
copy /B "temp.tmp" + "%%~I" "%%~I.tmp">nul
move /y "%%~I.tmp" "%%~nxI" >nul
)
)
del "temp.tmp" 2>nul
为了可读性和小的改进,我自由地稍微更改了您的代码。
推荐阅读
- php - imap_open() 返回什么样的数据
- javascript - 如何将我的 axios 对象的 Cookies.get 包装到异步中
- datetime - Flutter - 如何在年、月和日中找到两个日期之间的差异?
- javascript - 完成加载后页面无法加载我的脚本模块
- spring-amqp - Spring AmqpAdmin 在 vHost 中创建交换和队列
- python - 如何使用 Amazon Textract 以同步方式分析 PDF 文档?
- javascript - JavaScript 中幻灯片放映的问题
- google-api - 删除 client_secret 的访问权限?
- arrays - 重用 VBA 数组
- python - Django根据表单选择重定向到不同的URL