Получить первые две строки каждого имени файла в каталоге как текстовый файл
Мне нужно очистить строки как здесь (где я читаю в группе имен изображений), где я хочу только первые две строки (в настоящее время я использую, в строке Windows 7 cmd - dir /a/b/p > textfile.текст):
- Acaena inermis no barbs 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
- Копросма Тайко
- Cortaderia richardii
- Анемантела Урок
- Myosotidium hort
Есть ли способ, используя cmd или batch, чтобы упростить это? Обычно каждый раз я делаю 15 файлов. Я вряд ли гуру линии CMD!
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
)
)
Ресурсы (требуется чтение):
- (справочник по командам) Индекс AZ командной строки Windows CMD
- (дополнительные особенности) Синтаксис командной строки Windows CMD Shell
- (
%~ng
и т.д. специальная страница) Аргументы командной строки (параметры) - (
>
,2>1
и т. д. специальная страница) Перенаправление
Загрузите бесплатный текстовый редактор Notepad++
Откройте свой текстовый файл.
Нажмите CTRL-H, чтобы открыть диалог поиска и замены.
Внизу слева проверьте Regular Expression
В Find: введите ^(.+?[ ].+?)[ ].+$
Заменить: введите $1
Этот код будет предполагать, что после 2-го слова присутствует пробел. Если там есть другой символ, такой как _ или - замените второй [ ] на [ _-] (перечисляя любой из имеющихся символов). Имейте в виду, что если у вас есть эта текстовая часть в качестве слова, она будет обрезана там при других поисках.