【发布时间】:2019-03-18 18:59:24
【问题描述】:
问题
我正在编写一个 bat 脚本,它应该能够从 Z:/Demo/Text 等位置读取 1000 个文本文件,并且在读取存储的值后,该脚本能够重命名 Z 处存在的相应 pdf 文件:/演示/PDF。文本文件按以下方式命名和读取:SomeDate_Part1.txt、SomeDate_Part2.txt....
PDF文件具有相同的属性,只是文件扩展名不同。
重命名逻辑:
如果 SomeDate_Part1.txt 文件中存储的值为 AAA,则对应的 PDF 文件 SomeDate_Part1.pdf 应重命名为 CGI1_filename.pdf,如果存储的值为 BBB,则应重命名为 CGI2_filename.pdf。
我写了几行,就可以成功地从文件夹中读取所有文本文件。我写的代码是:
@echo off
for %%x in (\Demo\Text\*.txt) do (
for /f "usebackq delims=" %%a in ("%%~fx") do (
if "%%a"=="AAA" echo %%a
if "%%a"=="BBB" echo %%a
)
)
pause
我该如何解决剩下的问题?
【问题讨论】:
-
我不明白你的“重命名逻辑”。如果存储在 .txt 文件中的 line 是 ZZZ,则相应的 .pdf 文件应该重命名为 CGI26.pdf?这个“逻辑”只给出了 26 个不同的名称,因此您可以不使用它来重命名 1000 个文件...
-
那么是什么阻止您将
echo %%a更改为您要使用的重命名命令? -
@Aacini 只有两个可能的存储值 AAA 或 BBB,它不遵循字母顺序。
-
Squashman- 由于我不熟悉批处理文件,我无法写下程序将转到 PDF 文件夹并遍历每个文件并重命名的代码
-
生成的文件名应该是
CGI1_SomeDate_Part1.pdf还是CGI2_SomeDate_Part1.pdf?
标签: batch-file cmd windows-7