Начиная с Windows 7 вы можете сделать это в одной строке PowerShell.
powershell -C "gci | % {rni $_.Name ($_.Name -replace '120x90', '67x100')}"
Объяснение
powershell -C "..."
запускает сеанс PowerShell для запуска команды в кавычках. Возвращается к внешней оболочке после завершения команды. -C
это сокращение от -Command
.
gci
возвращает все файлы в текущем каталоге. Это псевдоним для Get-ChildItem
.
| % {...}
создает конвейер для обработки каждого файла. %
является псевдонимом для Foreach-Object
.
$_.Name
- имя текущего файла в конвейере.
($_.Name -replace '120x90', '67x100')
использует оператор -replace
для создания нового имени файла. Каждое вхождение первой подстроки заменяется второй подстрокой.
rni
меняет имя каждого файла. Первый параметр (называемый -Path
) идентифицирует файл. Второй параметр (называемый -NewName
) указывает новое имя. rni
является псевдонимом для Переименовать-Item .
* * Пример 1 040 * +1041 *
$ dir
Volume in drive C has no label.
Volume Serial Number is A817-E7CA
Directory of C:\fakedir\test
11/09/2013 16:57 <DIR> .
11/09/2013 16:57 <DIR> ..
11/09/2013 16:56 0 750_MOT_Forgiving_120x90.jpg
11/09/2013 16:57 0 751_MOT_Persecution_1_120x90.jpg
11/09/2013 16:57 0 752_MOT_Persecution_2_120x90.jpg
3 File(s) 0 bytes
2 Dir(s) 243,816,271,872 bytes free
$ powershell -C "gci | % {rni $_.Name ($_.Name -replace '120x90', '67x100')}"
$ dir
Volume in drive C has no label.
Volume Serial Number is A817-E7CA
Directory of C:\fakedir\test
11/09/2013 16:57 <DIR> .
11/09/2013 16:57 <DIR> ..
11/09/2013 16:56 0 750_MOT_Forgiving_67x100.jpg
11/09/2013 16:57 0 751_MOT_Persecution_1_67x100.jpg
11/09/2013 16:57 0 752_MOT_Persecution_2_67x100.jpg
3 File(s) 0 bytes
2 Dir(s) 243,816,271,872 bytes free