Program pro automatické zkopírování složky z pc na flešku Vyřešeno

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
Peťa
Level 5
Level 5
Příspěvky: 2123
Registrován: duben 10
Pohlaví: Muž
Stav:
Offline

Program pro automatické zkopírování složky z pc na flešku

Příspěvekod Peťa » 16 kvě 2013 16:33

Zdravím, potřeboval bych poradit s programem, který by uměl zkopírovat soubor z disku pc na flešku. Představuji si to tak, že flešku připojím k pc, na ní bude program, který spustím a on potřebné soubory z pc zkopíruje na onu flešku. Složka ze které se bude kopírovat, bude předem definovaná. Ideální by bylo, kdyby k tomu program nepotřeboval otevírat žádná okna a prostě to udělal. Nevím, zda by nebyl na toto vhodný nějaký skript.
Poradíte prosím?

Reklama
Uziv00
Pohlaví: Nespecifikováno

Re: Program pro automatické zkopírování složky z pc na flešk

Příspěvekod Uziv00 » 16 kvě 2013 16:43

Nadefinuj složku a skript ti můžu napsat. Upozorňuji, že je rozdíl mezi "C:\pokus\" a mezi "D:\Data\pokusy z krílova\atd \"
Dále si nadefinuj, co když na flešce už soubory budou.

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Program pro automatické zkopírování složky z pc na flešk

Příspěvekod faraon » 16 kvě 2013 16:47

Na to ti stačí dávkový soubor s jedním příkazem, nebo třeba Autorun.inf.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
Peťa
Level 5
Level 5
Příspěvky: 2123
Registrován: duben 10
Pohlaví: Muž
Stav:
Offline

Re: Program pro automatické zkopírování složky z pc na flešk

Příspěvekod Peťa » 16 kvě 2013 17:27

ITCrowd bylo by možné měnit cestu k souboru, protože se může stát, že budu potřebovat kopírovat i z jiné složky? Mám Notepad++ a pokud by byla zdrojová cesta vidět po otevření v Notepadu, mohl bych ji před použitím zeditovat. Nyní by se jedno o složku C:\Users\PETR\Documents
Pokud už soubry na flešce budou, tak ke kopírovaní nemusí dojít. Ještě dodám, že by bylo dobré, aby to fungovalo pod Vistou i win 7.

Uziv00
Pohlaví: Nespecifikováno

Re: Program pro automatické zkopírování složky z pc na flešk

Příspěvekod Uziv00 » 16 kvě 2013 18:11

1. Ta složka documnets je vlastně složka, kterou vidíš když poklepeš na dokumenty?
2. Uživatel PETR je na obou počítačích?
3. Kopírovat se budou jen soubory, nebo i adresáře?
4. Jestliže soubory, pak všechny, nebo jen nějakého typu?
5. Má se třeba kontrolovat datum vytvoření při kopírování (tedy že by se starý soubor na flashce přepsal novým)?
7. Je žádoucí využít systémové proměnné?
8. Jak bude vyřešen přístup ke složce v případě přihlášení jiného uživatele?
9. Jaký bude vytvářený adresář na flashce?
ad7: lze použít systémovou složku Documents. V tom případě skript bude kopírovat složku Documents aktuálně přihlášeného uživatele.

Uživatelský avatar
Peťa
Level 5
Level 5
Příspěvky: 2123
Registrován: duben 10
Pohlaví: Muž
Stav:
Offline

Re: Program pro automatické zkopírování složky z pc na flešk

Příspěvekod Peťa » 16 kvě 2013 18:23

1. ano
2. no je pravda, že uživatele PETR mám jen na svém osobním notebooku a když bych chtěl kopírovat i z dalšího, bylo by potřeba mít možnost to změnit
3. i adresáře
4. kdyby to šlo, tak aby to umělo všechny
5. ne
7. nevím o co se jedná a jak to může kopírovaní ovlivnit
8. na všech pc, ze kterých mám v plánu kopírovat, mám jen jednoho uživatele
9. složka s názve třeba Data (na názvu nesejde)
ad7. to by zřejmě zcela stačilo

