Jump to content

Bat Dosya Işlemleri - Yardım Isteği


TosunPASA
 Share

Recommended Posts

Merhaba

 

bat ile bazı işlemler yapmak yaptırmak istiyorum

 

 

1)  misal : d:\Belgelerim dizin ve altındaki dosya isimlerindeki Türkçe karekterleri değiştirtmek

               başka OS lara veya DVD ye Yedekleme işlemi yaptırmadan önce dosya isimlerindeki Türkçe karekterler yerine  karşılığı olan harfleri koymak.. Ş yerine S; ş yerine de s; İ yerine I gibi

bu arada tabiki dosya isimlerindeki ?! ' " gibi simgeleri sildirtmek veya alternatif simgeler le değiştirtmek de istiyorum.. misal ' işareti olan yerine boşluk karekteri koydurtmak gibi - işareti yerine de _ koymak gibi.

 

2) dosya adında 2 boşluk olan ları tek boşluk yaptırtmak veya boşluk olan yerlere _ işareti koydurtmak gibi (öncesinde 2 boşlukları tek boşluk yaptırtıp sonra _ underline a çevirtmek). bununla ilgili netde benzer bir powershell kodu buldum ama script kodlamadan anlamadığım için bat a modifiye edemedim.

powershell ile
Dir | Rename-Item –NewName { $_.name –replace “ “,”_” }

yedekten dönerken de doğal olarak  _ olanları boşluğa çevirtmem gerekiyor. Türkçe karekter değişimleri sorun değil.

 

3) Bu kod da bulunan yedekleme işlemini sıkıştırma aktif veya sıkıştırma olmadan yaptırmayı nasıl ekrana seçenek gelecek şekilde kodu düzenleyebiliriz?

Yani kullanici 1 i seçtiğinde sıkıştırma yaparak yedeklesin,  2 yi seçtiğinde sıkıştırma işlemi yapmadan yedekleme yapsın şeklinde. tabiki rar da o parametrenin karşılığını da bilmiyorum. o özelliği gui ekrandan biliyorum sadece. Ekrandan rar dosya boyutu girmesini sağlayabilirsek de güzel olur (DVD veya CD ye uygun olacak RAR boyutlarına ayarlatabilmek için)

@ECHO OFF
net stop MSSQLSERVER
MD D:\YEDEKLER\"%DATE%"
C:\Progra~1\WinRAR\Rar.exe a -r D:\YEDEKLER\"%DATE%"\Mikro_Yedek.rar D:\Mikro14
net start MSSQLSERVER
EXIT

konu hakkında yardımcı olabilirseniz baya makbule geçecek

 

teşekkürler

Link to comment
Share on other sites

  • 3 ay sonra...

Benim de bir sorunum var : Bir klasörün içinde aşağıdaki şeklinde dosyalarım var.

001_...mp3

002_...mp3

...

150_...mp3

 

 Ben bu dosyaların isimlerini aşağıdaki gibi yaptırmak istiyorum.

 

1.mp3

2.mp3

...

150.mp3

 

Bu işlemi normalde "ren 001* 1.mp3" komutuyla yapabiliyoruz fakat bu komutu 150 defa yazmak kullanışlı değil bu komutu kısaltarak yazabilir miyiz?

Link to comment
Share on other sites



Merhaba

 

bat ile bazı işlemler yapmak yaptırmak istiyorum

 

 

konu hakkında yardımcı olabilirseniz baya makbule geçecek

 

teşekkürler

 

 

Dosya içerisindeki karakter / karakterleri değiştirmek için şu kodu kullanabilirsiniz

 

Dikkat etmeniz gereken tek nokta "!file:xx=XX!" kısmı. Burada xx değiştirilecek karakter / karakterleri belirtir, XX ise yeni atanacak karakter / karakterleri belirtir. Örnek olarak "!file:Ş=S!" Ş harfini S'ye,  "!file:_=-!" _ karakterini - karakteri ile değiştirir.

setlocal enabledelayedexpansion
for %%a in (*) do (
  set file=%%a
  ren "!file!" "!file:Ş=S!"
)
 
Seçim yaptırarak kodun işleyişini değiştirmek için ise Choice komutunu kullanabilirsiniz, örnek olarak
 
Choice /M "Sıkıştırma yapılsın mı ?"
if errorlevel 1 goto WinRARyap
if errorlevel 2 goto WinRARyapma
 
