{title}

Hallo, ich arbeite daran, dass eine Tabelle automatisch von einer CD in den Ordner "Eigene Dateien" kopiert und sofort nach dem Kopieren von diesem Speicherort aus geöffnet wird. Hat jemand irgendwelche Vorschläge? Dies konnte ich bisher nach einer großartigen Hilfe von jemandem machen. Dies ist für das Kopieren gedacht. @ Echo offecho Kopieren von Dateien von CD.echo Bitte warten .::variablesset cdcopy = xcopy/s/c/e/h/i/r/y/dset dest =% userprofile% My Documentsset files = Dateiname.ods% cdcopy% "D: \% files%" "% dest% "% cdcopy% "E: \% files%" "% dest% "% cdcopy% "F: \% files% ""% dest% "% cdcopy%" G: \% files% ""% dest% "% cdcopy%" H: \% files% ""% dest% "% cdcopy%" I: \% files % ""% dest% "% cdcopy%" J: \% files% "% dest% "% cdcopy% "K: \% files% "% dest% "% cdcopy%" L: \% Dateien% ""% dest% "% cdcopy%" M: \% Dateien% ""% dest% "% cdcopy%" N: \% Dateien% ""% dest% "% cdcopy%" O: % files% ""% dest% "% cdcopy%" P: \% files% "% dest% "% cdcopy% "F: \% files% "% dest% "% cdcopy%" R: \% files% ""% dest% "% cdcopy%" S: \% files% ""% dest% "% cdcopy%" T: \% files% ""% dest% "% cdcopy%" U : \% files% ""% dest% "% cdcopy%" V: \% files% ""% dest% "% cdcopy%" W: \% files% ""% dest% "% cdcopy%" X: \% files% ""% dest% "% cdcopy%" Y: \% files% ""% dest% "% cdcopy%" Z: \% files% ""% dest% "clsecho Copy Complete .ExitIch habe damit begonnen und dies ist mein Problem. Es kopiert die Datei, zeigt danach jedoch diese Warnung an: "Es befindet sich kein Datenträger im Laufwerk. Legen Sie einen Datenträger in Laufwerk Device Harddisk1 DR1 ein." Anschließend wird er mit "Harddisk2 DR2, Harddisk 3 DR3 und Harddisk" wiederholt 4 DR4 "Irgendwelche Vorschläge?

Ich bin fasziniert. Sie scheinen zu versuchen, Filename.ods aus 23 verschiedenen Quellen (Laufwerke D: bis Z :) zu kopieren. Ist das eine Funktion von Win 7, mit der ich nicht vertraut bin, oder XCopy?

Nein; Es ist eine Funktion eines Skripts, das von jemandem erstellt wurde, der nicht weiß, welchen Laufwerksbuchstaben das CD-Laufwerk verwendet, es sei denn, er probiert alle Buchstaben des Alphabets aus! Dieser Ansatz führt zu dem beschriebenen Problem.

Danke S.T., ich hatte es mir gedacht. Ich bin überrascht, dass Sie keine Lektion über die Verwendung von Fsutil erteilt haben. Viele von uns können aus Ihren Eingaben lernen. Dies kann auf die ursprüngliche Anforderung des OP angewendet werden oder gilt nur für Win 7: Code: @echo offclsfor %% 1 in (abcdefghijklmnopqrstu vwxyz) do (fsutil fsinfo drivetype %% 1: | find/i/v "no such")

