Toon posts:

[XP] CMD sorteert 1, 11,12.., 2 ipv 1, 2,..11, 12 *

Pagina: 1
Acties:
  • 114 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

We hebben een probleem met het uitprinten van autocad bestanden.
Deze worden middels een script weggeschreven naar *.plt bestanden en deze worden vervolgens met het dos commando copy *.plt >lpt1 geprint.
Dit werkt allemaal goed alleen worden de pagina's niet op de juiste volgorde uitgeprint.
Hij begint nu met 1, 10,11,2,3,4,5,6,7,8,9.
Alles wat met een 1 begint komt eerst en dan alles met een 2.
We moeten nu we dus handmatig sorteren.
Als ik in dos in de map kijk waar deze bestanden staan en er volgens een "dir" op los laat dan is deze volgorde ook zo! 1,10,11,2,3......
Hoe krijg ik dit in dos op de goede volgorde? (1,2,3,4,5,6,7,8,9,10,11)

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Sorteer op datum, of zorg dat de files 01, 02, etc gaan heten (in de bronapplicatie of door een scriptje).

Ik pas de titel even aan: 'Dos sorteer probleem' zegt niet zo veel. Heb je het trouwens over DOS (zeg command.com) of over commandline van eeen Windows versie? Behoorlijk verschillend.

[ Voor 47% gewijzigd door F_J_K op 15-09-2007 23:17 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Tp21
  • Registratie: December 2003
  • Laatst online: 26-11-2025
denk maar eens aan het alfabet, de '1' is de 'a' en de '2' is de 'b'
dan is de volgorde ook a, aa, b, bb.

dit is op te lossen door er een '0' voor te zetten (dus 01, 02, 03, 04).

  • Nitroglycerine
  • Registratie: Januari 2002
  • Laatst online: 13:09

Nitroglycerine

Autisme: belemmering en kracht

Onder vista (werkt geloof ik niet zo bij 2000/XP vanwege de nieuwe command shell):
code:
1
dir /OD /A-D /B

/OD sortering op datum, oudste eerst
/A-D laat geen directories zien
/B eenvoudige weergave, geen bestandsgrootte etc

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
22
25
89
110

Nu heb ik de bestanden netjes op volgorde gemaakt, als ik nu een bestand 13 aan zou maken komt die achter de 110 te staan.

De volgende sortering,
[code]
dir /ON /A-D /B
op alfabet, geeft de volgende uitvoer
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
10
11
110
12
2
22
25
3
4
5
6
7
8
89
9


Edit: deze sortering werkt enkel bij het commando dir, niet bij het copy commando. Indien je geen voorloopnul kunt genereren, en het een windows-command shell is, dan zou ik je adviseren om een linux shell (cygwin bijv) erop te zetten en in deze shell de diverse sorteringen & queue-ing te doen, onder dos/windows command is het onbegonnen werk.

[ Voor 33% gewijzigd door Nitroglycerine op 15-09-2007 23:32 ]

Hier kon uw advertentie staan


Verwijderd

Topicstarter
Dit is gekomen nadat we zijn overgestapt op Windows Xp.
Windows 98 en 2000 had dit probleem niet!
Ik kan het Autocad script wel nakijken, maar heb daar niet zoveel verstand van.
Maar er een 0 voorzetten helpt ook niet denk ik, want dan komt er overal een 0 voor en dan is de volgorde nog hetzelfde!
Waarom dat deze sorteerd begrijp ik ook wel.
Ik kan ook wel sorteren op datum, althans met het dir-commando, maar niet met het copy-commando, dus het wordt nog niet juist geprint!
Ik moet dan op een of ander manier de indeling van de map, binnen dos, kunnen sorteren.
Maar weet niet hoe en of dit kan?
Misschien moet ik maar help gaan zoeken voor het script in Autocad te bewerken.

edit:
Net te laat!
Word dus kijken in het script.

[ Voor 4% gewijzigd door Verwijderd op 15-09-2007 23:38 ]


Verwijderd

Als je "ren ?.plt 0?.plt" doet renamed ie alleen 1,2,3... en niet 11,12,13.. naar 01,02,03.. probeer maar.
success

/edit * is een wildcard voor een of meerdere tekens, ? is een wildcared voor slechts een teken. /edit

[ Voor 31% gewijzigd door Verwijderd op 15-09-2007 23:40 ]


  • Nitroglycerine
  • Registratie: Januari 2002
  • Laatst online: 13:09

Nitroglycerine

Autisme: belemmering en kracht

Je kunt een script maken wat met behulp van het dir commando eerst een sortering maakt welke je wilt hebben, en vervolgens deze sortering regel voor regel uitlezen en het bestand wat op die regel staat uitprinten. Ik zou niet weten of dit in XP te doen is, in een bash shell (dus ook cygwin) is het eenvoudig te doen.

Hier kon uw advertentie staan


Verwijderd

Topicstarter
Dat is een mogelijke oplossing.
Maar wat als we meer als 100 pagina's moeten printen?
(Dit komt wel wat minder voor overigens)
edit:

Reactie op 303Viper

[ Voor 13% gewijzigd door Verwijderd op 15-09-2007 23:41 ]


Verwijderd

Een beetje knullig maar: eerst "ren ?.plt 0?.plt" dan "ren ??.plt 0??.plt" en als meer dan 999 pagina's
"ren ???.plt 0???.plt"
dit kun je ook gewoon in een batch stoppen :)

  • blobber
  • Registratie: Juli 2000
  • Niet online

