Kezdőoldal » Számítástechnika » Programozás » Miért nem működik az alábbi kód?

Miért nem működik az alábbi kód?

Figyelt kérdés

Szeretnék egy olyan .bat file-t, amit ha elindítok, akkor készít egy másolatot az adott test.xlsx fájlról, úgy, hogy az új fájl neve legyen az aktuális fájl készítésének pontos időpontja (a legjobb az lenne, ha év_hónap_nap_óra_perc.xlsx lenne a végeredmény). Jelenleg oda hogy a kód szerint év_hónap_nap.xlsx másolatot kéne csinálni a célmappában, de amikor elindítom a kész .bat fájlt, akkor az semmit nem csinál.


Tudnátok segíteni, hogy mi gond a kódommal, és hogyan lehetne óra/percet is beleépíteni?


A kód:

call set currentDate=%date:/=-%

call set currentDate=%currentDate:~-10%


echo F|xcopy "C:\eredeti\TEST.XLSX" "C:\masolat (%currentDate%).XLSX" /Y /H /E /F

exit



2020. szept. 24. 12:25
 1/6 anonim ***** válasza:

Én csak annyi tanácsot tudok adni, hogy ne az Excel táblázat megnyitott állapotában hívd meg a .bat fájlt ha sikerül majd megírni.

Nem lehet hogy a c:\ gyökérkönyvtárra nincs írási jogod, esetleg ha "run as administrator" opcióval futtatnád a .bat fájlt?

2020. szept. 24. 12:46
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:

Próbáltam administratorként is nem működött.

Írási jogom tuti van, simán átmásolni a fájlt már sikerült, csak így nem, ezért a kódot tartanám hibásnak.

A fájlt még meg sem nyitottam egyszersem, csak létrehoztam tesztként.

2020. szept. 24. 13:02
 3/6 anonim ***** válasza:
Vedd ki az exitet a végéről és akkor nem fogja bezárni, illetve el tudod olvasni a hibaüzenetet.
2020. szept. 24. 14:15
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

Sajnos úgy is bezárul, de sikerült kifotóznom, nincsen hibaüzenet, egészen egyszerűen nem végzi el a parancsot:

[link]

2020. szept. 24. 14:47
 5/6 anonim ***** válasza:

Ha CMD-ből (parancssorból) indítod el, akkor nem fogja bezárni.

Egyrészt az a gond, hogy rosszul zárójelezted és a kiterjesztés is a zárójelben van (ezért kérdezi meg, hogy fájl vagy könyvtár a cél).

Másrészt ott még lehet ibaüzenet, mielőtt bezáróik. Szóval kérlek, nyiss egy parancsort (start menü és cmd, aztán enter) és futtasd le abban.

2020. szept. 24. 15:51
Hasznos számodra ez a válasz?
 6/6 CspCsj ***** válasza:

Ha egy MÁSOLAT nevű mappába másolnád, akkor hiányzik egy fordított perjel, mert így a C: főkönyvtárába valószínűleg nem tudod másolni.


Meg az XCOPY /E paramétere miatt nálam ezt írta:

Cannot perform a cyclic copy


Egyébként a szóközök miatt kell zárójelezés? Kicserélheted aláhúzásokra.


Így működött:

set ujnev=%date% %time%

set ujnev=%ujnev:. =_%

set ujnev=%ujnev::=_%

set ujnev=%ujnev:~0,-6%

echo F|xcopy "c:\eredeti\akarmi.xlsx "c:\masolat\%ujnev%.xlsx" /y /h /f

2020. szept. 24. 18:53
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!