ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 26 Mai 2015, 15:47 
Offline
Schüler
Benutzeravatar

Registriert: 25 Mai 2014, 10:06
Beiträge: 37
Der Code:



1
2
3
4
5
6

def backup
t = Time.now
FileUtils.mkdir("C:/aix_changer/backups/"+t.to_s)
FileUtils.copy("C:/backup.txt", "C:/aix_changer/backups")
end


Ich möchte, das mein Programm ein Backup von einer Datei anlegt, in diesem Fall von der "backup.txt".
Allerdings will ich davor auch einen Ordner erstellen, der als Namen die momentane Uhrzeit & Datum nutzt.
Ich habe es wie im Code oben versucht, das funktioniert jedoch nicht. Die Fehlermeldung sagt mir nicht viel.
Danke für Hilfe.

MfG
Jietzo


Nach oben
 Profil  
 
BeitragVerfasst: 26 Mai 2015, 16:15 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
Jietzo hat geschrieben:
Die Fehlermeldung sagt mir nicht viel.


Vielleicht sagt sie uns aber etwas... Wenn du schon eine Fehlermeldung bekommst, dann poste sie bitte gleich mit, erspart uns das nachfragen und beschert dir potentiell schneller eine Antwort.

Spontan bleibt aber nur zu sagen, dass folgendes bei mir funktionierte:



1
2
3
4
5
6
7
8
require "fileutils"
#=> true
targetdir = "/home/nobbz/tmp/backup/" + Time.now.to_s
#=> "/home/nobbz/tmp/backup/2015-05-26 16:11:55 +0200"
FileUtils.mkdir(targetdir)
#=> ["/home/nobbz/tmp/backup/2015-05-26 16:11:55 +0200"]
FileUtils.copy("/home/nobbz/.zshrc", targetdir + "/.zshrc")
#=> nil

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
BeitragVerfasst: 26 Mai 2015, 17:07 
Offline
Schüler
Benutzeravatar

Registriert: 25 Mai 2014, 10:06
Beiträge: 37
Ahja, deine Version ist aufjedenfall Sinnvoller, jedoch bekomme ich immer noch einen Fehler bei diesem Code hier:


1
2
3
4
5
6

def backup
targetdir = "C:/aix_changer/backups/" + Time.now.to_s
FileUtils.mkdir(targetdir)
FileUtils.copy("C:/alive.txt", targetdir + "/alive.txt")
end


immer diesen Error:



1
2
3
4
5
6
7
8
9
C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/green_shoes-1.1.374/lib/shoes/ruby.rb:14:
in `exit_application': super: no superclass method `exit_application' for GLib:M
odule (NoMethodError)
from C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/green_shoes-1.1.374/lib/shoe
s/main.rb:123:in `main'
from C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/green_shoes-1.1.374/lib/shoe
s/main.rb:123:in `app'
from shoes.rb:7:in `shoos'
from shoes.rb:29:in `<main>'


Hier ist zwar von green_shoes die Rede, aber daran liegt es nicht. Weil immer wenn ich die entscheidenen Zeilen von FileUtils lösche, funktioniert es einwandfrei..

MfG
jietzo


Zuletzt geändert von NobbZ am 26 Mai 2015, 17:17, insgesamt 1-mal geändert.
Codeeinrückung korrigiert


Nach oben
 Profil  
 
BeitragVerfasst: 26 Mai 2015, 17:20 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
Dann geht es jetzt auf 2 Pfaden weiter…

Erstens:

Wenn du das Backupzeug von deiner Shoes-App isoliert betreibst, funktioniert es dann?

Zweitens:

Wie rufst du denn das ganze auf? Steht der Aufruf von Backup zufälligerweise am Ende einer Funktion deren Rückgabewert laut Shoes nicht nil sein darf?

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
BeitragVerfasst: 26 Mai 2015, 17:31 
Offline
Schüler
Benutzeravatar

Registriert: 25 Mai 2014, 10:06
Beiträge: 37
Also wenn ich es Isoliere bekomme ich das hier:


1
2
3
4
5
6
7
8

C:/Ruby21-x64/lib/ruby/2.1.0/fileutils.rb:250:in `mkdir': Invalid argument @ dir
_s_mkdir - C:/aix_changer/backups/2015-05-26 08:28:57 -0700 (Errno::EINVAL)
from C:/Ruby21-x64/lib/ruby/2.1.0/fileutils.rb:250:in `fu_mkdir'
from C:/Ruby21-x64/lib/ruby/2.1.0/fileutils.rb:179:in `block in mkdir'
from C:/Ruby21-x64/lib/ruby/2.1.0/fileutils.rb:178:in `each'
from C:/Ruby21-x64/lib/ruby/2.1.0/fileutils.rb:178:in `mkdir'
from image.rb:5:in `<main>'


Ich rufe es über die Ruby cmd auf, also einfach mit "ruby file.rb"

MfG
Jietzo


Nach oben
 Profil  
 
BeitragVerfasst: 26 Mai 2015, 17:48 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
Google sagt, dass es am Ordnernamen liegen könnte, versuche mal alle nicht alphanumerischen Zeichen aus dem Zielpfad zu entfernen.

Dazu kommt, dass ich nicht weiß inwiefern sich Ruby, Windows und Slashes vertragen.

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
BeitragVerfasst: 26 Mai 2015, 18:35 
Offline
Lehrling

Registriert: 14 Jul 2008, 19:53
Beiträge: 79
Ob Forward- oder Backslash ist egal. Die Doppelpunkte sind es jedoch nicht:



Time.now.to_s # => "2015-05-26 18:32:51 +0200"


Nach oben
 Profil  
 
BeitragVerfasst: 27 Mai 2015, 09:16 
Offline
Schüler
Benutzeravatar

Registriert: 25 Mai 2014, 10:06
Beiträge: 37
Stimmt!
.. Ich habe es jetzt mal so versucht:



1
2
3
4
5
6
7
8

require "fileutils"

time = Time.new
date = time.strftime("%x")
tdir = "C:/aix_changer/backups/"+date
FileUtils.mkdir(tdir)
FileUtils.copy("C:/alive.txt", tdir + "/alive.txt")


Eigentlich kommst da auch raus:

=> "C:/aix_changer/backups/05/26/15"

Aber wenn ich es dann Anwende bekomme ich folgenden Error:



1
2
3
4
5
6
7
C:/Ruby21-x64/lib/ruby/2.1.0/fileutils.rb:250:in `mkdir': No such file or direct
ory @ dir_s_mkdir - C:/aix_changer/backups/05/27/15 (Errno::ENOENT)
from C:/Ruby21-x64/lib/ruby/2.1.0/fileutils.rb:250:in `fu_mkdir'
from C:/Ruby21-x64/lib/ruby/2.1.0/fileutils.rb:179:in `block in mkdir'
from C:/Ruby21-x64/lib/ruby/2.1.0/fileutils.rb:178:in `each'
from C:/Ruby21-x64/lib/ruby/2.1.0/fileutils.rb:178:in `mkdir'
from image.rb:6:in `<main>'


Edit:
Ach ne.. "/" Funktioniert ja genauso wenig wie Doppelpunkte als Ordername..

Edit2:

Alles klar ich habs:


1
2
3
4
5
time = Time.new
date = time.strftime("%Y-%m-%d")
tdir = "C:/aix_changer/backups/"+date
FileUtils.mkdir(tdir)
FileUtils.copy("C:/alive.txt", tdir + "/alive.txt")


:) Danke für die Hilfe!


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron