Пакет переименовывает расширения файла, включая подкаталоги

lsof -i -n -P дает вам для каждого соединения процесс и конечные точки ...

13
задан Alan Haggai Alavi 22 June 2009 в 15:20
поделиться

5 ответов

@echo off
for /f "tokens=* delims= " %%i in ('dir /b/s/A-d') DO (
  if "%%~xi" == "" rename "%%~fi" "%%~ni.bla"
)

Спасибо @Wadih M. Найти и переименовать файлы без расширения?

4
ответ дан 1 December 2019 в 23:48
поделиться

, это позволит вам вводить каталоги с пробелами в именах. (обратите внимание, что двойной% предназначен для командных файлов, используйте одиночный% для командных строк.)

 for /f "tokens=* delims= " %%a in ('dir /b /ad /s') do rename "%%a\*." "*.bla"
2
ответ дан 1 December 2019 в 23:48
поделиться

Вы можете использовать для для перебора подкаталогов:

for /d %x in (*) do pushd %x & ren *. *.bla & popd

При использовании из пакетного файла вам нужно будет удвоить знаки % :

for /d %%x in (*) do pushd %%x & ren *. *.bla & popd
1
ответ дан 1 December 2019 в 23:48
поделиться

Вы можете легко сделать это и многое другое с помощью модуля Perl File :: Find .

#!perl

use strict;
use warnings;
use File::Find;

my $extension = 'bla';
my $directory = '/tmp/test';

print "Files renamed:\n";
find( \&wanted, $directory );

sub wanted {
    return if /\./;
    return unless -f $File::Find::name;

    if ( rename( $File::Find::name, "$File::Find::name.$extension" ) ) {
        print "    $File::Find::name -> $File::Find::name.$extension\n";
    }
    else {
        print "    Error: $! - $File::Find::name\n";
    }
}
2
ответ дан 1 December 2019 в 23:48
поделиться

Попробуйте это

for /R c:\temp %I in (*. ) DO Echo rename %I "%~nI.bla"
1
ответ дан 1 December 2019 в 23:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: