web-dev-qa-db-fra.com

"était inattendu à cette époque."

J'exécute cette commande sur un fichier batch:

for %I in (*.txt *.doc) do copy %I c:\test2

... et il revient sans cesse:

J'étais inattendu à ce moment.

Quelle est la cause de cette erreur?

35
Ricardo Moura

Si vous utilisez un fichier batch/cmd, vous devez double le % Marqueurs:

for %%i in (*.txt *.doc) do copy %%i c:\test2

Le seul % variant ne fonctionne qu'à partir de la ligne de commande.

51
paxdiablo

Si elles sont exécutées à partir d'un fichier de commandes, les variables doivent être signalées par des signes à deux pour cent, comme %%I, uniquement à partir de la ligne de commande, vous en utilisez un

4
jsvk

J'ai rencontré un cas où j'obtenais cette erreur à partir d'un fichier nommé * .cmd. L'erreur s'est produite lorsque j'ai essayé d'accéder au premier argument de la commande batch:

if %1 EQU ""

Une fois que j'ai mis des guillemets autour du symbole pour le premier argument, le message d'avertissement a disparu:

if "%1" EQU ""
3
C Johnson

Pas une réponse directe à la question, mais si vous rencontrez ce message dans un programme, une commande par lots, etc., il est très probablement lié à votre PATH contenant " personnages.

Par exemple, dans l'éditeur Atom, je recevais le message dans la vue des paramètres.

"\"GNU was unexpected at this time

Cela était dû à un programme différent mettant dans mon PATH l'entrée suivante

...;C:\"Program Files"\"GNU ARM Embedded;..."

Pour cette raison, le caractère antislash est lu comme échappé par certains programmes, ce qui provoque des problèmes car il ne s'agit pas d'un délimiteur de chemin mais d'un simple caractère.

La solution pour moi était de supprimer ces " du PATH, et tout a bien fonctionné.

...;C:\Program Files\GNU ARM Embedded;...

PS: J'ai un doute quant à savoir si cela peut avoir un impact sur le programme d'origine (GNU ARM Embedded dans ce cas) qui ne prend peut-être pas en charge les espaces dans les noms de chemin. Si quelqu'un avec plus d'informations peut clarifier dans le commentaires, je mettrai à jour mon message.

J'espère que cela t'aides

1
Overdrivr