2016-05-16 4 views
1

ユーザーによって暗号化された.txtファイルがあります。私たちはそれらを解読し、入力として第三者システムの下流に送ります。それはうまくいきましたが、ファイルを送信し始めたユーザーは.txtではなく.TXTです。解読中には何の違いもありませんが、ダウンストリームシステムに影響を与えています。私たちは、私がこのようPowershellのファイル拡張子を変更する

Copy-Item -Path $myOfile –Destination ([io.path]::ChangeExtension($myOfile, '.txt')) -Verbose 

はここで$ myOfileは私のファイル名であり、それは我々が解読この 20160506_205400_Sender_header.TXT.GPGのようなものを命名し、それが変化し、それを変更しようとした

を.txtに.TXTを変更することになっています20160506_205400_Sender_header.TXT

私は20160506_205400_Sender_header.txtにそれを変更するには、上記のコマンドを使用し、それが

Copy-Item : Cannot overwrite the item C:\Sender\Submit\20160506_205400_Sender_header.TXT with itself. 
以下のエラーがスローされます0

.TXTと.txtの区別がないように見えます。それを行う方法や回避策はありますか?

+0

拡張子を別のもの(tmp)に変更してからtxtに戻すことができます。 *編集:これは私のために働いた: 'dir * .txt | {0} $ _。name.substring(0、$ _ .name.length - 3)+ 'txt')} ' –

答えて

2

ファイルパスになると、Windowsでは大文字と小文字は区別されません。したがって、置き換えようとしているファイルを読み込んでいるため、同じ宛先とソースを持つコピー操作は失敗します。

Rename-Itemを使用してファイルの名前を変更します。例:

Rename-Item -Path $myOfile -NewName ([io.path]::ChangeExtension($myOfile, '.txt')) -Verbose 
+0

答えFrodeに感謝します。私はすでにそれを試みました。拡張子の大文字と小文字を変更することはできません。だから私はコピーアイテムに頼らざるを得なかった。 –

+0

それは私のためにうまくいく..ファイルエクスプローラでF5キーを押して名前を変更したのを覚えましたか? 'Get-Childitem -Filter" test.TXT "| Select-Object -Expand Name'は何らかの理由で常にTXTを表示します。 'Get-ChildItem -Filter" Test * "の名前を変更した後で検証するときに、ワイルドカード(またはフィルタなし)で試してください。 Select-Object -Expand Name'を選択します。 –

+0

ああ - わかった。出来た。 didntは私がそれをリフレッシュしなければならないことを実感したありがとうございました! –

関連する問題