コマンドの書き方についてご教授いただきたいです。
テキストファイルの文字エンコードを「UTF-8(BOMつき)」から「UTF-8(BOMなし)」に変換できるコマンドを探していたところ、とあるサイトにて以下のコマンドを見つけました。
(こちらではtest.csvとなっていますが、test.txtで試行しました。)
↓コマンド
powershell -NoProfile -ExecutionPolicy Unrestricted -Command "& { $MyPath = 'test.csv';$MyFile = Get-Content $MyPath; $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False);[System.IO.File]::WriteAllLines($MyPath, $MyFile, $Utf8NoBomEncoding)}"
【参考URL】https://qiita.com/yaju/items/b519ff54a6906338442c
他にも様々な方法がありましたが、無事実行できたものがこちらになり、こちらに手を加えたいと考えました。
やりたいことは「対象テキストファイルをC:\XX\配下に、コマンドをバッチ化したものを、C:\XX\とは全く別のフォルダ配下においても実行できるようになりたい」です。
上記コマンドは、テキストファイルとcmdファイルをデスクトップ上に置いた場合に成功しました。
そこで、$MyPath = の箇所にC:\XXX\test.txtと記載し、テキストファイルをC:\XXX\配下に置いたところ、以下のエラーが発生しました。
↓エラー
"3" 個の引数を指定して "WriteAllLines" を呼び出し中に例外が発生しました: "パス 'C:\XXX\test.txt' へのアクセスが拒否されました。"
発生場所 行:1 文字:133
- ... ing($False);[System.IO.File]::WriteAllLines($MyPath, $MyFile, $Utf8No ...
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : NotSpecified: (:) [], MethodInvocationException
- FullyQualifiedErrorId : UnauthorizedAccessException
これは何が原因となっていて、どのように対応したらよろしいでしょうか。
試しにコマンドプロンプトとcmdファイルも同一フォルダに置いて実行してみても同じエラーが出ます。
Googleで検索してみても、恐らく私の知識不足で検索ワードが悪く、理想の回答にたどり着けませんでした。
初心者ですので、このあたりのお話で押さえておくべきポイントも合わせて教えていただけると幸いです。
長くなりましたが、以上、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー