Plik wsadowy do usuwania plików pobranych z txt
Jak w temacie mam plik z ok 500 nazwami plików do usunięcia czy ktoś może mi powiedzieć jak napisać batch'a który by pobierał nazwy plików z txt i je usuwał.
Odpowiedzi: 9
poszło, wielkie dzięki :)
Do notatnika
[code]Set objFSO = CreateObject("Scripting.FileSystemObject")
Const ForRead = 1
PLikZLista = "c:\123.txt" 'pelna ściezka do pliku z lista plików do usunięcia
Dir = "c:\windows\fonts\" 'lokalizacja folderu z ktorego beda pliki usuwane
Set objFile = objFSO.OpenTextFile (PlikZLista, ForRead)
Do Until objFile.AtEndOfStream
PlikDoUsuniecia = Dir & objFile.Readline 'tu na pocatku dodawana jest nazwa folderu
If PlikDoUsuniecia <> Dir Then 'tu sprawdzam czy linia odczytana z pliku nie jest pusta
if objFSO.FileExists(PlikDoUsuniecia) Then 'tu sprawdzam czy plik istnieje
objFSO.DeleteFile(PlikDoUsuniecia) 'a tu go usuwam
End If
End If
Loop
WScript.Echo "Koniec"
objFile.Close[/code]
Zmodyfikuj zmienne PlikZLista i Dir pod siebie
Dir jest dodawany po przeczytaniu linijki z pliku - gdy plik zawiera w pełne ścieżki dostępu do plików do usunięcia nie ma potrzeby dodawania tego i wówczas linijki 9 i 10 wygladalyby tak
[code]PlikDoUsuniecia = objFile.Readline 'tu na pocatku dodawana jest nazwa folderu
If PlikDoUsuniecia <> "" Then 'tu sprawdzam czy linia odczytana z pliku nie jest pusta[/code]
Zapisz sobie zmodyikowany plik jako plik z rozszerzeniem vbs i uruchom dwuklikiem.
Skrypt nie liczy ilości skasowanych plikow.
To w takim razie rozbudujmy trochę skrypt.
[code]$fileNames = Get-Content $args[0]
$dir = "C:\Windows\Fonts"
foreach ($fileName in $fileNames)
{
Remove-Item "$dir\$fileName"
}[/code]
Teraz powinien zadziałać także z innego folderu. W razie potrzeby (np. gdybyś miał system na dysku innym, niż C) zmień ścieżkę w drugiej linii skryptu.
niestety system nie pozwala mi wsadzić do font'a nic co nie jest czcionką
Oto skrypt PowerShella:
[code]$fileNames = Get-Content $args[0]
foreach ($fileName in $fileNames)
{
Remove-Item $fileName
}[/code]
Jeżeli używasz Windowsa XP albo Vistę bez wszystkich aktualizacji, być może będziesz musiał najpierw doinstalować PowerShella. Można go ściągnąć bezpłatnie ze stron Microsoftu. Żeby w PowerShellu móc uruchamiać skrypty, musisz odpalić go z prawami administratora i wydać polecenie np.
[code]Set-ExecutionPolicy RemoteSigned[/code]
Wystarczy to zrobić jednokrotnie.
Jeżeli w systemie masz już PowerShella, robisz tak:
1. Zapisujesz powyższy skrypt w pliku np. Remove-Files.ps1 w folderze z fontami
2. Uruchamiasz cmd.exe i w konsoli przechodzisz do folderu z fontami
3. Wydajesz polecenie
[code]powershell .\Remove-Files.ps1 pliki.txt[/code]
[i]pliki.txt[/i] to oczywiście nazwa pliku z nazwami plików do usunięcia.
tak
A nazwy są razem z rozszerzeniem?
wszystkie pliki są w jednym folderze, muszę po prostu usunąć 500 czcionek z font'a
Czy te wszystkie pliki do usunięcia znajdują się w jednym folderze? A może pliki do usunięcia znajdują się w różnych folderach ale w txt masz całe ścieżki do nich?
Strona 1 / 1