Войти

Показать полную графическую версию : [решено] Переименование файлов с заменой символов по маске


Страниц : 1 2 [3]

Iska
30-09-2014, 05:15
WSH:
Option Explicit

Dim strSourceFolder

Dim objFSO
Dim objFile

Dim strFormatCurrDate


strSourceFolder = "E:\Песочница\0399"

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

If objFSO.FolderExists(strSourceFolder) Then
strFormatCurrDate = Right("00" & CStr(Month(Date())), 2) & Right("00" & CStr(Day(Date())), 2)

With WScript.CreateObject("VBScript.RegExp")
.IgnoreCase = True
.Pattern = "(.*#)(.*)(#.*\.txt)"

For Each objFile In objFSO.GetFolder(strSourceFolder).Files
If .Test(objFile.Name) Then
objFile.Name = Replace(.Replace(objFile.Name, "$1" & ":" & "$3"), ":", strFormatCurrDate)
End If
Next
End With
Else
WScript.Echo "Can't find source folder [" & strSourceFolder & "]."
WScript.Quit 1
End If

Set objFSO = Nothing

WScript.Quit 0

PoSH:
$sSourceFolder = "E:\Песочница\0399"
$sMask = "(.*#)(.*)(#.*\.txt)"

if(Test-Path -Path $sSourceFolder -PathType Container) {
$sFormatCurrDate = Get-Date -Format "MMdd"

Get-ChildItem -Path $sSourceFolder |`
ForEach-Object -Process {
if(!$_.PSIsContainer) {
if($_.Name -match $sMask) {
Rename-Item -Path $_.FullName -NewName ($_.Name -replace $sMask, '$1:$3').replace(":", $sFormatCurrDate)
}
}
}
} else {
Write-Host "Can't find source folder [$sSourceFolder]." -ForegroundColor Red
}
CMD:
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=E:\Песочница\0399

if exist "%sSourceFolder%\." (
call :GetFormatDateTime

pushd "%sSourceFolder%"

for /f "usebackq delims=" %%i in (
`2^>nul dir /b /a:-d "%sSourceFolder%\*.*" ^| findstr.exe ".*#.*#.*\.txt"`
) do (
set sOldName=%%~i
call :GetNewName "!sOldName:#=" "!"
ren "%%~i" "!NewName!"
)

popd
) else (
echo Can't find source folder [%sSourceFolder%].
exit /b 1
)

endlocal
exit /b 0
rem ==========================================================================

rem ==========================================================================
:GetNewName
setlocal enableextensions enabledelayedexpansion

set sProcName=%~0

endlocal & set %sProcName:~4%=%~1#%FormatDateTime%#%~3
exit /b 0
rem ==========================================================================

rem ==========================================================================
rem Функция GetFormatDateTime()
rem
rem Серый форум (http://forum.script-coding.com)
rem ==========================================================================
:GetFormatDateTime
setlocal enableextensions enabledelayedexpansion

set sProcName=%~0
for /f "delims=." %%i in ('wmic.exe OS get LocalDateTime ^| find "."') do set sDateTime=%%i

endlocal & set %sProcName:~4%=%sDateTime:~4,4%
exit /b 0
rem ==========================================================================

DonQuixote
29-03-2016, 03:40
доброй ночи..
мне тоже надо по маске символы переименовать но выходит как то криво.
вот:

имеються 2 или больше файла
appliedenergistics2-rv3-beta-5.jar
appliedenergistics2-rv2-stable-10.jar
я их переименовываю так
rename "%BINDIR%appliedenergistics2-rv3-*.jar" "2_6_appliedenergistics2-rv3-*.jar"
rename "%BINDIR%appliedenergistics2-rv2-*.jar" "2_6_appliedenergistics2-rv2-*.jar"
а получаеться это
2_6_appliedenergistics2-rv2-le-10.jar
2_6_appliedenergistics2-rv3--5.jar
куда то теряются 4 символа полсе знака -
должно быть так
2_6_appliedenergistics2-rv2-stable-10.jar
2_6_appliedenergistics2-rv3-beta-5.jar
%BINDIR% путь к паке где лежит батник и файлы
в идеале мне надо что бы bat находил фйал по шаблону "appliedenergistics2*.jar" или такому "GTTweaker-1*.jar и
добавлял в начале имени например 2_6_ и любое другое по моему выбору а имя целеком не трогал
но заметил что символы между - . и первой точкой в имени исчезают
например как тут 1_0_galacticgreg-0.7.jar
rename "%BINDIR%galacticgreg-0*.jar" "1_0_galacticgreg-0*.jar"
0 теряется по этому я его дописал выше -0
@echo on
SET BINDIR=%~dp0
CD /D "%BINDIR%"
set poi1=jar*
set poi2=zip*
set poi3=litemod*
set Rnam=INFO_
rename "%BINDIR%CraftGuide-1*.jar" "%Rnam%GUI_S_CraftGuide-1*.jar"
rename "%BINDIR%LLOverlayReloaded-1*.jar" "%Rnam%GUI_LLOverlayReloaded-1*.jar"
rename "%BINDIR%IC2.Nei.Plugin.Version*.jar" "%Rnam%GUI_3_S_IC2.Nei.Plugin.Version*.jar"
@echo on
SET BINDIR=%~dp0
CD /D "%BINDIR%"
set poi1=jar*
set poi2=zip*
set poi3=litemod*
rem RM
for /f "tokens=*" %%a in ('dir /b "%BINDIR%ElectriCraft 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%2_RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%ReactorCraft 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%2_RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%RotaryCraft 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%2_RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%ChromatiCraft 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%3_RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%ExpandedRedstone 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%8_RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%UsefulTNT 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%8_RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%DragonAPI 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%0EXT_LIB_RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%LegacyCraft 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%0_RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%CaveControl 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%GEN_RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%GeoStrata 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%GEN_RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%TerritoryZone 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%GUI_S_RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%CritterPet 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%MOB_RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%VoidMonster 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%MOB_RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%CondensedOres 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%RM_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%MeteorCraft 1*.jar"') do ren "%BINDIR%%%a" "%Rnam%RM_%%a"
set Rnam=INFO_
for /f "tokens=*" %%a in ('dir /b "%BINDIR%CraftGuide-1*.jar"') do ren "%BINDIR%%%a" "%Rnam%GUI_S_%%a"
for /f "tokens=*" %%a in ('dir /b "%BINDIR%LLOverlayReloaded-1*.jar"') do ren "%BINDIR%%%a" "%Rnam%GUI_%%a"




© OSzone.net 2001-2012