使用批处理文件替换文本文件中的某些单词

使用批处理文件替换文本文件中的某些单词

我正在尝试使用批处理文件来确定当前安装的驱动器号,并用驱动器号替换 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 文件,将单词“Drive”替换为驱动器号 D: 、 E: 或 F:

我曾考虑过使用 Tokens 和 Delims,但我不太清楚该如何解决。有什么专家建议吗?我只在寻找批处理方法,因为批处理文件可以满足我的所有需求(检测 Windows XP 或 7、x86 或 x64,并最终将此 ini 文件复制到操作系统上的正确文件夹中以运行)。

答案1

在您的批处理文件中,使用%CD:~0,2%替换Drive

CD 是 Unix 命令 pwd 的 DOS 等效命令。这两个命令都输出当前路径。由于您只需要驱动器号,因此我们只想获取输出的前两个字母。

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 批处理脚本获取当前驱动器名称

答案2

如果你有vim已安装(完整安装,带命令行模式)

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

它将取代驾驶在 app.ini 文件中,输入c:您所在的驱动器(字母和冒号,例如)

相关内容