![]() |
Как убрать сокращение имени папки в пути к файлу?
вот часть кода
Код:
@echo off А надо чтобы полностью имя папки отображалось. |
Насколько «зачастую»? Есть какая-либо повторяемость?
Суть в том, что это, как я полагаю, может быть связано с тем, что:
Цитата:
|
Iska, скорей всего каждый раз, если батник запускается автоматически (настроено в планировщике заданий)
Цитата:
И что никак не исправить? перемещать батник нельзя Цитата:
P.S.: имя папки в таком формате записывается на всех пока что настроенных компьютерах (win 7, xp, server 2003 и не важно x32 или х64). Но если тестирую на своем win 8.1 x64 и xp x32 (даже если через планировщик заданий запускаю), то имя полностью отображается. файловая система везде NTFS |
Цитата:
Цитата:
8.3 — Википедия 8.3 filename - Wikipedia, the free encyclopedia (более качественный материал) How Windows Generates 8.3 File Names from Long File Names Цитата:
|
Вложений: 2
Iska, на win 8.1 x64 и xp x32. Но на остальных всё точно также настраивал (сейчас к ним доступа нет)
|
V!RTuE, по поводу 1) не скажу — то ли не видно там путей, то ли я просто плохо навскидку представляю вид вкладок задания в новых системах, надо смотреть.
По поводу 2) — там всё интереснее. Приведите полное содержание поля «Выпонить» текстом, на скриншоте не видно. Далее: Рабочей папкой (текущим каталогом) для задания указан сетевой каталог, UNC. И, поскольку содержимым задания является пакетный файл — то, если Вы принудительно не разрешали использование UNC-путей в качестве текущего каталога (Cmd.exe does not support UNC names as the current directory), интерпретатор команд «cmd.exe» должен автоматически сделать текущим каталогом для пакетного файла каталог «%SystemRoot%». Цитата:
|
Iska, на первом скрине путь e:\Консультант Плюс\
на втором (можно догадаться, если посмотреть на рабочую папку) \\VBOXSVR\e_drive\Консультант Плюс\ (это на виртуальной машине тестировал). А вообще на всех компах путь стандартный c:\ConsultantPlus\ (может на некоторых меняться диск на d или название папки другое. Но даже если в пути нет пробелов, то сокращает имя папки). По поводу UNC-путей, то батник написан так, что для него не важно откуда запускается - свою работу выполняет всегда. Вот примеры сокращения имени папки на разных компах (мне на почту приходят отчеты) Код:
Расположение К+: D:\CONSUL~1\CONS.exe P.S.: могу весь батник выслать в лс (но не хочу в общий доступ пока что выкладывать). там ~500 строк кода |
Цитата:
P.S. Глубоко спрятано в новых ОС: |
Цитата:
|
V!RTuE, пока других идей нет.
|
Iska, вот пример http://photo.qip.ru/photo/virtue-x/4...108348627.jpg? http://photo.qip.ru/photo/virtue-x/4...108348614.jpg?
Операционная система: Windows 7 Professional (x64) в отчете мне приходит: Код:
Расположение К+: D:\CONSUL~1\cons.exe |
V!RTuE, моё предположение про рабочую папку не подтверждается.
Но я как-то не понял: в задании указан пакетный файл, а приходит Вам путь, указывающий на исполняемый файл. Придётся-таки Вам показывать Ваш полный код. |
Цитата:
Код:
@echo off |
V!RTuE, ну, так вот и ответ, как я понимаю:
Цитата:
|
Цитата:
|
А дальше Вы и получаете в:
Цитата:
Цитата:
Цитата:
|
Iska, тогда мне что надо заменить? если только 2 строки поменяю, то это поможет?
Код:
if "%1_"=="_" (START /MIN CMD.EXE /C %0 any_word & EXIT) |
Код:
if "%~1" == "" (start "" /min "%comspec%" /c "%~f0" any_word & exit /b) Цитата:
|
Цитата:
Разобрался. Действительно короткое имя совпадало. Теперь экспериментирую с этой строкой Код:
if "%~1" == "" (start "" /min "%comspec%" /c "%~f0" any_word & exit /b) |
Лично мне проще всего смотреть посредством Far Manager'а, получая отображение коротких имён по «Ctrl-N»:
А Вы можете опробовать «dir /x» в виде: Код:
E:\Песочница\0397>dir /x /a:d |
Iska, в общем теперь всё работает. Эти все варианты рабочие (имя не сокращает):
Код:
if "%~1" == "" (start "" /min "%comspec%" /c "%~f0" any_word & exit /b) Код:
if "%1_"=="_" (START /MIN CMD.EXE /C "%~s0" any_word & EXIT) Код:
if "%~1" == "" (start "" /min "%comspec%" /c "%~f0" any_word & exit /b) Код:
if "%1_"=="_" (START /MIN CMD.EXE /C "%~f0" any_word & EXIT) |
Ребят, а как мне в bat или cmd сократить имя учетной записи?
То есть, чтоб команда была постоянной, независимо от машины. Код:
reg import C:\Users\MJ\Desktop\4.reg |
Цитата:
или %userprofile% вместо C:\Users\MJ |
Цитата:
|
можно так напр.
for /F "tokens=*" %. in ('powershell "(get-item -path 'c:\PROGRA~1\WI7A8C~1').fullname"') do @echo %. C:\Program Files\Windows Multimedia Platform - подставьте %~dp0 и замените на двойные % для bat файла |
Время: 09:29. |
Время: 09:29.
© OSzone.net 2001-