CMD/BAT - [решено] Смена расширения

Ответить
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Смена расширения

Сообщение Iska »

Цитата Burning Hell:



Так вот зачем пишут эту штуку, с echo)
CMD/BAT - [решено] Смена расширения




Угу. Если опустить «@» перед «echo off», то, при прочих умолчаниях, при исполнении этого пакетного файла первой строкой вывода будет именно «echo off» — сама эта команда, а подавление начнётся со следующей.
Аватара пользователя
Burning Hell

Re: CMD/BAT - [решено] Смена расширения

Сообщение Burning Hell »

Iska,




Цитата Burning Hell:



И еще такой вопрос. Можно ли как-то научить этот код обрабатывать директорию, которая лежит в шаре? При этом сам скрипт лежит на локальном диске.
CMD/BAT - [решено] Смена расширения




Пробовал делать вот так:





Код:

Код: Выделить всё

net use z: \\docs\i\Подразделения\НД\ДК\ОСС\Проекты
for /r "z:\EY\InfoM\scripts" %i in ("*.cmd.txt") do @ren "%i" "%~ni"

Не работает. При том, что сам сетевой диск подключился и открывается.
Аватара пользователя
Burning Hell

Re: CMD/BAT - [решено] Смена расширения

Сообщение Burning Hell »

Burning Hell, при использовании внутри пакетных файлов «%» при переменных цикла и параметрах надо удваивать, наподобие:



Код:

Код: Выделить всё

@echo off
net.exe use z: "\\docs\i\Подразделения\НД\ДК\ОСС\Проекты"
for /r "z:\EY\InfoM\scripts" %%i in ("*.cmd.txt") do ren "%%i" "%%~ni"
Аватара пользователя
Burning Hell

Re: CMD/BAT - [решено] Смена расширения

Сообщение Burning Hell »

Iska, спасибо огромное, дело действительно в знаках "%". Но при запуске скрипта выдает ошибки: "Сохраняемый или полученный файл заблокирован." Пробовал выдать права не только на чтение непосредственно для директории scripts - не помогло.
Аватара пользователя
Burning Hell

Re: CMD/BAT - [решено] Смена расширения

Сообщение Burning Hell »

Цитата Burning Hell:



Но при запуске скрипта выдает ошибки: "Сохраняемый или полученный файл заблокирован."
CMD/BAT - [решено] Смена расширения




Добавьте «rem» перед «@echo off». Выполните пакетный файл в командной строке. Скопируйте с окна консоли полученный вывод, вставьте сюда под тэгами «code» и «spoiler».
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Смена расширения

Сообщение Iska »

Burning Hell, при использовании внутри пакетных файлов «%» при переменных цикла и параметрах надо удваивать, наподобие:



Код:

Код: Выделить всё

@echo off
net.exe use z: "\\docs\i\Подразделения\НД\ДК\ОСС\Проекты"
for /r "z:\EY\InfoM\scripts" %%i in ("*.cmd.txt") do ren "%%i" "%%~ni"
Аватара пользователя
Burning Hell

Re: CMD/BAT - [решено] Смена расширения

Сообщение Burning Hell »

Iska, спасибо огромное, дело действительно в знаках "%". Но при запуске скрипта выдает ошибки: "Сохраняемый или полученный файл заблокирован." Пробовал выдать права не только на чтение непосредственно для директории scripts - не помогло.
Аватара пользователя
Burning Hell

Re: CMD/BAT - [решено] Смена расширения

Сообщение Burning Hell »

Iska, вот такую ошибку выдает:





Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

C:\Work\scripts>net use z: \\docs\i\╨Я╨╛╨┤╤А╨░╨╖╨┤╨╡╨╗╨╡╨╜╨╕╤П\╨в╨Ф\╨Ф╨Ъ╨Р\╨Ю╨б╨
г╨а\╨Я╤А╨╛╨╡╨║╤В╤Л
Системная ошибка 53.
Не найден сетевой путь.
C:\Work\scripts>for /R "z:\EY\InfoM\scripts" %i in ("*.cmd.txt") do @ren "%
i" "%~ni"
C:\Work\scripts>pause
Для продолжения нажмите любую клавишу . . .









От кодировки не зависит - и в OEM/866 и в UTF-8 не работает.



Тут какая-то проблема с сохранением - он не сохраняет после смены кодировки, как будто бы ничего не поменялось в файле. Файл открываешь, а он все равно в UTF-8
Аватара пользователя
Burning Hell

Re: CMD/BAT - [решено] Смена расширения

Сообщение Burning Hell »

Цитата Burning Hell:



Тут какая-то проблема с сохранением - он не сохраняет после смены кодировки, как будто бы ничего не поменялось в файле. Файл открываешь, а он все равно в UTF-8
CMD/BAT - [решено] Смена расширения




В чём и как именно делаете?
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Смена расширения

Сообщение Iska »

Burning Hell, наоборот: сначала обрамить текст тэгом «code», а затем — тэгом «spoiler».



Сохраните пакетный файл в кодировке OEM/866 (сейчас он у Вас, видимо, в UTF-8/65001). «rem» перед «net use» ставить не надо. Отключите в Проводнике диск z: и снова попробуйте выполнить пакетный файл.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»