Díky moc za čas, který tomu věnuješ :smile:

Uziv00
Pohlaví: Nespecifikováno

Re: Program pro automatické zkopírování složky z pc na flešk

Příspěvekod Uziv00 » 16 kvě 2013 21:30

takže:
1. Skript využívá proměnné %userprofile% pro zjištění cesty k Documents. Tím je zajištěno, že zkopíruje vždy složku Documents aktuálně přihlášeného uživatele.
2. Skript si zjistí, ze kterého disku je spouštěn a na tomto disku vytvoří adresář a nahraje data.
3. Adresář je flashdisk:\DATA\UserName. Pokud neexistuje, tak si ho vytvoří.
4. Vytvoří dosovský příkaz, který spustí.
5. Předpokládá se, že bude vždy spouštěn z Flashdisku (je jedno, zda z kořenového, či jiného adresáře)
6. Zdrojová i cílová složka lze ručně měnit přepisem kódu (proměnné Zdroj a Cíl)
7. Bude fungovat na Windows7 a na Vista. Na XP ne, ty používají jiný název Documents. Na Windows8 nemám možnost vyzkoušet.

Kód: Vybrat vše

'***********************************************************
'*   Script kopíruje všechny soubory a složky z Dokumenty  *
'*   Vytváří si cílový adresář na FlashDisku               *
'*********************************************************** 
'*            Vytvořeno pro PC-HELP                        *
'*                Etienn@Script                            *
'***********************************************************
Option Explicit
Dim disk, Zdroj, Dt, Cil, prikaz, Jmeno
Dim WshShell, objNetwork, fso

' zjisteni písmena disku scriptu
disk = WScript.ScriptFullName
disk = Left(disk, 3)
'WScript.Echo disk

' Načtení složky Documents
Set WshShell = WScript.CreateObject("WScript.Shell")
Zdroj = wshShell.ExpandEnvironmentStrings( "%userprofile%" )
Zdroj = Zdroj & "\Documents" 'Zdrojová složka
'WScript.Echo Zdroj

' Načtení jména uživatele
Set objNetwork = CreateObject ("WScript.Network")
Jmeno = objNetwork.UserName
Dt = disk & "DATA\"
Cil = disk & "DATA\" & Jmeno 'Cílová složka
'WScript.Echo Cil

' Vytvoření adresáře na flashce
Set fso = CreateObject("Scripting.FileSystemObject")
If (Not fso.FolderExists(Dt)) Then fso.CreateFolder(Dt)
If (Not fso.FolderExists(Cil)) Then fso.CreateFolder(Cil)

' vytvoření a spuštění kopírování
If InStr(Cil, Chr(32)) Then
prikaz = "xcopy " & Chr(34) & Zdroj & Chr(34) & Chr(32) & Chr(34) & Cil & Chr(34) & Chr(32) & "/e /v"
Else
prikaz = "xcopy " & Chr(34) & Zdroj & Chr(34) & Chr(32) & Cil & Chr(32) & "/e /v"
End If
'WScript.Echo prikaz
WshShell.Run prikaz

Set WshShell = Nothing
Set objNetwork = Nothing
Set objNetwork = Nothing
Set fso = Nothing

tento kód si zkopíruj do notepadu !NE do Wordu nebo jiného editoru! soubor ulož a změň jeho příponu na .vbs. Spustíš jej poklepáním.

Uživatelský avatar
Peťa
Level 5
Level 5
Příspěvky: 2123
Registrován: duben 10
Pohlaví: Muž
Stav:
Offline

Re: Program pro automatické zkopírování složky z pc na flešk

Příspěvekod Peťa » 16 kvě 2013 21:44

