2010-04-08 9 views
0

J'ai un fichier de commandes qui s'exécute lorsqu'un fichier auto-extractible est exécuté.Enregistrer le chemin du fichier de traitement par lots sur le disque dur local

L'extraction automatique des fichiers doivent être copiés dans un répertoire spécifique sur le disque dur.

Dans le fichier batch que l'utilisateur est demandé où le chemin est (si ce n'est pas situé dans le lieu par défaut).

Une partie du fichier batch:

Maintenant, pour ma question.

Si un utilisateur saisit alors un nouveau chemin, est-il possible de sauver ce chemin. Donc, quand il exécute à nouveau le fichier auto-extractible, il peut se souvenir de ce nouveau chemin?

+0

Vous savez qu'il existe une variable d'environnement appelée '% ProgramFiles%' qui vous évite d'avoir à coder en dur le chemin? – Joey

+0

ok, mais je semble avoir un problème car il y a un signe "&" dans le chemin. Voici le chemin: C: \ Program files \ Prog & sample \ J'ai essayé de sauvegarder le chemin vers le fichier texte avec des guillemets, mais cela n'a pas aidé non plus – Brian

Répondre

1

Vous pouvez enregistrer le chemin vers un certain fichier sous% USERPROFILE% en faisant

echo %PROGRAMPATH% > "%USERPROFILE%\AppData\Local\progpath.txt" 

puis le lire en faisant

set /p PROGRAMPATH=<"%USERPROFILE%\AppData\Local\progpath.txt" 

Le lot complet ressemblera à ceci

@ECHO OFF 

set PROGRAMPATH=C:\Program Files\ 

IF EXIST "%USERPROFILE%\AppData\Local\progpath.txt". (
    set /p PROGRAMPATH=<%USERPROFILE%\AppData\Local\progpath.txt 
) 

IF NOT EXIST "%PROGRAMPATH%\program.exe". (
    echo Program folder was not found. Please enter the path for Program 
    set /p PROGRAMPATH=Path: 
) 

echo %PROGRAMPATH%>"%USERPROFILE%\AppData\Local\progpath.txt" 

echo Copying data to "%PROGRAMPATH%"... 
copy /Y "*.txt" "%PROGRAMPATH%" 
+0

Salut Ghostrider, Merci, il semble qu'il pourrait faire le tour. Mais pourriez-vous s'il vous plaît me montrer était de mettre les lignes? Cela ne fonctionne pas pour moi, alors peut-être que j'ai inséré les lignes dans les mauvais endroits. – Brian

+0

hmmm, il écrit bien le chemin vers progpath.txt mais il ne l'utilise jamais. Il me demande toujours pour le PROGRAMPATH – Brian

+0

Assurez-vous que vous utilisez intégré dans Windows echo (plutôt que echo.exe qui vient avec cygwin ou similaire). Cela a fonctionné pour moi sur Windows 7. YMMV – Ghostrider

Questions connexes