Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

  • dokasensai
  • Registratie: Februari 2004
  • Laatst online: 10-03 16:19
beste mede tweakers,

Ik ben bezig met een batch file aan het schrijven om bepaalde bestanden uit verschillende directories te verplaatsen naar een map en daarna te bewerken. Als de bewerking is uitgevoerd dat dan de naam aangepast word van de file

Zie hier onder:

copy "E:\DataIn\P30THERMO\OuputStatData\*avg*.000" "E:\DataIn\__conversie\*.*"
copy "E:\DataIn\P40THERMO\OuputStatData\*avg*.000" "E:\DataIn\__conversie\*.*"
copy "E:\DataIn\P50THERMO\OuputStatData\*avg*.000" "E:\DataIn\__conversie\*.*"

c:\Program Files\argconv.exe -i E:\DataIn\__conversie\ -o E:\_Argus\DataOut\ -f tab

echo ren P60THERMO_AVG*.000 P60THERMO_AVG.txt
echo ren P40THERMO_AVG*.000 P40THERMO_AVG.txt
echo ren P30THERMO_AVG*.000 P30THERMO_AVG.txt


Nu is mijn vraag of ik de waardes

P60THERMO
P40THERMO
P30THERMO

Die je op meerdere punten in het script ziet terug komen Als variable kan gebruiken en hoe ik dat het beste kan doen.


alvast bedankt voor jullie hulp

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Waarom echo je commando's naar het scherm, ipv ze uit te voeren? Die renames worden op die manier natuurlijk niet uitgevoerd.

Haal "echo" weg uit "echo ren"

Ey!! Macarena \o/


  • dokasensai
  • Registratie: Februari 2004
  • Laatst online: 10-03 16:19
@Raz

klopt die moeten nog weg maar die staan er nog tijdelijk tussen. Omdat dat in de test script nog niet uitgevoerd hoefde te worden.

  • willemd
  • Registratie: Oktober 2002
  • Niet online
@echo off

set TESTMAP=c:\asdfasdfasdf
echo %TESTMAP%


aan te passen naar wens ;)

  • dokasensai
  • Registratie: Februari 2004
  • Laatst online: 10-03 16:19
@ het Leoh-Paard

Deze snap ik als het om de mappen gaat maar zoals je in het script ziet komt die de waarde niet alleen in folders voor maar ook in files. en ook die moeten de zelfde variable mee krijgen

  • Wiethoofd
  • Registratie: Juli 2007
  • Laatst online: 17-11 00:47

Wiethoofd

Broadcast TOM

Leoh legt gewoon uit hoe je een 'variabele' set in een batch file.
@echo off
set "variabelenaam=variabelewaarde"
echo %variabelenaam%
REM Hierboven zal dus 'variabelewaarde' in je cmd venster staan

set "var2=%variabelenaam%\foo"
echo %var2%
REM Hierboven zal dus 'variabelewaarde\foo' staan


Het is trouwens sneller/makkelijker om met robocopy mappen/bestanden te verplaatsen of kopiëren of te synchroniseren.

[ Voor 16% gewijzigd door Wiethoofd op 14-01-2013 23:26 ]

Volg me op Twitter/X & Bluesky


  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 14:11

The Eagle

I wear my sunglasses at night

Wat ie bedoelt is dat je met
code:
1
set %variabelenaam%=bla

een variabele kunt maken en daar een waarde aan kunt toekennen ;)

Edit: Damn you Wiethoofd :P

maar om deze post dan toch nog nutig te maken: zolang je een variabele in een command line sessie toekent, kan ie gebruikt EN veranderd worden. Wat je dus zou kunnen toen is meerdere keren de waarde van de variabele veranderen, en dan per directory je logica af te werken. Ofzo ;)

Kijk trouwens ook even naar het "forfiles" batch commando. Da's nog ietsje krachtiger, alleen wel wat lastiger te progremmeren. Dat gaat ineens een hele subdir te lijf als het moet, en kan vziw ook met archiefbits ed werken :P

[ Voor 67% gewijzigd door The Eagle op 14-01-2013 23:28 ]

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Hij wil een gedeelte uit de mapnaam gebruiken voor in de bestandsnaam.

Dan moet je toch de boel op de backslash kunnen exploden, en enkel dat in een variabele zetten, om het daarna in de rename te gebruiken. Een krachtig commando voor lussen is: for

Of je daar ook kan exploden weet ik eigenlijk niet, zelf nooit nodig gehad.

Maar om even een beetje offtopic te gaan als het om batch gaat. Ben je nog toevallig een andere taal wel machtig? Want behalve batch zijn er nog andere opties. PowerShell, VBscript, en ook PHP kan gewoon op de CLI draaien.

Ey!! Macarena \o/


  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

Je kunt ook commandline variabelen gebruiken
bathfilename parameter1 parameter2 parameter3

Je batchfile komt er dan zo uit te zien
code:
1
2
3
4
5
6
7
8
9
copy "E:\DataIn\%1\OuputStatData\*avg*.000" "E:\DataIn\__conversie\*.*"
copy "E:\DataIn\%2\OuputStatData\*avg*.000" "E:\DataIn\__conversie\*.*"
copy "E:\DataIn\%3\OuputStatData\*avg*.000" "E:\DataIn\__conversie\*.*"

c:\Program Files\argconv.exe -i E:\DataIn\__conversie\ -o E:\_Argus\DataOut\ -f tab 

echo ren %1_AVG*.000 %1_AVG.txt
echo ren %2_AVG*.000 %2_AVG.txt
echo ren %3_AVG*.000 %3_AVG.txt

Dus gewoon %1 voor de eerste variabele, %2 voor de tweede variabele, etc. etc.

QnJhaGlld2FoaWV3YQ==

Pagina: 1