質問

抜け出したいDOSのファイル名で利用できます..いDOSのファイルのようなこと:

set FILENAME=%~f1

sed 's/Some Pattern/%FILENAME%/' inputfile

(注: %~f1 -拡大 %1 への完全修飾パス名 C:\utils\MyFile.txt)

することを見いだし,そのバックスラッシュに %FILENAME% で脱出に来ます。

たいのですがダブルのように、は自動的にエスケープされ?

してくれてありがとうございますcygwinの設置なのでお気軽にご利用その他の*nixコマンド)

組み合わせJeremyとAlexandru Nedelcuの提案と利用のための区切り文字のsedコマンドしていま

set FILENAME=%~f1
cygpath "s|Some Pattern|%FILENAME%|" >sedcmd.tmp
sed -f sedcmd.tmp inputfile
del /q sedcmd.tmp
役に立ちましたか?

解決

このことです。この汚ために、BATファイルは使用できませんセットvar=`cmd`のように出ることができます。このエコーがわからない引用符もの乱れがトラブルの場合 Some Pattern を含むシェルのメタ文字です。

set FILENAME=%~f1
echo s/Some Pattern/%FILENAME%/ | sed -e "s/\\/\\\\/g" >sedcmd.tmp
sed -f sedcmd.tmp inputfile
del /q sedcmd.tmp

[編集]:私は昔のことんおまかせください。だれで始めて現状進める最後ます。を使用していsedから http://sourceforge.net/projects/unxutils を使用cmd.exe 実行者コマンドをbatファイルです。

他のヒント

きみとって代わからのコマンドプロンプト)...

> cygpath -m c:\some\path
c:/some/path

でお分かりだと思うので、変換バックスラッシュにスラッシュ.

@Alexandru&Jeremyんにちは。きの両方の取得upvotes

@Jeremy

ご利用方法をもらいました以下のようなエラー:

sed:-eの発現#1,char8:無し"s"コマンド

が容をいつでも編集することができ答えはそれを動作させるために今できますか"というものです。(貼り付けもしないカウント)

更新: OkうでUnixUtilsります。(参考にUnixUtilsダウンロードしていた日付の月1日2007年、GNU sed版3.02、CygwinトはGNU sed版4.1.5)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top