Code: @echo offsetlocal enabledelayedexpansion @ echo offecho Dateien von CD.echo kopieren Please Wait.::variablesset cdcopy = xcopy/s/c/e/h/i/r/y/dset dest =% userprofile% My Documentsset files = filename.odsfor/f "delims =" %% D in ('fsutil fsinfo drives') do (setze DriveString = %% Dset DriveString =! DriveString: ~ 8! für %% L in (! DriveString!) do (fsutil fsinfo Laufwerkstyp %% L | "CD-ROM"> "nul &&" suchen (falls vorhanden "%% L% files%" (% cdcopy% "%% L% files%" "% dest% "))

Vielen Dank, dass S.T. im Namen des OP, der verschwunden zu sein scheint, ich muss Ihnen mitteilen, dass ich Ihr Skript nicht zum Laufen bringen kann. In der For-Schleife scheint Fsutil Fsinfo Drives nur zurückzukehren Laufwerke: A: nicht die Zeichenfolge, die angezeigt wird, wenn diese Kombination an der Eingabeaufforderung eingegeben wird. Ich poste diesen geänderten Auszug aus Ihrem Skript, um zu zeigen, was ich meine: Code: @echo offsetlocal enabledelayedexpansionclsfor/f "delims =" %% D in ('fsutil fsinfo drives' ) do (setze DriveString = %% D echo Drivestring =! drivestring! echo. setze DriveString2 =! DriveString: ~ 8! echo Drivestring2 =! drivestring2!) Die Ausgabe ist Drivestring = Laufwerke: A: und Drivestring2 = A: Vielleicht ist dies eine Besonderheit meines Systems (XP Home SP.3) - Ratschläge erwünscht.

Hmm.Windows 7 ProfessionalCode: Drivestring = Laufwerke: C: D: E: F: H: L: S: X: Drivestring2 = C: D: E: F: H: L: S: X: XP Professional SP3Code: Drivestring = Laufwerke: A: Drivestring2 = A:

Diese Methode funktioniert unter Windows 7 Pro und XP Pro SP3Code: @echo offset DriveString = ABCDEFGHIJKLMNOPQRSTU VWXY Zfür %% L in (% DriveString%) do (falls vorhanden "%% L: " fsutil fsinfo drivetype %% L: | find "CD-ROM-Laufwerk")

S.T. - Ich habe Ihr neuestes Angebot unter Win XP Pro SP.3 ausprobiert und bin mit dem Windows-Fehler "Windows - Keine Festplattenausnahme - Prozessmeldung c0000013 Parameter usw." (siehe Anhang) in eine Endlosschleife (oder einen Absturz) geraten. Dies wurde durch Diskettenlaufwerk A verursacht: nicht bereit. Sobald ein Datenträger eingelegt oder A aus DriveString entfernt wurde, wurde Ihre Codierung ausgeführt, es wurde jedoch keine Ausgabe für eine zweite CD-ROM erstellt, wenn zwei physische Laufwerke installiert waren. Abgesehen davon - schön - danke. Mit Hilfe einer T. Salmi-Site habe ich das folgende Skript generiert, das nach mehr als einer CD sucht und eine Datei von dem Laufwerk kopiert, von dem die CD eingelegt ist. Das einzige Problem ist, dass die Ausführung sehr langsam ist und die Schleife beendet werden muss, wenn der Kopiervorgang abgeschlossen ist laufwerkstyp %% 1: | find/i "cd-rom"> nul && setze cdrom = %% 1 falls vorhanden! cdrom!: eadme.txt kopiere! cdrom!: eadme.txt g: > nul setze cdrom =)) Wenn das OP jemals zurückkehrt, kann es entscheiden, welches Skript verwendet werden soll, und die Pfade Dateinamen entsprechend ändern. Vielen Dank für Ihre Eingabe und Anleitung.

Es ist langsam, weil Sie fsutil + find aufgrund von 26 Buchstaben des Alphabets 26-mal aufrufen. Das ist das Problem der Verwendung von Batch. Sie haben nicht viel Kontrolle über die Tools, die Sie verwenden, was zu redundantem Code führt.Warum kann fsutil nicht angeben, nach welchem ​​Laufwerkstyp Sie suchen, wie z. B. fsutil fsinfo drivetype cdrom, und dann den Laufwerksbuchstaben anzeigen? Code: Const CDROM = 4Set objFS = CreateObject ("Scripting.FileSystemObject") Setzen Sie shell = CreateObject ("Shell.Application") für jedes Laufwerk in objFS.Drives If drives.DriveType = CDROM Dann cd = drives.DriveLetter & ": " WScript.Echo cd End IfNext

Vielen Dank, dass Sie G.D. von: G.D.Yes abgelegt haben. Dies ist zu schätzen, wenn Sie die For-Schleife verlassen, sobald der Kopiervorgang abgeschlossen ist, müssen Sie den Rest der var nicht mehr abfragen. von: G.D.OMG du hast mich in die fsutil specs eintauchen lassen, um zu sehen, ob es möglich ist. Was Ihre Frage betrifft, stimmen Sie vollkommen zu. Wenn ich das nächste Mal zu einem Treffen in Redmond eingeladen werde, erwähne ich Ihren Vorschlag auf höchster Ebene. Suchen Sie am Dienstag nach dem Patch, aber halten Sie nicht den Atem an. Vielen Dank für das VB-Skript, eine weitere Option, falls das OP jemals zurückkehrt, um seinen Preis zu erhalten. Aber dann ist der Aufruf für ein Batch-Skript.

Es ist in der Tat sinnlos, die Laufwerksbuchstaben A oder B (und wahrscheinlich auch C) zu testen, um festzustellen, ob es sich um CD-ROM-Laufwerke handelt sollte bei mehreren CD-ROM-Laufwerken den Laufwerksbuchstaben des letzten Laufwerks angeben.

Das schien damals eine gute Idee zu sein, ist aber natürlich völlig überflüssig.

Auf einem 2 Monate alten AMD Phenom II X4 3.0 GHz-Computer unter Windows 7 wurden 26 Laufwerksbuchstaben durchlaufen, von denen 5 den tatsächlichen Volumes entsprechen.Code: start 18: 16: 34.75end 18: 16: 35.02270 milliseconds; Etwas mehr als ein Viertel von 1 Sekunde.Auf einer 6 Jahre alten P4 3.0 GHz-Maschine mit 4 verwendeten Laufwerksbuchstaben.Code: Start 18: 25: 09.45Ende 18: 25: 09.78330 Millisekunden; etwas langsamer; Ich denke, deine Langsamkeit muss auf etwas anderes zurückzuführen sein. von: The Ghost DogDu bist es eigentlich nicht; Wenn Sie den Code lesen, wird fsutil für jeden vorhandenen Laufwerksbuchstaben einmal aufgerufen. from: PhantomHoundEs hilft, den Code zu verstehen.

