Je ne sais pas comment décrire exactement ce que j'essaie de faire, mais voici un exemple de fichier batch qui montre ce que je ne peux pas comprendre:Comment définir une variable d'environnement sur une valeur avec des espaces dans un fichier batch?
J'ai un fichier batch. L'intérieur de ce fichier batch que je suis en train de créer un répertoire:
Set CopyFrom = %~dp0
if Exist "%ProgramFiles(x86)" (
Set TargetDir = %ProgramFiles(x86)%\My Directory Name has spaces
)
md %TargetDir%\NewSubFolder
copy %CopyFrom%\SourceFile.zip %TargetDir%\NewSubFolder
Mon fichier batch échoue sur la ligne 4 Set TargetDir =...
avec:
\My was unexpected at this time
Je suppose que c'est parce que j'ai des espaces dans mon nom du chemin Je pensais que je pouvais envelopper ma variable avec des guillemets:
Set TargetDir = "%ProgramFiles(x86)%\My Directory Name has spaces"
Mais quand je rentre à la ligne qui crée le répertoire échoue car %TargetDir%
est maintenant entre guillemets doubles. Est-ce que cela peut être résolu ou devrais-je simplement écrire un VBScript pour trier les choses?
Merci, c'était juste le billet, très apprécié. – BobTheBuilder
Il ne m'est jamais venu à l'esprit que je pourrais emballer l'ensemble de l'article après avoir placé entre guillemets ... bien sûr, ce n'est pas vraiment intuitif? – BobTheBuilder
Non, pas intuitif. (Pas grand-chose à propos de la ligne de commande de Windows est - c'est pourquoi je suis passé à PowerShell). Je pense à ceci: les deux côtés du "=" sont un seul argument à la commande set. – zdan