Я ищу скрипт для удаления символа # из любых имен файлов в определенном каталоге (PDF документы).
Я смотрел на несколько подобных примеров, но все это немного сбивает с толку!
Я ищу скрипт для удаления символа # из любых имен файлов в определенном каталоге (PDF документы).
Я смотрел на несколько подобных примеров, но все это немного сбивает с толку!
Это 2013 год, вы должны использовать PowerShell:
Get-ChildItem | Where-Object {$_.Name -match '#'} | ForEach-Object { Rename-Item -Path $_.Name -NewName $($_.Name -Replace "#", "") -WhatIf }
Перейдите к соответствующему каталогу и выполните строку. Он находит все файлы с # и затем переименовывает каждый из них. Удалите «-Whatif» для фактического выполнения операции.
Более короткая версия, использующая псевдонимы и значения по умолчанию:
ls | ? {$_.Name -match "#"} | ForEach { rni $_.Name $($_.Name -Replace "#", "")}
Как минимум, длинная версия кажется мне более читаемой, чем пакетный синтаксис 1980-х годов. Единственная загадочная часть здесь - это $ .Имя ',' $ 'в PowerShell относится к текущему объекту в цикле. Здесь во всех случаях к текущему файлу. Поскольку нам нужно выражение для параметра -NewName, мы должны заключить его в $()
@echo off &setlocal
cd /d c:\users\data
for /f "delims=" %%a in ('dir /b /a-d *#*.pdf') do (
set "fname=%%~a"
setlocal enabledelayedexpansion
set "nname=!fname:#=!"
ren "!fname!" "!nname!"
endlocal
)