mmarkuss
Goto Top

Copy - Syntaxfehler, eigentlich einfach, aber...

Hallo allerseits

BItte nicht den Kopf schütteln, bin Autodidakt und Anfänger

In einem CAM-Programm wird die berechnete nc-Datei direkt an den Controller übergeben.
Ich möchte diese aber in einem bestimmten Verzeichnis abspeichern.

Nun habe ich herausgefunden, dass die Übergabe mit %1 geschieht.

Also folgende kleine Batch geschrieben und den Pfad dazu in die registry anstatt der ausführenden Datei geschrieben :

copy %1 D:\Datenspeicher

pause

Ergebnis:
D:\ZD\ZirkoCAM_Neu>copy d:/Blankdaten/1/ZD_20120216_094335/CAMMill.NC D:\Datenspeicher
Syntaxfehler.

D:\ZD\ZirkoCAM_Neu>pause
Drücken Sie eine beliebige Taste . . .

Die Befehlszeile "copy d:/Blankdaten/1/ZD_20120216_094335/CAMMill.NC D:\Datenspeicher"
ist eigentlich genau das, was ich wollte - warum Syntaxfehler ???

Dank im Voraus für Eure Mühe

MmarKuss

Content-Key: 180611

Url: https://administrator.de/contentid/180611

Printed on: April 19, 2024 at 12:04 o'clock

Mitglied: 60730
60730 Feb 16, 2012 at 09:06:32 (UTC)
Goto Top
Moin,

Tausch einfach die slashes gegen backslashes aus und wenn du die taste eh schon unterm finger hast, spendiere dem letzten buchstaben am ende der ersten zeile auch einen.
Member: MmarKuss
MmarKuss Feb 16, 2012 at 09:14:33 (UTC)
Goto Top
Danke für die schnelle Antwort, aber ...

batch jetzt:

copy %1 D:/Datenspeicher/

pause


Ergebnis:


D:\ZD\ZirkoCAM_Neu>copy d:/Blankdaten/1/ZD_20120216_100919/CAMMill.NC D:/Datensp
eicher/
Syntaxfehler.


dumm gelauft face-sad

D:\ZD\ZirkoCAM_Neu>pause
Drücken Sie eine beliebige Taste . . .
Member: Skyemugen
Skyemugen Feb 16, 2012 at 09:16:04 (UTC)
Goto Top
...
slashes gegen backslashes

D:/Datenspeicher/
copy d:/Blankdaten/1/ZD_20120216_100919/CAMMill.NC D:/Datenspeicher/
WTF?!
Member: MmarKuss
MmarKuss Feb 16, 2012 at 09:17:49 (UTC)
Goto Top
eben fällt mir auf:

in der Kommandozeile "copy %1 D:\Datenspeicher"

war doch ursprünglich ein Backslash, den ich jetzt sinnigerweise duch
slash ersetzt habe - Anfänger eben- sorry
Member: icsat
icsat Feb 16, 2012 at 09:19:31 (UTC)
Goto Top
Hallo MmarKuss,

Zitat von @MmarKuss:
dumm gelauft face-sad
Nicht wirklich, eher falsch gelesen.
Zitat von @60730:
Tausch einfach die slashes gegen backslashes aus und wenn du die taste eh schon unterm finger hast, spendiere dem letzten
buchstaben am ende der ersten zeile auch einen.
Dort steht nicht, dass Du die backslashes gegen slashes austauschen sollst!!!


Gruß icsAT


[Edit]Da waren mal wieder jemand schneller als ich und Du hast ja auch bereits gemerkt, dass Timo den Übergebenen Wert (welchen Du mit %1 benutzt) meinte[/Edit]
Member: MmarKuss
MmarKuss Feb 16, 2012 at 09:26:18 (UTC)
Goto Top
OK, war selbst für nen Anfänger doof, geb ich zu.

Aber so müsste es jetzt richtig sein, oder ???

copy %1 D:\Datenspeicher\

PROBLEM die Antwort:


D:\ZD\ZirkoCAM_Neu>copy d:/Blankdaten/1/ZD_20120216_102050/CAMMill.NC D:\Datensp
eicher\
Syntaxfehler.

Die Slashes in "D:/Blankdaten...." macht doch der Befehl "copy %1", oder ?
Member: MmarKuss
MmarKuss Feb 16, 2012 at 09:37:39 (UTC)
Goto Top
Ihr habt recht, hab das mit den Backslashes mal per Hand probiert:

