2016-12-14 2 views
0

Je reçois une erreur de syntaxe lors de la définition des variables. Quelqu'un peut-il me dire si je me trompe?Fichier batch: la syntaxe est incorrecte lors de la définition des variables

@echo off 
setlocal EnableDelayedExpansion 
cd C:\data 
for %%i in (*.pgp) 
do 
(
set encrypted=%%i 
    set decrypted=!encrypted:.gpg=! 
    gpg --batch --yes --passphrase "xyz" -o !decrypted! --decrypt !encrypted! 
) 
endlocal 

si je fais la même logique avec des Seting toutes les variables, il fonctionne

Répondre

1
for %%i in (*.pgp) 
do 
(

doit être codé

for %%i in (*.pgp) do (

ie. le do et le ) et le ( après le do doivent tous être sur la même ligne physique.

Aussi, dans votre remplacer set, avez-vous spécifié .gpg à la place de .pgp? (Auquel cas, %%~ni pourrait être utilisé à la place de la substitution.

dans la ligne gpg, peut-être vous avez besoin de citer les chaînes décryptées et cryptées, ou vous pourriez éventuellement utiliser « %%~ni » et « %%i » respectivement.

+0

Merci beaucoup, ça fonctionne maintenant. – sagarika