web-dev-qa-db-ja.com

バッチファイルを使用してテキストファイル内の特定の単語を置き換える

バッチファイルを使用して、現在インストールされているドライブ文字を特定し、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:に置き換える場合があります。

トークンとデリムを使用することを考えましたが、それをどのように実行するか正確にはわかりません。専門家のアドバイスはありますか?バッチファイルが必要なすべてをカバーするため、私はバッチメソッドのみを探しています(Windows XPまたは7、x86またはx64を検出し、最終的にこのiniファイルをOSの正しいフォルダーにコピーして実行)。

4
Tobias

バッチファイルで、%CD:~0,2%を使用してDriveを置き換えます

CDは、Unixコマンドpwdに相当するDOSです。どちらのコマンドも現在のパスを出力します。ドライブ文字のみが必要なため、出力の最初の2文字のみを取得します。

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
Sun

vim がインストールされている場合(完全に、コマンドラインモードで)

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

app.iniファイル内のWordDriveをドライブ(文字とコロン、例:c:) 君も仲間だ

1
user373230