Proctives Posted May 23, 2021 Share Posted May 23, 2021 Herkese merhabalar, her gün elle yapmak yerine bat dosyasıyla zamanlayıcı kurarak günlük yapmayı istediğim bir problem var. Problemi detaylı olarak açıklamam gerekirse; 1.Ekran görüntüsündeki yeşil alandaki iki klasör ve bir dosya haricinde geri kalan klasör ve dokümanların silinmesini istiyorum. Ortak ağda olduğu için benim yeşil alana aldıklarımın haricinde gün içinde bir çok dosya, klasör veya uygulama ekleniyor. Ben sadece benim istediğim dosyaların ve doküman,uygulamaların kalmasını haricindekilerin silinmesini istiyorum. Bunun haricinde 2.ekran görüntüsünde yine belli bir klasörün içindeki istediğim klasörlerin kalmasını haricindeki her şeyin silinmesini istiyorum. Bunu .bat dosyası halinde derleyip, görev zamanlayıcısıyla günlük olarak çalıştırmak istiyorum. Bunun için gerekli kod satırları konusunda yardımcı olabilecek arkadaşım varsa çok memnun olurum. 1.EKRAN GÖRÜNTÜSÜ 2.EKRAN GÖRÜNTÜSÜ Quote Link to comment Share on other sites More sharing options...
Editor mephistooo2 Posted May 23, 2021 Editor Share Posted May 23, 2021 (edited) Mevcut klasör ve dosya isimlerinde çok fazla boşluk ve Türkçe karakter var... Şu haliyle bat dosyaları istediğiniz klasör ve dosyaları silemez. Çünkü betik dosyaları boşluk ve Türkçe karakterleri sevmez İsimleri boşluk ve Türkçe karakter olmayacak şekilde yeniden düzenleyin ve son halinin ekran görüntülerini burada tekrar paylaşın. O zaman yaparız bişeyler Edited May 23, 2021 by mephistooo2 Quote Link to comment Share on other sites More sharing options...
Editor mephistooo2 Posted May 23, 2021 Editor Share Posted May 23, 2021 Bat dosyası ile boşluk ve Türkçe karakteri sorunlu olduğu için silme işlemi çok zor. Ancak vbs dosyası ile yapılabiliyor. Silme işlemi için kodları mesajınızdaki ekran görüntüsüne göre hazırladım. Dosya ve klasör yollarında bir değişiklik olursa silme işlemi başarısız olacaktır. Her kod satırının üzerinde açıklama mevcut, siz kendi dosya ve klasör yapınıza göre düzenleme yapmanız gerekebilir. Aşağıdaki kod satırlarını kopyalayarak bir not defterine yapıştırın ve isminde Türkçe-boşluk karakteri olmadan uzantısı vbs olacak şekilde herhangi bir isimle kaydedin. NOT: vbs dosyasını görev zamanlamaya eklerken vbs dosyasının bulunduğu klasör isminde Türkçe-boşluk karakteri olmamalıdır. Spoiler ' Yönetici Hakları etkinleştirilir If Not WScript.Arguments.Named.Exists("elevate") Then CreateObject("Shell.Application").ShellExecute WScript.FullName _ , """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1 WScript.Quit End If '===================================== DIM FSO SET FSO=CreateObject("Scripting.FileSystemObject") ' Tüm klasör ve dosya yollarında örnek olarak E:\ sürücü harfi girilmiştir. ' Kendi dosya yolunuza göre sürücü harfini değiştirmeniz gerekmektedir. ' İÇTİMA LİSTESİ klasörü silinir FSO.DeleteFolder "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\İÇTİMA LİSTESİ" ' EKMEK VE PERSONEL YOKLAMASI HAZIR.xml dosyası silinir FSO.DeleteFile "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\EKMEK VE PERSONEL YOKLAMASI HAZIR.xml" ' YOKLAMA LİSTESİ klasörü silinir FSO.DeleteFolder "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\1 - EKMEK YOKLAMASI\YOKLAMA" ' 1 - OCAK 2021.xlsx dosyası silinir FSO.DeleteFile "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\1 - EKMEK YOKLAMASI\1 - OCAK 2021.xlsx" ' 2 - ŞUBAT 2021.xlsx dosyası silinir FSO.DeleteFile "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\1 - EKMEK YOKLAMASI\2 - ŞUBAT 2021.xlsx" ' 3 - MART 2021.xlsx dosyası silinir FSO.DeleteFile "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\1 - EKMEK YOKLAMASI\3 - MART 2021.xlsx" ' 4 - NİSAN 2021.xlsx dosyası silinir FSO.DeleteFile "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\1 - EKMEK YOKLAMASI\4 - NİSAN 2021.xlsx" 2 1 Quote Link to comment Share on other sites More sharing options...
Proctives Posted May 24, 2021 Author Share Posted May 24, 2021 mephistooo2, 15 saat önce yazdı: Bat dosyası ile boşluk ve Türkçe karakteri sorunlu olduğu için silme işlemi çok zor. Ancak vbs dosyası ile yapılabiliyor. Silme işlemi için kodları mesajınızdaki ekran görüntüsüne göre hazırladım. Dosya ve klasör yollarında bir değişiklik olursa silme işlemi başarısız olacaktır. Her kod satırının üzerinde açıklama mevcut, siz kendi dosya ve klasör yapınıza göre düzenleme yapmanız gerekebilir. Aşağıdaki kod satırlarını kopyalayarak bir not defterine yapıştırın ve isminde Türkçe-boşluk karakteri olmadan uzantısı vbs olacak şekilde herhangi bir isimle kaydedin. NOT: vbs dosyasını görev zamanlamaya eklerken vbs dosyasının bulunduğu klasör isminde Türkçe-boşluk karakteri olmamalıdır. İçeriği Gizle ' Yönetici Hakları etkinleştirilir If Not WScript.Arguments.Named.Exists("elevate") Then CreateObject("Shell.Application").ShellExecute WScript.FullName _ , """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1 WScript.Quit End If '===================================== DIM FSO SET FSO=CreateObject("Scripting.FileSystemObject") ' Tüm klasör ve dosya yollarında örnek olarak E:\ sürücü harfi girilmiştir. ' Kendi dosya yolunuza göre sürücü harfini değiştirmeniz gerekmektedir. ' İÇTİMA LİSTESİ klasörü silinir FSO.DeleteFolder "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\İÇTİMA LİSTESİ" ' EKMEK VE PERSONEL YOKLAMASI HAZIR.xml dosyası silinir FSO.DeleteFile "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\EKMEK VE PERSONEL YOKLAMASI HAZIR.xml" ' YOKLAMA LİSTESİ klasörü silinir FSO.DeleteFolder "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\1 - EKMEK YOKLAMASI\YOKLAMA" ' 1 - OCAK 2021.xlsx dosyası silinir FSO.DeleteFile "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\1 - EKMEK YOKLAMASI\1 - OCAK 2021.xlsx" ' 2 - ŞUBAT 2021.xlsx dosyası silinir FSO.DeleteFile "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\1 - EKMEK YOKLAMASI\2 - ŞUBAT 2021.xlsx" ' 3 - MART 2021.xlsx dosyası silinir FSO.DeleteFile "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\1 - EKMEK YOKLAMASI\3 - MART 2021.xlsx" ' 4 - NİSAN 2021.xlsx dosyası silinir FSO.DeleteFile "E:\ORTAK\YAZICI\02 - EKMEK VE PERSONEL YOKLAMASI\1 - EKMEK YOKLAMASI\4 - NİSAN 2021.xlsx" İlginiz ve yardımınız için minnettarım. Ancak silinme yerine kalacak dosyaları belirleyen kod parçası daha çok işime yarayacaktır. Çünkü ortak ağda kimin hangi isimde klasör açacağını kestirmem zor, en azından benim belirlediğim haricinde ne varsa silinsin istiyorum. Quote Link to comment Share on other sites More sharing options...
Editor mephistooo2 Posted May 24, 2021 Editor Share Posted May 24, 2021 Kalacak dosyalar derken? Silinmemesi gereken dosya-klasörleri kodla belirtemezsiniz, bunu ancak dosya izinleri ile belirtebilirsiniz... Quote Link to comment Share on other sites More sharing options...
Proctives Posted May 24, 2021 Author Share Posted May 24, 2021 mephistooo2, 15 dakika önce yazdı: Kalacak dosyalar derken? Silinmemesi gereken dosya-klasörleri kodla belirtemezsiniz, bunu ancak dosya izinleri ile belirtebilirsiniz... Yani ilk mesajda bahsettiğim mevzu, sadece benim belirlediğim klasörler kalacak. Onun haricinde klasör veya uzantısı ne olursa olsun uygulama direkt silinecek. Sadece adını belirlediklerim kalacak. Bunun PowerShell ve Batch ile mümkün olduğunu biliyorum ama gerekli kod parçalarını yazmakta zorlanıyorum. VBS için bilgim yok tabi, mümkün olmayabilir. Quote Link to comment Share on other sites More sharing options...
Editor mephistooo2 Posted May 24, 2021 Editor Share Posted May 24, 2021 (edited) Ben hala ne demek istediğinizi tam anlayamadım yada ben ne demek istediğimi anlatamadım... Silinmemesi gereken dosya-klasörleri kodla (bat, cmd, vbs, powershell betik dosyaları ile) belirtemezsiniz, bunu ancak klasör ve dosya izinleri ile ayarlayabilirsiniz... bat dosyası ile dosya-klasör silme işlemleri yapılabilir ancak ilk mesajımda yazdıklarımı dikkate almalısınız... mephistooo2, 18 saat önce yazdı: Mevcut klasör ve dosya isimlerinde çok fazla boşluk ve Türkçe karakter var... Şu haliyle bat dosyaları istediğiniz klasör ve dosyaları silemez. Çünkü betik dosyaları boşluk ve Türkçe karakterleri sevmez İsimleri boşluk ve Türkçe karakter olmayacak şekilde yeniden düzenleyin ve son halinin ekran görüntülerini burada tekrar paylaşın. O zaman yaparız bişeyler Önceki mesajımda hazırladığım vbs betik dosyası mesajınızda belirttiğiniz gibi istediğiniz dosya ve klasörleri siliyor, silinmesini istemediğiniz dosya ve klasörlere dokunmuyor... Edited May 24, 2021 by mephistooo2 Quote Link to comment Share on other sites More sharing options...
Proctives Posted May 24, 2021 Author Share Posted May 24, 2021 mephistooo2, Bir saat önce yazdı: Ben hala ne demek istediğinizi tam anlayamadım yada ben ne demek istediğimi anlatamadım... Silinmemesi gereken dosya-klasörleri kodla (bat, cmd, vbs, powershell betik dosyaları ile) belirtemezsiniz, bunu ancak klasör ve dosya izinleri ile ayarlayabilirsiniz... bat dosyası ile dosya-klasör silme işlemleri yapılabilir ancak ilk mesajımda yazdıklarımı dikkate almalısınız... Önceki mesajımda hazırladığım vbs betik dosyası mesajınızda belirttiğiniz gibi istediğiniz dosya ve klasörleri siliyor, silinmesini istemediğiniz dosya ve klasörlere dokunmuyor... Yardımınız ve ilginiz için minnettarım öncelikle. Bir arkadaşımın gönderdiği kodla sorunu çözdüm. Konuyu açıklığa kavuşturmak için anlatayım; burada kaynak değişkeniyle klasör hiyerarşisinde en üstteki kökü okuyup, altında silinmesini istemediğim klasörleri tut1 ve tut2 değişkenlerine atamış.Bunun haricindeki tüm dosya,klasör ve uygulamaları da silinmesini sağlamış. @echo off set "kaynak=E:\YEDEK" set "tut1=1 - EKMEK YOKLAMASI" set "tut2=3 - ICTIMA LISTESI" cd /d %kaynak% for /F "delims=" %%G in ('dir /b') do ( if /I NOT "%%G"=="%tut1%" ( if /I NOT "%%G"=="%tut2%" ( REM check if it is a directory or file IF EXIST "%%G\" ( rmdir "%%G" /s /q ) else ( del "%%G" /q ) ) ) ) 3 Quote Link to comment Share on other sites More sharing options...
register Posted May 24, 2021 Share Posted May 24, 2021 (edited) slma bat ve cmd dosyalarında Türkçe karakterler bozuk düzeltme Tavsiye notepad++ Please register to see this content. Edited May 24, 2021 by register 1 Quote Link to comment Share on other sites More sharing options...
Proctives Posted May 24, 2021 Author Share Posted May 24, 2021 register, 9 dakika önce yazdı: slma bat ve cmd dosyalarında Türkçe karakterler bozuk düzeltme Tavsiye notepad++ Please register to see this content. Çok teşekkür ederim. 👊 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.