Díky moc :bigups: :smile: zítra ještě zkusím změnit složku, ze které se to bude kopírovat, abych vyzkoušel, jestli to zvládnu tak, abych skrip nepodrbal.
Ještě bych měl dotaz. Ten příkazový řádek, co se otevře po spuštění skriptu je nezbytný, nebo by to šlo udělat, tak aby nebyl vidět? Je to jen kosmetická záležitost.

Uziv00
Pohlaví: Nespecifikováno

Re: Program pro automatické zkopírování složky z pc na flešk

Příspěvekod Uziv00 » 16 kvě 2013 22:07

Jistě že lze. V tom případě ale skript již existující soubory natvrdo přepíše.
Změň si spouštěcí část skriptu takto:

Kód: Vybrat vše

' vytvoření a spuštění kopírování
If InStr(Cil, Chr(32)) Then
prikaz = "%comspec% /c xcopy " & Chr(34) & Zdroj & Chr(34) & Chr(32) & Chr(34) & Cil & Chr(34) & Chr(32) & "/e /y"
Else
prikaz = "%comspec% /c xcopy " & Chr(34) & Zdroj & Chr(34) & Chr(32) & Cil & Chr(32) & "/e /y"
End If
'WScript.Echo prikaz
WshShell.Run prikaz, 0, True
MsgBox "Soubory byly zkopírovány" , vbOKOnly + vbInformation, "INFO"

Přidal jsem tam řádek MsgBox, který oznamuje ukončení skriptu. Pokud ho tam nechceš, tak jej klidně smaž, nebo ho můžeš "zaremovat" napsáním apostrofu před příkaz.

Uživatelský avatar
Peťa
Level 5
Level 5
Příspěvky: 2123
Registrován: duben 10
Pohlaví: Muž
Stav:
Offline

Re: Program pro automatické zkopírování složky z pc na flešk

Příspěvekod Peťa » 16 kvě 2013 22:38

Perfektní :)

Uziv00
Pohlaví: Nespecifikováno

Re: Program pro automatické zkopírování složky z pc na flešk

Příspěvekod Uziv00 » 16 kvě 2013 22:40

Tak ať ti to slouží ku prospěchu. Až si budeš jistý, že je vše jak potřebuješ, označ téma za vyřešené.

Uživatelský avatar
Peťa
Level 5
Level 5
Příspěvky: 2123
Registrován: duben 10
Pohlaví: Muž
Stav:
Offline

Re: Program pro automatické zkopírování složky z pc na flešk

Příspěvekod Peťa » 17 kvě 2013 15:07

Ještě mě něco napadlo. Pokud bych chtěl kopírovat opačně, tzn. z flešky do pc, tak stačí jen pozměnit zdrojovou a cílovou složku, nebo je to složitější? Napadá mě problém, že každý pc může přidělit flešce přece jiné písmeno k jejímu označení.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • W11 - předdefinované složky Příloha(y)
    od draxxx » včera, 08:45 » v Windows 11, 10, 8...
    2
    459
    od draxxx Zobrazit poslední příspěvek
    včera, 16:25
  • Obsah složky se zrcadlí na ploše Příloha(y)
    od Grander » 01 dub 2025 17:44 » v Windows 11, 10, 8...
    4
    2739
    od Grander Zobrazit poslední příspěvek
    02 dub 2025 15:29
  • automaticke nastaveni velikosti komentare v Excelu
    od Mikik Block » 04 zář 2024 15:17 » v Kancelářské balíky
    0
    3184
    od Mikik Block Zobrazit poslední příspěvek
    04 zář 2024 15:17
  • Program na hledání poškozených souborů JPG Příloha(y)
    od Rosta_Kolmix » 09 lis 2024 11:01 » v Design a grafické editory
    2
    4510
    od Minapark Zobrazit poslední příspěvek
    15 lis 2024 11:04
  • Jaký program pro zpracování videa je nejlepší?
    od zuzana3 » 13 kvě 2025 08:48 » v Programy ke stažení
    7
    5766
    od buchtik Zobrazit poslední příspěvek
    14 kvě 2025 12:20

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host