2016-03-31 19 views
0

Başka bir tartışmadan bir dosya seçici alıyorum ve InitialDirectory değerini değiştirmek istiyorum. Şimdi:Batch + Powershell dosya seçici - InitialDirectory

ve geçerli dizini açın, ancak bir alt klasör açmak istiyorum. InitialDirectory'da "% cd% \ UCSM_Files \" adlı Batch'i nasıl yazabilirim? için üzgünüm

benim kötü zaten PowerShell içinde bunu yapmak için çalışıyoruz gibi görünüyor değişken sözdizimi itibaren

cevap

1

Bunu çeşitli yollarla yapabilirsiniz.

$f.InitialDirectory = "$(pwd)\UCSM_Files" 

Yoksa dize biçimlendirme kullanabilirsiniz: En kısa yolu böyle bir dizede $() içinde pwd değerlendirmek olacaktır.

$f.InitialDirectory = "{0}\UCSM_Files" -f (pwd) 
0

ingilizce.

$f.InitialDirectory = Join-Path -Path $PWD -ChildPath UCSM_Files 
+0

(Güncellendi tartışma kodu) Ben modifiye ettim '$ f.InitialDirectory = pwd' için '$ f.InitialDirectory = -Path $ PWD -ChildPath UCSM_Files-Yol Katılın' ama şimdi açık Belgeler – Blank517

0

Ardından toplu bir ortam değişkeni deneyin powershell bunu kullanabilirsiniz: Ayrıca

<# : 
... 
set "initialdir=%~dp0" 
... 
#> 
$f.InitialDirectory = "$($env:initialdir)UCSM_Files" 
... 

ben fark Eğer öyleyse, Join-Path cmdlet'ini (ve $PWD otomatik değişken) de kullanabilir multiselect'i devre dışı bırakırsınız ancak yine de kontrol edin:

$f.Multiselect = $false 
if ($f.Multiselect) { $f.FileNames } else { $f.FileName } 
+0

klasör Eğer' OP'nin senaryosunu merak ediyorum, [bu kaynak] (http://stackoverflow.com/a/15885133/1683264). “If ($ f.Multiselect)” satırının nedeni, kodumu ödünç alan kişinin birden fazla dosya seçimini değiştirmek için yalnızca bir değeri değiştirmesi gerektiğidir. Aslında, yansıma üzerine, muhtemelen $ f.Multiselect'in doğru ya da yanlış olup olmadığına bakılmaksızın her iki durum için sadece $ f.FileNames 'i kullanmış olabilirdim. Yine de son düzenlememde hala C# açısından düşünüyorum. :) – rojo