2008-10-11, 01:58
  #1
Medlem
PuffTheDragons avatar
Tjena!
Jag har ett litet problem;

Jag vill ha en batchfil som raderar delar av rader i en textfil.

Säg att jag har en textfil med följande rader:
HTML-kod:
64.Zoo.Lane.2008.DVDRip.XviD-NTXViD
7-Man.Army.1976.DVDRip.XviD-iLS
och jag vill enbart ha texten bakom sista "-".

Denna kod har jag fixat;
Kod:
FOR /F "tokens=1* delims=- skip=2" %%G IN (lista.txt) DO @ECHO %%H>>grupp.txt

Men den raderar bara allt framför första "-".
Hur gör jag för att radera allt framför den sista "-"?
Citera
2008-10-11, 03:30
  #2
Bannlyst
Du är helt ute och cyklar.

Först och främst måste du ändra om hela C# koden.
Lägg till psio i "FileName = @"C:\ och sedan "-" vid tecknet som anger det sista i texten.
Sedan måste du ändra om benämningen på vpn-statusen.

Lycka till!

/olldon
Citera
2008-10-11, 12:23
  #3
Medlem
PuffTheDragons avatar
Citat:
Ursprungligen postat av olldon
Du är helt ute och cyklar.

Först och främst måste du ändra om hela C# koden.
Lägg till psio i "FileName = @"C:\ och sedan "-" vid tecknet som anger det sista i texten.
Sedan måste du ändra om benämningen på vpn-statusen.

Lycka till!

/olldon

Jaså är jag ute och cyklar? Jag trodde jag var rätt, eftersom koden delvis fungerar.

om lista.txt innehåller:
64.Zoo.Lane.2008.DVDRip.XviD-NTXViD
7-Man.Army.1976.DVDRip.XviD-iLS

så kommer batchfilen skriva en ny fil (group.txt) såhär:
NTXViD
Man.Army.1976.DVDRip.XviD-iLS

Eftersom det är två delimiters i andra raden och bara en i första. Så blir det problem för alla rader med fler än en delimiter.

Men om jag har helt fel? Hur ska koden se ut?
Citera
2008-10-12, 15:37
  #4
Medlem
PuffTheDragons avatar
Jag antar att det inte finns någon som kan lösa detta?
Damn, satt uppe hela natten och försökte lösa problemet... :P
Citera
2008-10-12, 15:45
  #5
Medlem
truperts avatar
Citat:
Ursprungligen postat av PuffTheDragon
Jaså är jag ute och cyklar? Jag trodde jag var rätt, eftersom koden delvis fungerar.

om lista.txt innehåller:
64.Zoo.Lane.2008.DVDRip.XviD-NTXViD
7-Man.Army.1976.DVDRip.XviD-iLS

så kommer batchfilen skriva en ny fil (group.txt) såhär:
NTXViD
Man.Army.1976.DVDRip.XviD-iLS

Eftersom det är två delimiters i andra raden och bara en i första. Så blir det problem för alla rader med fler än en delimiter.

Men om jag har helt fel? Hur ska koden se ut?


Alltså jag har ingen aning, men är det inte bara att köra listan 2 gånger?
Första gången så får du ju fram:
Man.Army.1976.DVDRip.XviD-iLS
från
7-Man.Army.1976.DVDRip.XviD-iLS

Andra gången borde du ju få fram
iLS
från
Man.Army.1976.DVDRip.XviD-iLS

7-Man.Army.1976.DVDRip.XviD-iLS -->
Man.Army.1976.DVDRip.XviD-iLS -->
iLS
Citera
2008-10-12, 15:51
  #6
Medlem
R.Rs avatar
Citat:
Ursprungligen postat av olldon
Du är helt ute och cyklar.

Först och främst måste du ändra om hela C# koden.
Lägg till psio i "FileName = @"C:\ och sedan "-" vid tecknet som anger det sista i texten.
Sedan måste du ändra om benämningen på vpn-statusen.

Lycka till!

/olldon

Jag tror någon behöver en kurs i programmering
Citera
2008-10-12, 16:02
  #7
