3

ベースパスがWindowsのベースパスに置き換えられる、UNIX環境に由来する構成ファイルがあります。

inputdir = D:\etl-i_win_4/input/000/
inputdir = D:\etl-i_win_4/input/001/
inputdir = D:\etl-i_win_4/input/002/
inputdir = D:\etl-i_win_4/input/003/
inputdir = D:\etl-i_win_4/input/004/
inputdir = D:\etl-i_win_4/input/005/
inputdir = D:\etl-i_win_4/input/006/
inputdir = D:\etl-i_win_4/input/007/
inputdir = D:\etl-i_win_4/input/008/
inputdir = D:\etl-i_win_4/input/009/

movepostcmd = D:\etl-i_win_4/divider/bin/os-independant/divider.postprocessing

ctrldir = D:\etl-i_win_4/divider/applogs/

lockglob = /opt/netmind/test/etl-festo/kette/divider/applogs/dividerglob.lock

バックスラッシュを含む適切な Windows パスが必要です。/構成ファイルを読み取り、行を Windows パスで識別し、すべてをに置き換える関数はどのようになります\か? UNIX パスを含む最後の行は無視する必要があることに注意してください。

4

2 に答える 2

1

これを試して、すべてのパスを置き換えることができます:

Get-Content "C:\temp\config.txt" | % {$_ -replace '/','\'} | set-content "C:\temp\config Bis.txt"

Windowsパスの場合、Windowsパスを含む各行が「A_LETTER:\」パターンに一致するという事実に一致します...あまり良くありませんが、仕事をすることができます:

Get-Content "C:\temp\path.txt" | % {if ($_ -match "[A-Z]:\\"){$_ -replace '/','\'}else {$_}} | set-content "C:\temp\path Bis.txt"
于 2013-06-18T19:17:13.317 に答える
-1

.Net Path クラスを使用することもできます。

Get-Content "C:\temp\config.txt" | % { [System.Io.Path]::GetFullPath($_) }
于 2013-06-18T20:22:40.953 に答える