blobber

Sol Lucet Omnibus

Verwijderd schreef op zaterdag 15 september 2007 @ 23:33:
Dit is gekomen nadat we zijn overgestapt op Windows Xp.
Windows 98 en 2000 had dit probleem niet!
Kun je niet die oude commandline van 98 of 2000 in xp gebruiken?
edit:
hoeft niet, zie onder voor een oplossing

[ Voor 9% gewijzigd door blobber op 16-09-2007 06:15 ]

To See A World In A Grain Of Sand, And A Heaven In A Wild Flower, Hold Infinity In The Palm Of Your Hand, And Eternity In An Hour


Verwijderd

Topicstarter
Knullig?
Als het werkt?
Ik ga dit uitproberen.
Logisch gezien zou het moeten werken.

Verwijderd

Probeer het, en laat het even weten ;)

Verwijderd

Topicstarter
303Viper,

Die oplossing werkt (hier) niet!
Krijg een foutmelding:
Er bestaat een dubbele bestandsnaam
of het bestand is niet gevonden.

  • Nitroglycerine
  • Registratie: Januari 2002
  • Laatst online: 13:09

Nitroglycerine

Autisme: belemmering en kracht

fear, als je een *nix shell die je als programma binnen windows draait (zoals cygwin) wilt proberen, kun je het volgende kleine scriptje gebruiken:
code:
1
2
3
4
5
6
#!/bin/bash
cd <zet hier het pad neer met / als directory-scheidingsteken, bijvoorbeeld /temp voor c:\temp>
ls -l | awk '{print $9}' | sort -n | while read BESTAND
do
   lpr ${BESTAND}
done

Hier kon uw advertentie staan


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Ik weet niet in hoeverre
The sort order for files and folders whose names contain numerals is different in Windows Vista, Windows XP, and Windows Server 2003 than it is in Windows 2000
ook effect heeft op de commandshell?
Dat zou denk ik een makkelijker oplossing zijn dan overal Cygwin op kwakken ;)


En dan zetten we gelijk maar even het target OS in de titel en halen we DOS weg, want er zit helemaal geen DOS meer in XP :+

[ Voor 28% gewijzigd door alt-92 op 16-09-2007 00:56 ]

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • DigiK-oz
  • Registratie: December 2001
  • Laatst online: 11:49
Het sorteren van filenamen is sinds XP inderdaad anders, maar kan je weer aanpassen naar het pre-XP formaat. Of dit dan ook voor een command-prompt geldt of alleen in explorer weet ik niet.

http://www.pctools.com/guides/registry/detail/1293/

edit: shit, te traag

[ Voor 7% gewijzigd door DigiK-oz op 16-09-2007 00:55 ]

Whatever


  • GeeBee
  • Registratie: Maart 2000
  • Laatst online: 02-03 22:18

GeeBee

Oddball

Zoiets zit ook in TweakUI, de powertoy van Microsoft. Intuitive sorting zo uit m'n hoofd.
Misschien is dat een optie?

Woof, woof, woof! That's my other dog imitation.


Verwijderd

Topicstarter
Ik heb met TweakUI dat Intuitive filename sorting uitgezet, maar dat helpt niets.
Wel veranderd er iets in de Windows Verkenner, deze worden dan het zelfde gesorteerd als in de "DOS" omgeving. (in hoe verre je nog mag spreken van DOS-omgeving!)
Dus dit helpt niet!

Misschien dat ik toch naar de "cygwin" oplossing moet gaan kijken.

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Waarom schrijf je eigenlijk niet gewoon een klein executabletje in VB / Delphi (desnoods VBA, zit bij Office) of iets anders die dit doet?

Shell scripting onder Windows is zo 1999 :p

We are pentium of borg. Division is futile. You will be approximated.

Pagina: 1