Opcje zmiany nazwy partii MS Dos Batch


0

Mam kilka plików, takich jak:

f0110_01_online.png

f0122_01_01_online.png

f0122_0201_online.png

W każdej nazwie pliku znajduje się wspólny tekst „_online”.

Chcę po prostu usunąć „_online” z każdego pliku za pomocą tylko jednego wiersza programu w pliku .bat, ponieważ za każdym razem zmienia się nazwa pliku i liczba plików.

Próbuję:

ren * _online.png * .png

ale to nie działa.

Proszę zasugerować właściwy sposób, aby to zrobić w pliku wsadowym

Odpowiedzi:


1

Być może zainteresuje Cię odpowiedź na pytanie, w jaki sposób polecenie Windows RENAME interpretuje symbole wieloznaczne?

Niestety, sama komenda REN nie może dać pożądanego rezultatu. Możesz wyeliminować onlineza pomocą ren *_online.png *_.png, ale eliminacja tego _jest niemożliwa przy pomocy samego polecenia REN.

Najprostszym rozwiązaniem wykorzystującym polecenia rodzime jest mały plik wsadowy:

@echo off
setlocal enableDelayedExpansion
for /f "eol=: delims=" %%F in ('dir /b *_online.png') do (
  set "file=%%F"
  ren "!file!" "!file:~0,-11!.png"
)

W mało prawdopodobnym przypadku, gdy masz nazwy plików zawierające !znak, potrzebujesz:

@echo off
setlocal disableDelayedExpansion
for /f "eol=: delims=" %%F in ('dir /b *_online.png') do (
  set "file=%%F"
  setlocal enableDelayedExpansion
  ren "!file!" "!file:~0,-11!.png"
  endlocal
)

Link to prawie za dużo! Zdecydowanie przeczytaj „Jak komenda Windows RENAME (REN) interpretuje symbole wieloznaczne?” Autorstwa dbenham. Zwróć uwagę na przykład pytania i wynikową odpowiedź, która zakłada stały tekst dołączany na końcu.
BillR

0

Nie wiem jak korzystać z pliku wsadowego. Ale mam prosty sposób na zaspokojenie twojego zapotrzebowania. Możesz użyć Total Commander i narzędzia Multi Rename Tool, połączyć z opcją regex, aby masowo zmienić nazwę pliku, który chcesz. Mam nadzieję, że ta wskazówka może ci pomóc

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.