windows - problem læsning args fra batch script

Indlæg af Hanne Mølgaard Plasc

Problem



På windows forsøger jeg at erhverve filnavnet ved hjælp af parameteren\% ~ f1.


Jeg gør dette fra en ny stemme (kommando), som jeg har tilføjet til kontekstmenuen.


I Windows-registreringsdatabasen kalder stemmen simpelthen et batch script, der udskriver filnavnet,
på denne måde:


`C:script.bat \%~f1`


men jeg får denne output:


`C:Documents and SettingsAdministratorDesktop\%~f1`


så stien er ok, men hvad med filnavnet ?!


Forslag? Tak!

Bedste reference


Når kontekstmenupunktet udløste det, gøres det af Explorer (ikke cmd.exe), og Explorer implementerer ikke\% ~ f1. Derfor får du det aktuelle resultat.


Hvad du behøver, er at ændre scriptet, så det modtager hele filnavnet (du vil nok kun anbringe 'C: \ script.bat\% 1' eller 'C: \ script.bat' i registreringsdatabasen) og opdatere dit script for at bruge\% ~ f1:


@echo first argument: \%1
@echo filename only: \%~f1
@notepad \%~f1


Held og lykke med det!

Andre referencer 1


Prøv at omslutte hele variablen i\% s.


C:script.bat \%~f1\%