4

Я пытаюсь использовать командный файл, чтобы определить текущую установленную букву диска и заменить ключевое слово в ini-файле на букву диска.

В основном INI-файл содержит:

[app]  
dir=Drive\ApplicationPath  
path=Drive\ApplicationPath\Messenger.exe  
ver_number=12091  
lang=1033  
theme=default  
ver=intl  
[applist]   
Cafe=Drive\ApplicationPath\ApplicationData  
im=Drive\ApplicationPath1\ApplicationData  

И так далее.

Я пытаюсь поместить файл bat в каталог, содержащий этот файл app.ini, чтобы определить текущий диск. Некоторые пользователи могут иметь этот каталог в D:, E:, F: и затем переписать этот файл app.ini, заменив слово "Диск" на букву диска D:, E: или F:

Я думал об использовании токенов и Delims, но я не совсем уверен, как это решить. Любой экспертный совет? Я только ищу пакетный метод, потому что пакетный файл покроет все, что мне нужно (обнаружить Windows XP или 7, x86 или x64 и в конечном итоге скопировать этот INI-файл в нужную папку в ОС для запуска).

2 ответа2

2

В вашем пакетном файле используйте %CD:~0,2% для замены Drive

CD является эквивалентом DOS для команды Unix pwd. Обе команды выводят текущий путь. Поскольку вам нужна только буква диска, мы хотим взять только первые две буквы выходных данных.

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\me>echo %CD%
C:\Users\me

C:\Users\me>echo %CD:~0,2%
C:

Источник: Windows Batch Script Получить имя текущего диска

1

если у вас установлен vim (полностью, в режиме командной строки)

vim app.ini -c "%s/Drive/%cd:~0,2%/g|wq"

он заменит слово Drive в файле app.ini на диск (буква и двоеточие, например, c: :), в котором вы находитесь

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .