1
我正在嘗試使用powershell在文件夾內給定類型的所有文件上運行程序。for循環中的變量參數根據PowerShell命令而改變
我第一次做了一個測試,看看我是否可以通過一個文件夾中的所有文件類型的環路,並寫了這件事:
$files = ls *.inp
foreach ($file in $files) {echo $file.basename}
其輸出:
myfile1.inp
myfile2.inp
myfile3.inp
到目前爲止,一切都很好。現在,當我把這個下位在for循環,它不工作:
$files = ls *.inp
foreach ($file in $files) {myProgram arg1=$file.basename}
注意,路徑myProgram已經是我的路徑變量的一部分,所以我沒有寫完整路徑myProgram.exe,我可以寫myProgram。另外,arg1 =我想處理的文件。
我想看看發生了什麼事情,所以我回蕩在環上面的命令:
foreach ($file in $files) {echo myProgram arg1=$file.basename}
...哪個輸出:
myProgram arg1=myfile.inp.basename
所以,出於某種原因,基名方法沒有按照我想要的方式在第二種情況下進行。
我改變了我的腳本如下,工作正常:
foreach ($file in $files) {echo myProgram arg1=$file}
我的問題是,爲什麼在兩種情況下確實$ file.basename輸出不同的東西?如果我只想在第二種情況下使用基本名稱,我該怎麼做?
謝謝!
已經工作 - 非常感謝! – user110174