copy d:\Blankdaten\1\ZD_20120216_102050\CAMMill.NC D:\Datenspeicher\

Ergebnis, wie gewünscht:


D:\ZD\ZirkoCAM_Neu>copy d:\Blankdaten\1\ZD_20120216_102050\CAMMill.NC D:\Datensp
eicher\
1 Datei(en) kopiert.

Damit reduziert sich meine Frage auf das Problem: wie bekomme ich die Kommandozeile

copy %1 ................. dazu, keine Slashes, sondern Backslashes auszugeben ????????????


Ich hoffe, einer vor Euch hat eine Idee, mir rennt im Moment die Zeit davon und die Kiste muss noch heute laufen...

Danke
Member: Skyemugen
Skyemugen Feb 16, 2012 at 09:38:30 (UTC)
Goto Top
>copy E:\Skripte\test.csv E:\Test
        1 Datei(en) kopiert.

>pause
Drücken Sie eine beliebige Taste . . .
nö?
Member: MmarKuss
MmarKuss Feb 16, 2012 at 09:42:09 (UTC)
Goto Top
Zitat von @Skyemugen:
>copy E:\Skripte\test.csv E:\Test
>         1 Datei(en) kopiert.
> 
> >pause
> Drücken Sie eine beliebige Taste . . .
nö?

Doch, siehe meinen Beitrag über Deinem: von Hand schon,

aber mit "copy %1" macht er automatisch Slashes.....
Mitglied: 60730
60730 Feb 16, 2012 at 09:45:05 (UTC)
Goto Top
Zitat von @MmarKuss:
Die Slashes in "D:/Blankdaten...." macht doch der Befehl "copy %1", oder ?

Jein,
  • das Programm übergibt / statt \ - läuft das unter einem *ux Derivat?

"wenn" der Pfad immer identisch ist, dann...

for /f "tokens=1-5 delims=/" %%a in ('echo %1') do echo copy %%a\%%b\%%c\%%d\%%e D:\Datenspeicher\  
pause
probieren

Und nein - durch das letzte echo zeigt er es nur an, macht nix
Member: Skyemugen
Skyemugen Feb 16, 2012 at 09:47:49 (UTC)
Goto Top
Nö?
Mein Batch war mit drag&drop copy %1 E:\Test
[Windows XP Prof. x86]
Member: MmarKuss
MmarKuss Feb 16, 2012 at 09:52:45 (UTC)
Goto Top
@timobeil <- probiert:

eingeben: for /f "tokens=1-5 delims=/" %%a in ('echo %1') do echo copy %%a\%%b\%%%c\%%d\%%e D:/Datenspeicher\


Resultat:

