获取目录中每个文件名的前两个字符串作为txt文件


2

我需要清理像这样的字符串(我在一组图像名称中读取),其中我只想要前两个字符串(目前我正在使用,在Windows 7 cmd行 - dir / a / b / p> TextFile.txt的):

  • Acaena inermis没有倒钩dbot_25Dec15_40.JPG
  • Coprosma Taiko PB121944 invbot.rs.JPG
  • Cortaderia richardii InvBot P6260038.JPG
  • Anemanthele lessoniana LIC.nestmaker.CC BY-SA 2.0.jpg
  • Myosotidium hort ibot PB109882 sqr rs.JPG

看起来像这样(单词空格词和剥离其余):

  • Acaena inermis
  • Coprosma Taiko
  • Cortaderia richardii
  • Anemanthele lessoniana
  • 肌肉萎缩

有没有办法使用cmd或批处理来简化这个?通常每次执行此操作时都会解析15个文件。我不是一个cmd-line大师!


只是为了澄清事情,您是否希望将文件重命名为字空间字?没有扩展甚至?
LPChip


其中一个答案列出了PowerGrep,它似乎也取代了文件中的正则表达式。这是你可能想要使用的,或使用像Notepad ++这样的东西你可以在文本文件中使用正则表达式查找/替换。
LPChip

非常感谢LPChip,明天我会看看这些并回到这里
nigelc

您能告诉我们您使用批处理文件尝试了什么吗?
Dave

Answers:


2

从命令行尝试这个:

for /F "tokens=*" %g in (textfile.txt) do @for /F "tokens=1,2" %G in ("%~ng") do @if not "%H"=="" echo(%G %H

或从头开始

for /F "tokens=*" %g in ('dir /A/B/S') do @for /F "tokens=1,2" %G in ("%~ng") do @if not "%H"=="" echo(%G %H

你需要加倍 % %登录 for 循环变量名称在批处理文件中,如下所示:

@echo OFF
for /F "tokens=*" %%g in (textfile.txt) do (
    for /F "tokens=1,2" %%G in ("%%~ng") do if not "%%H"=="" echo(%%G %%H
)

要么

@echo OFF
for /F "tokens=*" %%g in ('dir /A/B/S') do (
    for /F "tokens=1,2" %%G in ("%%~ng") do if not "%%H"=="" echo(%%G %%H
)

将输出重定向到纯文本文件 taxons.txt (另外注意 () 括弧:

>taxons.txt (for /F "tokens=*" %g in ('dir /A/B/S') do @for /F "tokens=1,2" %G in ("%~ng") do @if not "%H"=="" echo(%G %H)

或者在批处理脚本中:

@echo OFF
>taxons.txt (
for /F "tokens=*" %%g in ('dir /A/B/S') do (
    for /F "tokens=1,2" %%G in ("%%~ng") do @if not "%%H"=="" echo(%%G %%H
)
)

资源 (必读):


非常感谢JosephZ,这可能每天节省我半小时!并且它在cmd开始时完成所有操作。我使用了“从头开始”行并添加了>> textfile2.txt
nigelc

图形结果 - [链接]( i.imgur.com/nZS7HEi.jpg)_italic_ 胆大 code
nigelc

1

下载名为Notepad ++的自由文本编辑器

打开文本文件。

按CTRL-H打开查找和替换对话框。

在左下角,检查 Regular Expression

在查找:输入 ^(.+?[ ].+?)[ ].+$ 在替换中:输入 $1

此代码将假定在第二个单词后面存在空格。如果那里有另一个char,例如_或 - 用[_-]替换第二个[](列出所有的char)。请记住,如果您将此文本部分作为单词,它将在其他搜索中切断。


谢谢你给我一个简单的N ++正则表达介绍
nigelc
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.