फाइल आईओ, इस PowerShell में एक बग है?

वोट
6

मैं PowerShell में निम्न कोड है

$filePath = C:\my\programming\Powershell\output.test.txt

try
{
    $wStream = new-object IO.FileStream $filePath, [System.IO.FileMode]::Append, [IO.FileAccess]::Write, [IO.FileShare]::Read

    $sWriter = New-Object  System.IO.StreamWriter $wStream

    $sWriter.writeLine(test)
 }

मैं हो रही त्रुटि रखें:

कनवर्ट नहीं कर सकता तर्क 1, मूल्य के साथ: करने के लिए [IO.FileMode] मूल्य कनवर्ट नहीं कर सकता :: संलग्न : [IO.FileMode] :: संलग्न , FileStream के लिए टाइप करने के लिए System.IO.FileMode अवैध गणन मूल्यों के कारण System.IO.FileMode टाइप करें। निम्नलिखित गणना में से एक मान निर्दिष्ट करें और फिर कोशिश करें। संभव गणन मान CreateNew, बनाएं, खोलें, OpenOrCreate, छोटा करना, संलग्न।

मैं सी # में बराबर की कोशिश की,

    FileStream fStream = null;
    StreamWriter stWriter = null;

    try
    {
        fStream = new FileStream(@C:\my\programming\Powershell\output.txt, FileMode.Append, FileAccess.Write, FileShare.Read);
        stWriter = new StreamWriter(fStream);
        stWriter.WriteLine(hahha);
    }

यह बढ़िया काम करता है!

क्या मेरी powershell स्क्रिप्ट के साथ गलत क्या है? BTW मैं powershell पर चल रहा हूँ

Major  Minor  Build  Revision
-----  -----  -----  --------
3      2      0      2237
12/01/2013 को 12:04
उपयोगकर्ता
अन्य भाषाओं में...                            


4 जवाब

वोट
0

अपने लक्ष्य को एक लॉगफ़ाइल या टेक्स्ट फ़ाइल में लिखने के लिए है, तो आप इस लक्ष्य को हासिल करने के लिए PowerShell में समर्थित cmdlets का प्रयास कर सकता है?

Get-Help Out-File -Detailed
12/01/2013 को 14:02
का स्रोत उपयोगकर्ता

वोट
4

का उपयोग करते समय New-Objectcmdlet और लक्ष्य प्रकार निर्माता मापदंडों में ले जाता है, या तो आप का उपयोग करना चाहिए -ArgumentList(नई-वस्तु का) पैरामीटर या कोष्ठक में मानकों लपेट - मैं कोष्ठक के साथ मेरी कंस्ट्रक्टर्स रैप करने के लिए पसंद करते हैं:

# setup some convenience variables to keep each line shorter
$path = [System.IO.Path]::Combine($Env:TEMP,"Temp.txt")
$mode = [System.IO.FileMode]::Append
$access = [System.IO.FileAccess]::Write
$sharing = [IO.FileShare]::Read

# create the FileStream and StreamWriter objects
$fs = New-Object IO.FileStream($path, $mode, $access, $sharing)
$sw = New-Object System.IO.StreamWriter($fs)

# write something and remember to call to Dispose to clean up the resources
$sw.WriteLine("Hello, PowerShell!")
$sw.Dispose()
$fs.Dispose()

न्यू-वस्तु cmdlet ऑनलाइन मदद: http://go.microsoft.com/fwlink/?LinkID=113355

12/01/2013 को 14:16
का स्रोत उपयोगकर्ता

वोट
16

एक और तरीका है सिर्फ मान का नाम इस्तेमाल करते हैं और PowerShell लक्ष्य प्रकार के लिए यह डाली जाने के लिए होगा:

New-Object IO.FileStream $filePath ,'Append','Write','Read'
13/01/2013 को 04:46
का स्रोत उपयोगकर्ता

वोट
2

फिर भी एक और तरीका कोष्ठक में enums संलग्न हो सकते हैं:

$wStream = new-object IO.FileStream $filePath, ([System.IO.FileMode]::Append), `
    ([IO.FileAccess]::Write), ([IO.FileShare]::Read)
13/01/2013 को 07:40
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more