DOSファイル名の脱出のための利用*nixコマンド
質問
抜け出したい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)