Войти

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


starzkv
09-07-2009, 10:32
Как можно переименовать файл? В пути к файлу есть пробелы.
REN C:\Program Files\IVT Corporation\BlueSoleil\setup.dll 1.dll
Вот так не получается.
Подскажите, пожалуйста, решение.

С уважением, Константин.

Petya V4sechkin
09-07-2009, 10:38
starzkv, возьмите в кавычки.

starzkv
09-07-2009, 10:42
REN "C:\Program Files\IVT Corporation\BlueSoleil\setup.dll" "1.dll"
Спасибо огромное. Помогло. Что то я упустил это из виду.
Еще раз спасибо.

С уважением, Константин.

zeroua
07-02-2011, 15:29
​Не хочу создавать новую тему, вопрос такой:

как мне переименовать

ren *.msi [имя исполняемого файла].msi

, скажем чтобы выдался запрос на переименовывание любого *.msi пакета в *.msi пакет с заданным именем, либо это тянулось скажем с текстового файла.

На сколько я понял это можно все реализовать через команду dir и цикл но я не очень пока это представляю, в целом хочется чтобы новое имя *.msi пакета было такое же как и у *.cmd в котором будет переименовывание. Например есть "этомсипакет.msi", имя *.cmd (pack.cmd), и команда по типу ren переименует этомсипакет.msi в pack.msi

SendMessage
08-02-2011, 07:28
хочется чтобы новое имя *.msi пакета было такое же как и у *.cmd в котором будет переименовывание »
Не очень понятна постановка задачи.
Внутри батника-то можно это прописать.
ren этомсипакет.msi %~n0.msi

gora
08-02-2011, 09:41
zeroua, так?::Папка, где ищем .msi файл (он должен быть один, иначе все файлы должны быть переименованы в одно имя!!!)
Set folder=My folder

For %%i In ("%folder%\*.msi") Do Del /Q "%~n0.msi" & Ren "%%~i" "%~n0.msi"

zeroua
08-02-2011, 09:59
есть кусочек скрипта он работает так как надо, но не так как я хочу:

ren *.msi %~n0.msi
MD %~dpn0
msiexec /a %~n0.msi /qn TARGETDIR="%~dpn0"

Мне бы хотелось чтобы в данном случае все работало даже если в папке 2 *.msi пакета, их отличие будет лишь в числах 32 и 64.Нужно чтобы 32-х битный пакет сделал административную установку в папку [name32], а 64-х в [name64], но при такой конструкции мне желаемого результата не достигнуть.

name это имя исполняемого файла(*.cmd ).

gora
08-02-2011, 10:12
zeroua
1 Приведите конкретные имена .msi файлов и их расположение относительно батника
2 В чем смысл их переименования при создании админ. точки? Чем не устраивают родные имена .msi файлов?
3 Эти имена являются фиксированными или они могут быть разными при запуске скрипта (приведите возможные варианты)?

zeroua
08-02-2011, 10:58
2 gora

1. 4 стандартных имени, если скачаны они с офф сайта. (2 для х32 и 2 для х64) eav_nt32_rus.msi; eav_nt64_rus.msi; ess_nt64_rus.msi, ess_nt32_rus.msi, но названия могу быть и другими, по поводу расположения, лучше скажем чтобы пакеты лежали в папке (downloads), ну а батник выше уровнем(как-то так)
2. привожу их к формату 8.3 (привычка приводить имена пакетов к формату 8.3)
3. нагляднее когда фиксированные названия, имхо.

gora
08-02-2011, 11:52
zeroua, так?
@Echo Off
SetLocal enabledelayedexpansion
:: Папка, где ищем .msi файлы
Set folder=My folder
:: Новые имена файлов (впишите какие нравятся)
:: Новые имена не должны содержать сочетаний символов по которым
:: производится поиск оригинальных имен, а именно: eav_ ess_ t32
Set NewName1=EAVx86ru
Set NewName2=EAVx64ru
Set NewName3=ESSx86ru
Set NewName4=ESSx64ru

For %%i In ("%folder%\*.msi") Do (
Set ti=%%~ni
If Not "!ti:eav_=!"=="!ti!" If Not "!ti:t32=!"=="!ti!" (Call :_ren "%%i" "%NewName1%") Else Call :_ren "%%i" "%NewName2%"
If Not "!ti:ess_=!"=="!ti!" If Not "!ti:t32=!"=="!ti!" (Call :_ren "%%i" "%NewName3%") Else Call :_ren "%%i" "%NewName4%"
)
Exit

:_ren
Del /Q "%~2.msi"
Ren %1 "%~2.msi"
GoTo :EOF




© OSzone.net 2001-2012