Medlem
Jag tvivlar på att friska människor gör sådana saker med windows batch. Ditt kommando ser fruktansvärt plågsamt ut. Ditt problem är en sådan där typisk sak som unix-program löser i sömnen. Jag skulle rekommendera att du installerar en sådan programsamling på din maskin. UWIN kan jag rekommendera, Cygwin är en annan populär variant.

Kod:
awk -F- '{print $NF}' lista.txt >group.txt

sed 's/.*-//' lista.txt >group.txt
är två tänkbara lösningar
Citera
2008-10-12, 16:05
  #8
Medlem
PuffTheDragons avatar
Citat:
Ursprungligen postat av trupert
Alltså jag har ingen aning, men är det inte bara att köra listan 2 gånger?
Första gången så får du ju fram:
Man.Army.1976.DVDRip.XviD-iLS
från
7-Man.Army.1976.DVDRip.XviD-iLS

Andra gången borde du ju få fram
iLS
från
Man.Army.1976.DVDRip.XviD-iLS

7-Man.Army.1976.DVDRip.XviD-iLS -->
Man.Army.1976.DVDRip.XviD-iLS -->
iLS

Nej lägger jag till en rad till som gör samma sak med den nya listan, så finns ingen delimiter på de rader där det är som det ska och då blir det fel på dem. Men rätt på de med två delimiters.
Citera
2008-10-12, 16:09
  #9
Medlem
PuffTheDragons avatar
Citat:
Ursprungligen postat av Katalysator
Jag tvivlar på att friska människor gör sådana saker med windows batch. Ditt kommando ser fruktansvärt plågsamt ut. Ditt problem är en sådan där typisk sak som unix-program löser i sömnen. Jag skulle rekommendera att du installerar en sådan programsamling på din maskin. UWIN kan jag rekommendera, Cygwin är en annan populär variant.

Kod:
awk -F- '{print $NF}' lista.txt >group.txt

sed 's/.*-//' lista.txt >group.txt
är två tänkbara lösningar
Det är möjligt att friska personer inte gör det, men jag har inte hävdat att jag är varken frisk eller sjuk
Jag är inte insatt i varken UWIN eller Cywin, så jag har ingen aning om vart jag ska börja. Det känns lite väl ambitiöst om jag ska installera det och lära mig en massa nytt, bara för att få denna lilla sak att fungera.
Men visst kan jag installera det, om du förklara hur jag göra det enklast?
MVH /Kristoffer
Citera
2008-10-12, 16:30
  #10
Medlem
Citat:
Ursprungligen postat av PuffTheDragon
Det är möjligt att friska personer inte gör det, men jag har inte hävdat att jag är varken frisk eller sjuk
Jag är inte insatt i varken UWIN eller Cywin, så jag har ingen aning om vart jag ska börja. Det känns lite väl ambitiöst om jag ska installera det och lära mig en massa nytt, bara för att få denna lilla sak att fungera.
Absolut, det håller jag med om, men du verkar ambitiös ("uppe hela natten") och har du tänkt göra sådant här fler gånger är det nog väl värt det. Är det bara det här den här gången är nog den enklaste och snabbaste lösningen att editera det för hand i MS Word.
Citat:
Men visst kan jag installera det, om du förklara hur jag göra det enklast?
MVH /Kristoffer
Här kan du klicka dig vidare ifrån:
http://www.research.att.com/sw/tools/uwin/
annars är det bara att googla för glatta livet. Microsoft har ju också "Windows Services for UNIX" ( http://technet.microsoft.com/en-us/i.../bb380242.aspx ), det är möjligt att den är smidigare integrerad i resten av windows. Jag har aldrig provat den, så jag kan varken säga bu eller bä.
Citera
2008-10-12, 16:34
  #11
Medlem
PuffTheDragons avatar
Citat:
Ursprungligen postat av Katalysator
Absolut, det håller jag med om, men du verkar ambitiös ("uppe hela natten") och har du tänkt göra sådant här fler gånger är det nog väl värt det. Är det bara det här den här gången är nog den enklaste och snabbaste lösningen att editera det för hand i MS Word.
Nja det är inte bara en gång, utan scriptet skall köras flera gånger!

Citat:
Här kan du klicka dig vidare ifrån:
http://www.research.att.com/sw/tools/uwin/
Ska ta en titt, tack för tipset.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in