windows - 根据列表重命名文件
问题描述
可用的方法,AFAIK:在 Windows 7 上创建一个 *.bat 文件来完成这项工作。无法安装任何其他程序。
假设我们有一个包含一些文件的文件夹。我有一个列表,其中每个文件,取决于它们的文件名,都与一个 ID 相关联。
现在我需要根据该列表将这些文件复制到以关联 ID 作为文件名的地方。
例子:
文件夹中的文件:
10.txt 11.txt 12.txt
名单:
10 83 11 49 12 94
结果应该是:
10.txt → 83.txt 11.txt → 49.txt 12.txt → 94.txt
解决方案
您的问题没有指定是否要对所有文件、特定文件或者您的列表文件是否也包含文件的扩展名,因此我将仅使用您的示例:
@echo off
for /f "tokens=1,*" %%i in (list.txt) do (
if exist "%%i.txt" %%j copy /Y "%%i.txt" "%%j.txt"
)
您可能想要添加/Y
以禁止提示覆盖文件。但是,如果您不想覆盖并且可能在稍后阶段源文件的内容可能需要附加到现有的新文件,那么您可以检查目标文件的存在然后附加:
@echo off
for /f "tokens=1,*" %%i in (list.txt) do (
if exist "%%i.txt" if not exist "%%j.txt copy "%%i.txt" "%%j.txt"
if exist "%%j.txt" type "%%i.txt">>"%%j.txt"
)
推荐阅读
- python - 试图理解python中计数数字的代码
- prometheus - helm values.yaml 中的 alerting_rules.yml
- android - 是否可以在 Android Studio 中重命名模拟器?
- python - app = xlwings.App(visible=False) 引发错误 pywintypes.com_error: (-2147352567
- google-cloud-platform - gsutil 创建用于上传的签名 URL - 404 错误
- rust - 如何从 rust async_trait 上的异步方法返回简单类型?
- simulation - 改变焊接接头姿势
- java - JShell 在启动时抛出 StringIndexOutOfBoundsException
- c# - 对 Microsoft DeviceWatcher.Stop 方法感到困惑
- vue.js - (Vue) 我无法让现有数据显示在编辑表单中