Войти

Показать полную графическую версию : [решено] Переменные в XP проблема


Basiak
17-10-2014, 14:23
Ребят, спасайте, уже всю голову сломал и половину инета излазил. Имеется код с переменными который отлично выполняется на Windows 7 и совсем не хочет выполнятся в XP. Вот кусок кода

if exist %USERPROFILE%\1\ (
msg * "PriVet!"
) else (
msg * "Poka"
)
pause

Пишет and не является внутренней или внешней командой и т.д.

И почти со всеми переменными. кроме windir, programfiles, systemDrive.
Пробывал на двух XP запускать, одна из них только что установленная + обновленная.
Версия cmd 5.1.2600.

gora
17-10-2014, 15:39
Пишет and не является внутренней или внешней командой и т.д. »
Переменная %USERPROFILE% в ХР содержит пробелы и путь с ней нужно заключать в кавычки.if exist "%USERPROFILE%\1\" (
...
Кстати, и в win7 эта переменная может содержать пробелы, и Вам просто повезло.

Basiak
17-10-2014, 16:33
Переменная %USERPROFILE% в ХР содержит пробелы и путь с ней нужно заключать в кавычки. »
Клево!
Простите за наглость, может тогда подскажите есть строчка

for %%a in ("%vobmen%\Export_*.xls") do (echo.%%~na>>%vlog% & set /a sum+=1)
echo Количество старых файлов !sum! >>%vlog%

в семерке писала в файл названия всех найденых файлов (%%~na) и общее количество, а в XP теперь пишет не название а:
Documents
and
Рабочий
И всегда количество файлов пишет три. Вне зависимости 1 там или 5.

Оу, понял свой косяк - необходимо так:
for %%a in (%vobmen%\"Export_*.xls") do (echo.%%~na>>%vlog% & set /a sum+=1)

gora »
Огромное спасибо!

gora
17-10-2014, 17:13
необходимо так:
for %%a in (%vobmen%\"Export_*.xls") do (echo.%%~na>>%vlog% & set /a sum+=1) »
Лучше так:
for %%a in ("%vobmen%\Export_*.xls") do (echo.%%~na>>"%vlog%" & set /a sum+=1)
Ибо переменные %vobmen% и %vlog% тоже могут иметь пробелы. Вообще кавычки в таких местах - "правило хорошего тона" в программировании.




© OSzone.net 2001-2012