Normalerweise (unter normalen Umständen) werden nicht so viele Laufwerksbuchstaben verbraucht. In diesem Fall müssten Sie jedoch diese Schleife durchlaufen und für jedes Laufwerk einen Test durchführen. dh (wenn "Z" wirklich der Laufwerksbuchstabe für CDROM ist). Ich hätte wirklich sagen sollen, dass er die Schleife verlassen muss, sobald der CD-ROM-Laufwerksbuchstabe gefunden wurde, damit er den Rest der Buchstaben nicht durchgeht.

Meine CD-ROM-Laufwerksbuchstaben sind X auf einem Computer und Z auf einem anderen. Wenn 26 Buchstaben ungefähr 250 ms dauern, warum sollte ich mir Sorgen machen?

Nun, das ist in Ordnung, wenn Sie sich an einer einfachen Aufgabe messen, z. B. einem Laufwerksbuchstaben, und das ist alles. Im Allgemeinen ist es noch besser, einen effizienteren Ansatz zu verwenden, wenn innerhalb der for-Schleife andere Zwischenaufgaben ausgeführt werden müssen. Ich weiß, nicht jeder ist ein Geschwindigkeitsfreak wie ich.

Ein Geschwindigkeitsfreak, der interpretierte Sprachen bevorzugt?

Fast was wir tun, beinhaltet Interpretation. Sie schreiben eine Batch-Datei, die von cmd.exe interpretiert wird. wie vbscript, Python, Perl. usw. Wenn ich "Speed ​​Freak" erwähne, spreche ich davon, Dinge auf die effizienteste Art und Weise zu tun, ohne ein echtes C-Programm (oder was zum Teufel, Assembler) selbst zu schreiben. Ich möchte auch die Kraft und die schnelle Entwicklungszeit einer interpretierten Sprache. verstanden?

Dieser Satz kann so viele unterschiedliche Auslegungen annehmen

mögen?

Denk darüber nach.

Ich habe meinen Fall bereits dargelegt. Die Sache auf die effizienteste Art und Weise erledigen. 1) Geschwindigkeit der Entwicklung. Mit guten Datenstrukturen und der einfachen Bedienung meiner Tools kann ich Programme erstellen, um meine Aufgabe in weniger als ein paar Minuten zu erledigen. 2) Mit einem guten Tool kann ich die Dinge, die ich tun möchte, besser kontrollieren und die Chancen verringern redundanten Code zu schreiben. Mit weniger redundantem Code wird mein Programm/Skript schneller ausgeführt. Wenn Sie nicht sagen wollen, was Sie meinten, was ist dann Ihr Sinn beim Posten?

Darum geht es in diesem Thread.

Ja, in diesem Thread geht es darum. Meine Antworten begannen jedoch mit dem Kommentar von TC zur Langsamkeit seiner Charge, der nicht direkt für das OP bestimmt war, trueparadox.

Info: Fenster reinigen

Jedes Mal, wenn ich ein Explorer-Fenster schließe (z. B. Eigene Dateien), wird in IE 7 eine leere Seite angezeigt. Ich überprüfte, ob ich das about: blank-Virus hatte, hatte es aber nicht. Ich habe nicht nur ein gewöhnliches Virenentfernungsprogramm verwendet. Ich habe ein spezielles Programm zum Entfernen von Leerzeichen heruntergeladen. Nachdem ich das Entfernungsprogramm ausprobiert hatte, öffnete ich "Eigene Dateien" und schloss es wieder. Ich habe dieses Problem bereits zuvor gesehen, aber die Antwort war, zu überprüfen, ob Sie das "Ungefähr" -Virus hatten. Weiß jemand Bescheid Wie kann man das verhindern?

Lassen Sie mich das fragen. Haben Sie about.com als einen Ihrer Suchanbieter in Ihrem IE7-Browser aufgeführt? Wenn Sie dies tun, entfernen Sie es aus Ihrer Liste der Suchanbieter, leeren Sie Ihren Internet-Cache und prüfen Sie, ob es fortgesetzt wird Ergebnisse hier.

Ich habe mir die Liste der Suchanbieter angesehen. Ich hatte about.com nicht in der Liste. Der einzige aufgeführte Anbieter war Google.com.

Wenn Sie ein Sicherheitsprogramm haben, das nach Malware sucht, können Sie die Systemwiederherstellung deaktivieren. Starten Sie Ihren PC im abgesicherten Modus und führen Sie einen vollständigen Systemscan durch. Starten Sie anschließend Ihren PC neu und schalten Sie die Systemwiederherstellung wieder ein.

Beliebte Beiträge