Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Переименовывание файла. В пути есть пробелы. (http://forum.oszone.net/showthread.php?t=144596)

starzkv 09-07-2009 10:32 1162781

[решено] Переименовывание файла. В пути есть пробелы.
 
Как можно переименовать файл? В пути к файлу есть пробелы.
Цитата:

REN C:\Program Files\IVT Corporation\BlueSoleil\setup.dll 1.dll
Вот так не получается.
Подскажите, пожалуйста, решение.

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

Petya V4sechkin 09-07-2009 10:38 1162788

starzkv, возьмите в кавычки.

starzkv 09-07-2009 10:42 1162794

Цитата:

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

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

zeroua 07-02-2011 15:29 1606845

​Не хочу создавать новую тему, вопрос такой:

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

Код:

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

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

SendMessage 08-02-2011 07:28 1607369

Цитата:

Цитата zeroua
хочется чтобы новое имя *.msi пакета было такое же как и у *.cmd в котором будет переименовывание »

Не очень понятна постановка задачи.
Внутри батника-то можно это прописать.
Код:

ren этомсипакет.msi %~n0.msi

gora 08-02-2011 09:41 1607436

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 1607443

есть кусочек скрипта он работает так как надо, но не так как я хочу:

Код:

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 1607448

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

zeroua 08-02-2011 10:58 1607479

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 1607515

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



Время: 15:34.

Время: 15:34.
© OSzone.net 2001-