:WinRARyap
net stop MSSQLSERVER
MD D:\YEDEKLER\"%DATE%"
C:\Progra~1\WinRAR\Rar.exe a -r D:\YEDEKLER\"%DATE%"\Mikro_Yedek.rar D:\Mikro14
net start MSSQLSERVER
GOTO END
:WinRARyapma
******** yapılacak işlemler ********
GOTO END
:END
Echo Tüm işlemler tamamlandı ...
Pause
Daha çoklu seçim yaptırmak için ise 
 
Choice /C ABCD /M "Hangi sürücüye atılsın ?"
if errorlevel 1 goto AA
if errorlevel 2 goto BB
if errorlevel 3 goto CC
if errorlevel 4 goto DD
 
:AA
yapılacak işlem
goto END
:BB
yapılacak işlem
goto END
:CC
yapılacak işlem
goto END
:DD
goto END
:END
yapılacak işlem
Exit
 
Sanırım yeterince açıklayıcı olmuştur...
 

Benim de bir sorunum var : Bir klasörün içinde aşağıdaki şeklinde dosyalarım var.

001_...mp3

002_...mp3

...

150_...mp3

 

 Ben bu dosyaların isimlerini aşağıdaki gibi yaptırmak istiyorum.

 

1.mp3

2.mp3

...

150.mp3

 

Bu işlemi normalde "ren 001* 1.mp3" komutuyla yapabiliyoruz fakat bu komutu 150 defa yazmak kullanışlı değil bu komutu kısaltarak yazabilir miyiz?

 

 

Bunun içinde şu kodu kullanabilirsin

@echo off
set i=1
for %%f in (*.MP3) do call :degistir "%%f"
goto bitti
 
:degistir
ren %1 %i%.MP3
set /A i+=1
 
:bitti

Haydi kolay gele !

Link to comment
Share on other sites

@ TeYyArEe

İçersinde 114 adet mp3 olan bir klasörde bu Kodu çalıştırınca 2.mp3, 3.mp3, ...115.mp3 şeklinde oldu.

Yani 001_xyz.mp3 100.mp3 oldu.100_xxx.mp3 ve sonrasındaki mp3lerbir üst sayı ile 101.mp3 oldu.

buna göre 114_xxx.mp3 dosyamız 115.mp3 oldu. Bir de bana bu kodları iyice öğrenebileceğim bir kaynal veya yol yöntem önerebilirseniz iyi olur.

Edited by kalelibilişim
Link to comment
Share on other sites

@ TeYyArEe

İçersinde 114 adet mp3 olan bir klasörde bu Kodu çalıştırınca 2.mp3, 3.mp3, ...115.mp3 şeklinde oldu.

Yani 001_xyz.mp3 100.mp3 oldu.100_xxx.mp3 ve sonrasındaki mp3lerbir üst sayı ile 101.mp3 oldu.

buna göre 114_xxx.mp3 dosyamız 115.mp3 oldu. Bir de bana bu kodları iyice öğrenebileceğim bir kaynal veya yol yöntem önerebilirseniz iyi olur.

 

001.mp3 dosyasını 2.mp3, 002.mp3 3.mp3 .... 101.mp3 doyasını 102 olarak atmasının nedeni, CMD komut satırının aritmetik işlemde dosya ismi önündeki 00 karakterlerini boş (rakamın solundaki sıfır matematikte gözardı edildiği gibi) olarak algılamasından kaynaklanır. yani CMD komut satırı için 001.mp3 ile 1.mp3'ü aynı kabul ederek otomatik olarak 2.mp3 olarak değiştirmekte. BAT dosyasını yeniden çalıştırdığınızda dosyalar 1.mp3, 2.mp3 ... 114.mp3 olarak yeniden isimlendirilecektir.

 

CMD script için geçerli bir kaynak yok, araştırma yaparak öğrenebilirsiniz ancak.

 

Haydi kolay gele !

Link to comment
Share on other sites

İlk çalıştırmada 001_xxx.mp3 100.mp3 / 100_xxx.mp3 101.mp3 ... 114.-_xxx.mp3 115.mp3 oluyor.

İkinci çalıştırma da 2.mp3 1.mp3 / ...  93.mp3 92.mp3 / 93.mp3 yok. Sonrasında değişiklik yok 115 e kadar gidiyor.

üçüncü çalıştırmada 79 kayıp

dördüncü çalıştırmada 66 kayıp

beşinci çalıştırmada 54 yok...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...