Přejmenování souboru s náhodným přidáním znaků
- J X P
- Středně pokročilý
- Registrován: 08. kvě 2004
Přejmenování souboru s náhodným přidáním znaků
Zdar lidi, o5 jsem si pro vás přiipravil takovou lahůdku. Potřebovat bych v adresáři přejmenovat všechny soubory, ale zároveň bych kvůli řazení potřeboval přidat na začátek náhodné číslo, mělo by to vypadat asi takhle
original name.txt ----> 001 original name.txt
to číslo by se mělo generovat náhodně a při každém startu programu by mělo to číslo program nejdřív odstranit a pak znovu náhodně přidat. Jde o to, že těch souborů mám v adresáři hodně a ělat to ručně je pakárna.
Poradíte něco ?
Díky
original name.txt ----> 001 original name.txt
to číslo by se mělo generovat náhodně a při každém startu programu by mělo to číslo program nejdřív odstranit a pak znovu náhodně přidat. Jde o to, že těch souborů mám v adresáři hodně a ělat to ručně je pakárna.
Poradíte něco ?
Díky
---
- pavel.minarik
- Středně pokročilý
- Registrován: 03. čer 2003
- Bydliště: Brno
- Kontaktovat uživatele:
- J X P
- Středně pokročilý
- Registrován: 08. kvě 2004
to je kvůli následnému náhodnému řazení. bohužel ten program pro který to je neumí řadit jinak než podle názvu a to se dá obejít jedině přidání toho řetězce na začátku souboru.
Našel jsem jeden nástroj, který umí toto přidat, ale nakonec souboru, což je mi na nic. A když rovnou automaticky přejmenuju i originální soubor tak pak zase nevím co v něm původně je.
funguje to takto
original name.txt -----> list_001.txt
kdyby to umělo dát dopředu ....
Našel jsem jeden nástroj, který umí toto přidat, ale nakonec souboru, což je mi na nic. A když rovnou automaticky přejmenuju i originální soubor tak pak zase nevím co v něm původně je.
funguje to takto
original name.txt -----> list_001.txt
kdyby to umělo dát dopředu ....
---
- Jiri Drak
- Středně pokročilý
-
- Registrován: 04. čer 2003
- Bydliště: Č.K.
- J X P
- Středně pokročilý
- Registrován: 08. kvě 2004
Dobra tedy ..... z jednoduche otazky prejdeme na ....
a jak se programuje ?
Vazne, bohuzel programovani neni moje silna stranka, ne ze bych nechtel, ale proste nevim jak na to, takze tudy cesta nevede. Spoleham na to, ze je na svete dost programatoru, kteri treba jiz neco podobneho delali, jen jde o to je najit
a jak se programuje ?
Vazne, bohuzel programovani neni moje silna stranka, ne ze bych nechtel, ale proste nevim jak na to, takze tudy cesta nevede. Spoleham na to, ze je na svete dost programatoru, kteri treba jiz neco podobneho delali, jen jde o to je najit
---
- pavel.minarik
- Středně pokročilý
- Registrován: 03. čer 2003
- Bydliště: Brno
- Kontaktovat uživatele:
- Dony
- Středně pokročilý
- Registrován: 29. říj 2003
- Bydliště: okr. Mělník
- J X P
- Středně pokročilý
- Registrován: 08. kvě 2004
- Dony
- Středně pokročilý
- Registrován: 29. říj 2003
- Bydliště: okr. Mělník
- Dony
- Středně pokročilý
- Registrován: 29. říj 2003
- Bydliště: okr. Mělník
Tady máš ten skript, stačí ho dát do souboru s příponou vbs, hoď ho do nadřazenýho adresáře k adresáři, kde chceš přejmenovávat, přepiš konstantu FilesSubdir (do uvozovek, kde je "dir" název toho adresáře, kde chceš přejmenovávát). Pak jsou tam uprostřed dva řádky (začínaj ' ffilact... ), nad nima je popis jejich funkce, podle toho, u kterého odstraníš znak ' to bude přejmenovávat. Můžeš si z toho udělat dva skripty, jeden na první "pojmenování" a druhej na přejmenování (podle toho kterej z řádků tam necháš)
Neni tam kontrola, kdyby se při přejmenování vyskytly dva soubory stejného názvu, ale to by se stát nemělo.
btw važ si toho, je to skoro půl hodiny práce...
Neni tam kontrola, kdyby se při přejmenování vyskytly dva soubory stejného názvu, ale to by se stát nemělo.
Kód: Vybrat vše
const FilesSubdir="dir" 'nazev podadresare, ve kterem se bude prejmenovavat
Napis = "Prejmenovat soubory v adresari "& dirtobecleaned &"?"
Titulek = "Windows Scripting Host"
Dim intDoIt
Dim fso, fold, ffil, ffilact, num
Randomize
Call Welcome()
Set fso = CreateObject("Scripting.FileSystemObject")
Set fold = fso.GetFolder(Fso.getAbsolutePathName("")& "\" & Filessubdir)
Set ffil = fold.Files
For Each ffilact in ffil
num=int(rnd*999)
' tenhle radek zajisti ocislovani pri prvnim spusteni (prida cisla pred nazev)
' ffilact.move(fold.path & "\" & string(3-len(cstr(num)),"0") & cstr(num) & ffilact.name)
' tenhle radek zajisti ocislovani pri dalsich spustenich (odebere prida cisla a prida jina)
' ffilact.move(fold.path & "\" & string(3-len(cstr(num)),"0") & cstr(num) & right(ffilact.name,len(ffilact.name)-3))
Next
msgbox "Hotovo"
Sub Welcome()
intDoIt = MsgBox(Napis, vbOKCancel + vbinformation, Titulek )
If intDoIt = vbCancel Then WScript.Quit
End Sub
Avatar tancuje, nechce se mu na záchod... Windows Vista je tady, řekněte "WTF"
- J X P
- Středně pokročilý
- Registrován: 08. kvě 2004
No to nemá chybu, super, moc děkuju.
Kdybych tam chtěl ještě přidat za číslo nějaký znak např aby to vypadalo 005_original text.txt a po dokončení aby spustil jiný program, je to složité ?
Jsem tobě i tvému přešlapujícímu avataru zavázán
Pokud by to přidávání znaků bylo moc složité tak to udělám jinak, ale to spuštění programu po dokončení by se šiklo.
Kdybych tam chtěl ještě přidat za číslo nějaký znak např aby to vypadalo 005_original text.txt a po dokončení aby spustil jiný program, je to složité ?
Jsem tobě i tvému přešlapujícímu avataru zavázán
Pokud by to přidávání znaků bylo moc složité tak to udělám jinak, ale to spuštění programu po dokončení by se šiklo.
---
- Dony
- Středně pokročilý
- Registrován: 29. říj 2003
- Bydliště: okr. Mělník
přidat znak je to nejmenší, stačí to připsat do řádků, který přejmenovávaj...
např:
stačí to do toho řádku pro první přejmenování
na spuštění programu přidej třeba za ten msgbox...
např:
Kód: Vybrat vše
.....)),"0") & cstr(num) & ffilact.name....
.....)),"0") & cstr(num) & "tohlebudenavic" & ffilact.name....
na spuštění programu přidej třeba za ten msgbox...
Kód: Vybrat vše
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run("cestaanazevprogramu")
Avatar tancuje, nechce se mu na záchod... Windows Vista je tady, řekněte "WTF"
- J X P
- Středně pokročilý
- Registrován: 08. kvě 2004
Tak jsem to tam takto vložil
přejmenování proběhne v pořádku, ale program se nespustí, hodí to tuhle hlášku
Skript: C:\.........\radio.vbs
Řádek: 21
Znak: 3
Chyba: Systém nemůže nalézt uvedený soubor
Kód: 80070002
Zdroj: (null)
Cestu jsem zadal správně a odkazovaný exe soubor v tom adresáři existuje, co je špatně ?
P.S. Vím že jde ve Win XP zkopírovat chybovou hlášku přímo do clipboardu, jen si nemůžu vzpomenout jakou kombinací kláves .... ufff, nevíš ?
Kód: Vybrat vše
......
msgbox "Prijemnou jizdu"
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run("D:\Program Files\18 WoS Across America\aa.exe")
Sub Welcome()
intDoIt = MsgBox(Napis, vbOKCancel + vbinformation, Titulek )
If intDoIt = vbCancel Then WScript.Quit
End Sub
Skript: C:\.........\radio.vbs
Řádek: 21
Znak: 3
Chyba: Systém nemůže nalézt uvedený soubor
Kód: 80070002
Zdroj: (null)
Cestu jsem zadal správně a odkazovaný exe soubor v tom adresáři existuje, co je špatně ?
P.S. Vím že jde ve Win XP zkopírovat chybovou hlášku přímo do clipboardu, jen si nemůžu vzpomenout jakou kombinací kláves .... ufff, nevíš ?
---
- pavel.minarik
- Středně pokročilý
- Registrován: 03. čer 2003
- Bydliště: Brno
- Kontaktovat uživatele:
- Dony
- Středně pokročilý
- Registrován: 29. říj 2003
- Bydliště: okr. Mělník
- J X P
- Středně pokročilý
- Registrován: 08. kvě 2004
Tak už jsem na to přišel. Musí tam být zadaná cesta bez závorky a ve 3 úvozovkách, uff
vypadá to takhle:
To jsou věci mezi nebem a zemí
vypadá to takhle:
Kód: Vybrat vše
......
msgbox "Prijemnou jizdu"
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """D:\Program Files\18 WoS Across America\aa.exe"""
Sub Welcome()
intDoIt = MsgBox(Napis, vbOKCancel + vbinformation, Titulek )
If intDoIt = vbCancel Then WScript.Quit
End Sub
---
- Dony
- Středně pokročilý
- Registrován: 29. říj 2003
- Bydliště: okr. Mělník
mě to taky došlo, je to jako kdybys to napsal do příkazovýho řádku bez úvozovek, to za první mezerou by interpretovalo jako argument programu -> chyba, takže se to musí uzavřít úvozovkama navíc, aby výslednej řetězec měl úvozovky (že jsou tři je daný syntaxí basicu)
Avatar tancuje, nechce se mu na záchod... Windows Vista je tady, řekněte "WTF"