У меня проблема с именами окон Windows. Иногда короткие имена не создаются для «Program Files» и «Program Files (x86)».
Я проверил, что генерация коротких имен включена, fsutil behavior query disable8dot3 C:
что говорит мне, что для всей системы параметр 2
(для каждого тома) и локальное значение 0
(создать имена 8dot3).
Это должно выглядеть примерно так (обратите внимание, что это немецкая 32-битная копия):
C:\>dir /a /x
Verzeichnis von C:\
21.12.2011 00:17 <DIR> $Recycle.Bin
14.07.2009 05:53 <VERBINDUNG> DOCUME~1 Documents and Settings [C:\Users]
09.01.2011 15:35 <VERBINDUNG> DOKUME~1 Dokumente und Einstellungen [C:Users]
27.11.2013 15:11 2.147.016.704 pagefile.sys
14.07.2009 03:37 <DIR> PerfLogs
26.11.2013 17:31 <DIR> PROGRA~1 Program Files
08.11.2013 21:58 <DIR> PROGRA~2 ProgramData
09.01.2011 15:35 <VERBINDUNG> PROGRA~3 Programme [C:\Program Files]
09.01.2011 15:35 <DIR> Recovery
26.11.2013 17:40 <DIR> SYSTEM~1 System Volume Information
23.01.2011 15:00 <DIR> Temp
11.01.2011 20:56 <DIR> Users
08.11.2013 14:53 <DIR> Windows
Однако на другом компьютере (64-битная копия) это выглядит как C:> dir / a / x
Verzeichnis von C:\
21.12.2011 00:17 <DIR> $Recycle.Bin
14.07.2009 05:53 <VERBINDUNG> DOCUME~1 Documents and Settings [C:\Users]
09.01.2011 15:35 <VERBINDUNG> DOKUME~1 Dokumente und Einstellungen [C:Users]
27.11.2013 15:11 2.147.016.704 pagefile.sys
14.07.2009 03:37 <DIR> PerfLogs
26.11.2013 17:31 <DIR> Program Files
26.11.2013 17:31 <DIR> Program Files (x86)
08.11.2013 21:58 <DIR> ProgramData
09.01.2011 15:35 <DIR> Recovery
26.11.2013 17:40 <DIR> SYSTEM~1 System Volume Information
23.01.2011 15:00 <DIR> Temp
11.01.2011 20:56 <DIR> Users
08.11.2013 14:53 <DIR> Windows
Как вы могли заметить, для папок программы отсутствуют короткие имена.
Теперь вопрос в том, как их сгенерировать, потому что мне нужны эти короткие имена для нескольких старых скриптов. Я пытался с fsutil file setshortname "Program Files" "PROGRA~1"
, но это только дает мне Access denied.
.
источник
Program Files
. Не возможно настроить скрипты? Кроме того, я надеюсь, что сценарий не думает, чтоProgram Files
-directory - это всегда,PROGRA~1
потому что в этом случае ваш сценарий в конечном итоге столкнется с серьезными проблемами, потому что короткие имена не всегда совпадают. Вы также можете обратиться за помощью в обновлении скриптов до длинного имени (вместо короткого имени) findfirst и т. Д. (Если это возможно).%programfiles%
). Переименование действительно не работает. Может быть, я могу сделать это из форума? Может быть обходным путем.Ответы:
Как я уже сказал в своем комментарии ... Единственный способ узнать, как Windows собирается сгенерировать короткое имя, - это скопировать каталог и удалить оригинал. (недоступно для каталога «Program Files».)
Было бы лучше изменить скрипт, чтобы использовать длинные имена файлов и папок. Если скрипт использует
PROGRA~1
его, он будет иметь проблемы с установками, где диск был клонирован таким образом, что каталоги были скопированы обратно. Например, еслиProgramData
сначала скопировать на диск, он будет названPROGRA~1
иProgram Files
будет названPROGRA~2
.Есть возможность сохранить скрипты работающими :
Вы можете создать каталог-соединение от
PROGRA~1
доC:\Program Files
. Таким образом, скрипты продолжают работать, и у вас есть время их изменить.Выход
mklink /?
:источник
mklink
постоянными или они работают в пакетном скрипте, который выполняется? Извините, у меня недостаточно информации о символических ссылках и соединениях.mklink
являются постоянными. Так же , какmkdir
.Чтобы определить короткие имена (8dot3) для файлов Программы, сделайте следующее:
из командной строки введите следующие команды
Теперь вы должны увидеть короткое имя, определенное для программных файлов. Если вы хотите, установите поведение 8dot3name обратно в исходное значение, которое было возвращено запросом cmd.
источник