我想寫一個oneliner可推動在一個目錄的TIF文件的唯一ID,然後運行ImageMajick的轉換,以將它們組合成多頁TIFS:管多PowerShell的成果轉化爲多個參數在一行
convert ..\image_data\ua-nws_00000991_001.tif ..\image_data\ua-nws_00000991_002.tif ..\image_data\ua-nws_00000991_003.tif ..\image_data\ua-nws_00000991_004.tif ua-nws_00000991_all.tif
這可以工作,但我試圖自動化一堆每個都有幾個tif的ID。現在,我只是用一個ID,並使用「回聲」,而不是轉換:
echo "ua-nws_00000991" | % { $id=$_; ls ../image_data | ? { $_.FullName -match $id } | % {
echo $_.FullName } | Join-String -Separator '" "' | % { echo '"'$_'"' $id"_all.tif" }
}
但我無法打開的文件列表到的參數列表。我得到以下(我手動進行相對的在網上發帖的路徑):
"
.\image_data\ua-nws_00000991_001.tif" ".\image_data\ua-nws_00000991_002.tif" ".\image_data\ua-nws_00000991_003.tif" "C:\Daniels_Stuff\Classes\Current\grad_ai\project\repo\article-reconstruction\image_data\ua-nws_00000991_004.tif"
ua-nws_00000991_all.tif
之前我加了雙引號,轉換正在演繹所有最終$_
作爲一個參數。我添加引號是爲了強制轉換將它們看作多個參數。但我似乎無法擺脫那條新線。我想這可能是由最終echo
引起的,但如果我用轉換代替它,我得到如下:
convert.exe: unable to open module file `C:\Program Files\ImageMagick-6.9.2-Q16\modules\coders\IM_MOD_RL_\ABSOLUTE\PATH\TO\MY\IMAGES\IMAGE_DATA\UA-NWS_00000991_001.TIF C_.dll': No such file or directory @ warning/module.c/GetMagickModulePath/674.
convert.exe: no decode delegate for this image format `\ABSOLUTE\PATH\TO\MY\IMAGES\IMAGE_DATA\UA-NWS_00000991_001.TIF C' @ error/constitute.c/ReadImage/501.
convert.exe: no images defined `ua-nws_00000991_all.tif' @ error/convert.c/ConvertImageCommand/3241.
謝謝。不知道這是可能的。我也可以這樣做,我認爲它更簡單(我認爲更快?):'gci .. \ image_data \ *。tif | group {$ _。Name -replace'_ \ d + \。tif $'} | %{$ _。Group.FullName |轉換「@ - 」「$($ _。Name)_all.tif」}' – xdhmoore