[CMD] NTFS Alternate Data Stream ophalen lukt niet

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Ravefiend
  • Registratie: September 2002
  • Laatst online: 06-10 18:10

Ravefiend

Carpe diem!

Topicstarter
Alternate Data Streams op een NTFS file system laten toe om extra data semi-verborgen op te slaan. Aan de hand van wat voorbeelden die ik gevonden had, ben ik ermee aan de slag gegaan en dat lukt wel aardig. Waar ik tegenaan loop is dat ik de data niet kan ophalen in een batch script als ik probeer de bestandnaam zelf op te geven, ipv %~0 wat toch in weze hetzelfde is.

Uiteindelijk doel is om bv één bestand te gebruiken als data source voor een een aantal batch scripts.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
D:\app\scripts\other>echo gevonden1 > myscript1.bat:mydata

D:\app\scripts\other>echo gevonden2 > myscript2.bat:mydata

D:\app\scripts\other>more < myscript1.bat:mydata
gevonden1

D:\app\scripts\other>more < myscript2.bat:mydata
gevonden2

D:\app\scripts\other>cd\other

D:\other>more < myscript1.bat:mydata
gevonden1

D:\other>more < myscript2.bat:mydata
gevonden2

D:\other>myscript1.bat
mydata) was unexpected at this time.

D:\other>more myscript1.bat
@echo off
for /f "usebackq delims=" %i in (myscript1.bat:mydata) do set MYDATA1=%i
echo [%MYDATA1%]

D:\other>myscript2.bat
[gevonden2 ]

D:\other>more myscript2.bat
@echo off
for /f "usebackq delims=" %%i in (%~0:mydata) do set MYDATA2=%%i
echo [%MYDATA2%]



Waarom werkt myscript1.bat:mydata niet en %~0:mydata wel?

Acties:
  • 0 Henk 'm!

  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

Heb je (start myscript1.bat:mydata) al eens geprobeerd? Ik denk dat die regel gewoon niet goed geparsed wordt door CMD en dat ie myscript1.bat:mydata (op die plek) niet als een bestandsnaam interpreteert.

Zo dus:
code:
1
2
3
@echo off
for /f "usebackq delims=" %i in (start myscript1.bat:mydata) do set MYDATA1=%i
echo [%MYDATA1%]

Acties:
  • 0 Henk 'm!

  • Ravefiend
  • Registratie: September 2002
  • Laatst online: 06-10 18:10

Ravefiend

Carpe diem!

Topicstarter
Zonder meer een parse probleem van cmd maar ook met start werkt het dus niet.

Acties:
  • 0 Henk 'm!

  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

Ravefiend schreef op donderdag 07 augustus 2014 @ 13:18:
Zonder meer een parse probleem van cmd maar ook met start werkt het dus niet.
Ik heb dit keer even getest maar er zit gewoon een fout in jouw code. Deze is fout:

code:
1
2
3
@echo off
for /f "usebackq delims=" %i in (myscript1.bat:mydata) do set MYDATA1=%i
echo [%MYDATA1%]


Deze is goed:
code:
1
2
3
@echo off
for /f "usebackq delims=" %%i in (%~0:mydata) do set MYDATA2=%%i
echo [%MYDATA2%]


Zoek de verschillen.

spoiler:
Het gaat dus om %%i vs %i

[ Voor 5% gewijzigd door downtime op 07-08-2014 13:52 ]


Acties:
  • 0 Henk 'm!

  • Ravefiend
  • Registratie: September 2002
  • Laatst online: 06-10 18:10

Ravefiend

Carpe diem!

Topicstarter
Zo simpel inderdaad! Ik had me ondertussen al helemaal blind gestaard op dat script ondertussen ...

Thx a lot downtime! d:)b