【问题标题】:Batch: Output file names with relative paths to files and additional signs批处理:输出文件名以及文件的相对路径和附加符号
【发布时间】:2013-06-03 21:10:03
【问题描述】:

我有一个这样的文件夹结构:

  • c:/foo/bar1/a002345.vi
  • c:/foo/bar1/somefilename.vi
  • c:/foo/bar2/b005632.vi
  • ...
  • c:/foo/bar26/z002345.vi

现在我想在文件夹 c:/foo/ 中执行一个批处理文件,它将以下输出写入 .txt 文件:

@@/bar1/a002345.vi
@@/bar2/b005632.vi
@@/bar26/z002345.vi

(没有 somefile.vi)最优雅的方法是什么?

【问题讨论】:

  • 您可以使用 findfindstr 和 /v 开关来过滤掉文件名。

标签: file batch-file path relative-path names


【解决方案1】:

您能否具体说明您将如何区分“somefile.vi”,它不包含任何数字,或者您知道它的个人名称吗?

如果是后者,我相信如果从 C:\foo 文件夹运行,这应该可以工作

for /r %%a in (*) do (if %%~na NEQ somefile echo %%~pa%%~na%%~xa >> output.txt)

注意,您将得到“\foo\bar...”而不是“@@\bar...” 如果有多个文件要排除简单的嵌套更多 if 命令:

for /r %%a in (*) do (if %%~na NEQ somefile1 if %%~na NEQ somefile2 if %%~na NEQ somefile3 echo %%~pa%%~na%%~xa >> output.txt)

等等.... 我在我的电脑上试过了,效果很好。

你的,莫娜

【讨论】:

  • 谢谢,这也适用于我,节省了我很多时间!但有时我有更多文件,如“somefile.vi”。它们可以是多个文件,但它们的文件名中从不包含数字。你也有解决这个问题的办法吗?像只用于数字的通配符?
  • 就我在批处理脚本方面的知识而言,只有数字没有通配符,因为处理数字的每个单词的唯一方法是如果它们在单独的行上,唯一的我可以建议创建一个迷你脚本,显示文件的名称,并要求输入,如“y”或“n”,并根据输入决定是否应将路径+名称+扩展名回显到输出中.txt
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 2011-05-26
  • 2012-09-29
相关资源
最近更新 更多