D:\ZD\ZirkoCAM_Neu>for /F "tokens=1-5 delims=/" %a in ('echo d:/Blankdaten/1/ZD_
20120216_104829/CAMMill.NC') do echo copy %a\%b\%/Datenspeicher\

D:\ZD\ZirkoCAM_Neu>echo copy d:\Blankdaten\%/Datenspeicher\
copy d:\Blankdaten\%/Datenspeicher\

da tut sich was mit dem Tausch, von Slashes in Backslashes, aber noch nicht ganz.
Sorry, ich versteh den String nicht, hab ihn einfach kopiert.
Member: MmarKuss
MmarKuss Feb 16, 2012 at 10:15:48 (UTC)
Goto Top
Hallo TimoBeil,

danke für Deine ( und für alle ) Hilfe.
Habe in deinem String ein überflüssiges % ( vor dem "c") weggenommen und grinsenderweise
den Slash vor "Datenspeicher" in einen Backslash geändert - echo raus und läuft SUPER


VIELEN DANK

und Gruss

MmarKuss
Mitglied: 60730
60730 Feb 16, 2012 at 10:29:24 (UTC)
Goto Top
salve,

aber wie gesagt - das ist nur mal eben kurz und wenn der Pfad mehr oder weniger als genau 5 / hat - greift das Ding in die Grütze.

Den copy & paste übernommenen / vor datenspeicher und das zuviele % hab ich oben mal rausgenommen...
Member: MmarKuss
MmarKuss Feb 16, 2012 at 10:47:00 (UTC)
Goto Top
Der übergebene Pfad wird bei meinem Programm von der Grundstruktur
immer gleich bleiben , daher müsste es in meinem Fall auch immer greifen.

-> MmarKuss happy, glücklich und zufrieden face-smile
Member: bastla
bastla Feb 16, 2012 at 10:47:57 (UTC)
Goto Top
@t-mo
wenn der Pfad mehr oder weniger als genau 5 / hat - greift das Ding in die Grütze.
... was sich aber eigentlich so lösen lassen sollte:
set "Quelle=%~1"  
copy "%Quelle:/=\%" D:\Datenspeicher\  
Grüße
bastla
Mitglied: 60730
60730 Feb 16, 2012 at 10:59:25 (UTC)
Goto Top
Moin Bastla

Zitat von @bastla:
@t-mo
> wenn der Pfad mehr oder weniger als genau 5 / hat - greift das Ding in die Grütze.
... was sich aber eigentlich so lösen lassen sollte:
set "Quelle=%~1"  
> copy "%Quelle:/=\%" D:\Datenspeicher\  
> 
Moin Bastla,

[OT]
  • hüstel
Mein Kind ist krank, mein Kopf ist leer und gefrühstückt hatte ich auch nicht richtig, da wollte mein Hirn nur mal eben schnell murksen, statt zaubern..
[/OT]
Grüße
bastla

Hat schon nen Grund, warum du einer der beiden Bs aus dem B Bereich bist face-wink

Grüße
Member: bastla
bastla Feb 16, 2012 at 11:48:56 (UTC)
Goto Top
[OT] @t-mo
Na dann kann ich Kind und Kopf nur gute Besserung wünschen ... face-smile
Hat schon nen Grund, warum du einer der beiden Bs aus dem B Bereich bist face-wink
Du meinst, weil "astla" irgendwie seltsam klingt? face-wink

Grüße
bastla
[/OT]
Member: Skyemugen
Skyemugen Feb 16, 2012 at 12:46:53 (UTC)
Goto Top
[uber-OT]
Zitat von @bastla:
Du meinst, weil "astla" irgendwie seltsam klingt? face-wink
Macht nichts, wäre in Japan aber beliebter, da asutora [アストラ] nicht so sehr an ein böses Wort von der Aussprache erinnert wie basutora [バストラ] klingt dann fast wie bastard zehahaha *duck*
[/uber-OT]
Member: bastla
bastla Feb 16, 2012 at 13:46:33 (UTC)
Goto Top
[uber-OT-RE]
Aber zum "bastard batcher from hell" bringe ich's vermutlich trotzdem nicht ... face-wink

Grüße
bastla
[/uber-OT-RE]
Member: Skyemugen
Skyemugen Feb 16, 2012 at 13:57:04 (UTC)
Goto Top
[usw.etc.pp-OT]
Stimmt, dazu bist du zu gutmütig face-wink

greetz André
[/usw.etc.pp-OT]

na, da ham wa aber wieder den Fred vollgemüllt *fg*
Member: MmarKuss
MmarKuss Feb 16, 2012 at 20:26:35 (UTC)
Goto Top
So, nun bin ich vom Kunden zurück - läuft Alles vom Feinsten.

Hab den Thread nun weiterverfolgt - und
( nicht neugierig - das sind nur weibliche Wesen...duckundwech)
wissensdurstig, wie ich nun mal bin, habe ich bastla´s Version gleich mal ausprobiert - geht genauso gut


DANKE


MmarKuss, der zwar (noch) nicht kapiert, was ihr da zusammengezaubert habt, der aber total happy ist.

PS: Beitrag wurde komplett umgeschrieben, da ich beim Testen Mist gebaut hatte ...sorry
Member: bastla
bastla Feb 16, 2012 at 20:37:53 (UTC)
Goto Top
Hallo MmarKuss!

Na dann freut's mich auch ... face-smile

Grüße
bastla

[Edit] War was? face-wink [/Edit]
Member: MmarKuss
MmarKuss Feb 16, 2012 at 20:45:30 (UTC)
Goto Top
Hast recht, bastla, sorry, das mit dem Sticheln geht wirklich massiv ins Auge.

Hatte Deinen Tip einfach mal so als batch laufen lassen - konnte nicht funzen, da es keine "%1" gab.
Berechnung der nc laufen lassen und dann Deine bat laufen lassen <- perfekt.

Folge: hab meinen Beitrag über dem Deinem in tiefer Demut komplett umgepostet.

MmarKuss, der nie wieder sticheln wird...
Member: bastla
bastla Feb 16, 2012 at 20:50:04 (UTC)
Goto Top
Hallo MmarKuss!

Noch zu
nicht kapiert, was ihr da zusammengezaubert habt
Ich habe einfach den Quellpfad in eine Variable übernommen und dann eine Zeichenersetzung ("/" wird durch "\" ersetzt) vorgenommen (die zuätzliche Variable ist erforderlich, da derartige Operationen mit den Parametervariablen nicht möglich sind); mehr dazu mit "set /?" (und dort ist dann
    %PATH:str1=str2%

Dies erweitert die PATH-Umgebungsvariable, wobei jede Instanz von "str1" im
erweiterten Ergebnis mit "str2" ersetzt wird. "str2" kann die leere
Zeichenfolge sein, um alle Instanzen von "str1" aus der erweiterten Ausgabe zu
löschen. Wenn "str1" mit einem Sternchen beginnt, steht "str1" für alles
zwischen dem Anfang der erweiterten Ausgabe bis zum ersten Auftreten des
übrigen Abschnitts von "str1".
interessant) ...

Grüße
bastla
Member: MmarKuss
MmarKuss Feb 16, 2012 at 20:55:26 (UTC)
Goto Top
...mal so ganz unverschämt gefragt:

Das Ganze geht zwar jetzt perfekt, aber gibt es eigentlich auch die Möglichkeit,
ein kleines Fortschrittsfensterchen zu generieren - mit dem Ergebnis:

"Cammill.nc erfolgreich kopiert "

bzw ( wenn das Lan-Netzwerk des geliebten Kunden mal wieder abkippt)


"Kopieren gescheitert, bitte wiederholen" - oder so ähnlich.

Ich weiss, ich bin unverschämt, aber es kann mich hier ja keiner live verhauen...face-smile
Member: MmarKuss
MmarKuss Feb 16, 2012 at 20:59:00 (UTC)
Goto Top
Danke für die Erläuterung,

im Prinzip hatte ich das schon kapiert, aber die Syntax hätte ich selbst und
alleine nie zusammenbekommen -

noch nicht, bin ja erst am Anfang...face-smile
Member: bastla
bastla Feb 16, 2012 at 21:01:35 (UTC)
Goto Top
Hallo MmarKuss!

"Fortschrittsfensterchen" ist nicht, aber eine Auswertung des Errorlevels kann natürlich erfolgen:
@echo off & setlocal
set "Quelle=%~1"  
copy "%Quelle:/=\%" D:\Datenspeicher\ >nul && (echo "%~nx1" erfolgreich kopiert.) || (echo Kopieren gescheitert, bitte wiederholen!)  
pause
Grüße
bastla
Member: MmarKuss
MmarKuss Feb 16, 2012 at 21:04:54 (UTC)
Goto Top
Perfekt, danke,

kann man dich mieten ???
Member: bastla
bastla Feb 16, 2012 at 21:06:06 (UTC)
Goto Top
Hallo MmarKuss!
kann man dich mieten ???
Nö - ich batche / scripte nur nach Lust und Laune ... face-wink

Grüße
bastla
Member: MmarKuss
MmarKuss Feb 16, 2012 at 21:10:25 (UTC)
Goto Top
grins - dann um so mehr danke

aber im Ernst, wenn schon, dann suche ich einen Prorammierer,
der sich mit 3D-Visualisierungen ( vtk - oder ???) auskennt und das in
C++ umsetzen kann.

Problem: im Lohnauftrag unbezahlbar - so bleiben eben gute Ideen auf der Strecke.

Grüsse zurück von

MmarKuss
Mitglied: 60730
60730 Feb 16, 2012 at 21:50:37 (UTC)
Goto Top
Zitat von @MmarKuss:
kann man dich mieten ???

[OT]
aber ein /v kannst du Ihm gerne kaufen face-wink
[/OT]
copy /v "%Quelle:/=\%" D:\Datenspeicher\ >nul && (echo "%~nx1" erfolgreich kopiert.) || (echo Kopieren gescheitert, bitte wiederholen!)   
Member: bastla
bastla Feb 16, 2012, updated at Oct 18, 2012 at 16:50:05 (UTC)
Goto Top
Hallo T-Mo!

"/v" wird sicher nicht schaden face-wink - wir könnten Biber aber mal fragen, ob er das auch hinsichtlich "copy ohne x" sagen würde ...

Grüße
bastla