【问题标题】:Batch create files containing the name of the folder in which they are located and other data批量创建包含它们所在文件夹名称和其他数据的文件
【发布时间】:2020-03-03 12:09:45
【问题描述】:

我有一个网络驱动器(本地映射),其中存储了我组织的每个用户的备份(超过 2000 个)。 树是这种形式:

  • 用户名0001\存档
  • ...
  • 用户名0456\存档
  • ...
  • 用户名0789\存档
  • ...
  • username2000\存档

我想从批处理脚本中,在我的用户的每个备份文件夹中创建一个名为“backup.conf”的文件,其中包含 2 行:

[用户名] >> 第一行

ArchivePath=archive >> 第二行

[  ]之间使用真实的用户名

您对可能导致这种情况的代码有任何想法吗?

我尝试了以下批处理脚本:

cd mynetworkmappeddriveletter: (e.g. X:)
for /d %%a in (*) do (echo %%a > %%a\backup.conf)

如何在第二行和[]之间添加用户名?

感谢您的帮助。

【问题讨论】:

  • 您好,请查看本指南how to ask good questions。显示您尝试过的一些代码。 Stack Overflow 不是编码服务。除此之外,grep 命令可能是您搜索的良好开端
  • 您的标题包含 bash,但您将问题标记为 windows batch-file。你应该知道你在用什么
  • 我已经编辑了我的标题。
  • 网络驱动器会映射到本地的驱动器号吗?对于您提供的 username0456\archive 示例,文件是否应包含 On 第一行 [username0456] 和第二行 ArchivePath=archive ?请编辑您的问题以显示更清晰的示例。
  • 是的,网络驱动器被映射到本地驱动器号。

标签: windows batch-file


【解决方案1】:

没有足够的代表发表评论。 这里有一些来自初级的代码的想法:)

  1. 列出目录名称(dir)
admin
tech
user1
user2
user3
voucher
  1. 添加过滤器以仅获取用户的文件夹名称
user1
user2
user3
  1. 将输出存储在文本文件中:f.txt data is
user1
user2
user3
  1. 我猜你已经知道用户的文件夹在哪里,所以应该知道路径。所以将它存储在一个变量中 "c:\mypath\"
  2. 对于文本文件中的每一行,(在特定位置创建一个包含您想要的内容的文件
For user1, 
  echo "[user1]" > backup.conf
  echo "ArchivePath=c:\mypath\user1\archive" > backup.conf
For user2,
  ...
For user3,
  ...

它可能包含批处理语法错误,因为我不是专家,但这是我将开始使用的基本方法。

【讨论】:

    【解决方案2】:

    我尝试了以下批处理脚本:

    cd mynetworkmappeddriveletter: (e.g. X:)
    for /d %%a in (*) do (echo %%a > %%a\backup.conf)
    

    如何添加第二行ArchivePath=archive,并在用户名之间添加[ ]

    【讨论】:

      猜你喜欢
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多