本帖最後由 jmsdhn 於 2019-5-22 14:05 編輯
打擾了
由於PS的掛載是無法指定的
而個人又喜歡用指令掛載ISO
總是會衍伸一些問題
抱歉
再次打擾了
已知這段指令可以得到目前掛載對象所掛的DriveLetter(有時G有時N或其他)
$vol = Mount-DiskImage -ImagePath D:ISO掛載對象.iso -PassThru | Get-DiskImage | Get-Volume
$CDRoot = '{0}' -f $vol.DriveLetter
目前有一個 config.xml 會跟 掛載對象.iso 作連動
config.xml 是被某個軟體讀取的對象
和 掛載對象.iso 比較無關
N:commonAAA.exe 是 掛載對象.iso 內的路徑
假定內容是
...
<Path>N:commonAAA.exe</Path>
<CommandLine />
<StartIn>N:common</StartIn>
...
個人目前已知以下指令
((Get-Content -path R:config.xml -raw) -replace 'N:','G:') | Set-Content -Path R:config.xml
是將 R:config.xml 以單一行不換列的方式讀進記憶體
搜尋N:並改成G:
再寫出覆蓋到原檔案
想請教
如果這次 D:ISO掛載對象.iso 目前掛載到Y槽
而上次是(未知的槽)
要如何在目前的 config.xml 找到 ”<Path>(未知的槽):common” 和 ”<StartIn>(未知的槽):common</StartIn>”
以便把(未知的槽)這個字元
放到以下指令的被替換字元位置
((Get-Content -path R:config.xml -raw) -replace 'N:','Y:') | Set-Content -Path R:config.xml
也就是 -replace '(未知的槽):','Y:'
Y是抓$CDRoot來填
或是直接填${CDRoot}?
綜觀以上問題
好像可以歸類為字串處理的問題
其他是個人盡可能寫出的狀況
希望不會影響觀看
感謝指教 |