質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

2回答

1383閲覧

再編集:powershellで大量データを分割する処理 パラメータを利用して

matrix99999

総合スコア15

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2019/03/23 23:31

編集2019/03/24 03:52

powershellを初めて利用します。
処理内容は大量データを分割する処理です。
最終的にはUIPATHに組み込み実行したいです。
その前に、コマンドプロンプトら実行すると下記エラーがでます。
ご教示いただきたく思います。

実行コマンド:

powershell -ExecutionPolicy RemoteSigned d:\uipath\分割\bunkatsu2.ps1 d:\uipath\分割 data csv 100000 Ascii

エラー内容:
Get-Content : パス 'D:\uipath\分割data' が存在しないため検出できません。
発生場所 D:\uipath\分割\bunkatsu2.ps1:24 文字:1

  • Get-Content $my_file -ReadCount $cut_num -Encoding $enc |
  • + CategoryInfo : ObjectNotFound: (D:\uipath\分割data:String) [Get-Content], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

コード:

# 機能名 : テキストファイル分割 # 機能概要:パラメーターで指定されたファイルを # 分割件数毎にファイル分割する。 # パラメーター # $my_path_name : 分割するフォルダの場所 # $my_file_name : 分割するファイル # $my_file_kind : 拡張子 # $cut_num : 分割する件数 # $enc : EncodeName #---------------------------- Param( [string]$my_path_name, [string]$my_file_name, [string]$my_file_kind, [int]$cut_num , [string]$enc ) $my_file = $my_path_name + $my_file_name $count = 0; Get-Content $my_file -ReadCount $cut_num -Encoding $enc | ForEach-Object { $count ++ $cfs = "{0:D3}" -f $count; $_ > ($my_path_name+$my_file_name+'_'+$cfs+$my_file_kind) }

コード変更:2019/03/24 12:50

# 機能名 : テキストファイル分割 # 機能概要:パラメーターで指定されたファイルを # 分割件数毎にファイル分割する。 # パラメーター # $my_path_name : 分割するフォルダの場所 # $my_file_name : 分割するファイル # $my_file_kind : 拡張子 # $cut_num : 分割する件数 # $enc : EncodeName #---------------------------- Param( [string]$my_path_name, [string]$my_file_name, [string]$my_file_kind, [int]$cut_num , [string]$enc ) $my_file = $my_path_name + $my_file_name $count = 0; Get-Content $my_file -ReadCount $cut_num -Encoding $enc | ForEach-Object { $count ++ $cfs = "{0:D3}" -f $count; $_ > ($my_path_name+'data'+'_'+$cfs+"."+$my_file_kind) コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

下記のように対応しました。
コマンドプロンプトより

powershell -ExecutionPolicy RemoteSigned -Command d:\uipath\分割\bunkatsu2.ps1 d:\uipath\分割\data\ data.csv csv 100000 string

コード:

# 機能概要:パラメーターで指定されたファイルを # 分割件数毎にファイル分割する。 # パラメーター # $my_path_name : 分割するフォルダの場所 # $my_file_name : 分割するファイル # $my_file_kind : 拡張子 # $cut_num : 分割する件数 # $enc : EncodeName #---------------------------- Param( [string]$my_path_name, [string]$my_file_name, [string]$my_file_kind, [int]$cut_num , [string]$enc ) $my_file = $my_path_name + $my_file_name $count = 0; Get-Content $my_file -ReadCount $cut_num -Encoding $enc | ForEach-Object { $count ++ $cfs = "{0:D3}" -f $count; $_ > ($my_path_name+'data'+'_'+$cfs+"."+$my_file_kind) } コード

投稿2019/03/24 06:03

matrix99999

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

パス 'D:\uipath\分割powerdata' が存在しないため検出できません。

これがすべてだと思いますが、ありますか?

投稿2019/03/24 00:27

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matrix99999

2019/03/24 00:58

ありがとうございます。 フォルダ:D:\UIPATH\分割 ファイル名:data.csvです。 コマンドプロンプトからは、 powershell -ExecutionPolicy RemoteSigned d:\uipath\分割\bunkatsu2.ps1 d:\uipath\分割 data csv 100000 Ascii と入力しています。 先ほど記載した、 powershell -ExecutionPolicy RemoteSigned d:\uipath\分割\bunkatsu2.ps1 d:\uipath\分割 power data csv 100000 Asciiの記載は誤りです。 引数がうまく取れない感じです。 引数は下記のように定義しました。 Param( [string]$my_path_name, [string]$my_file_name, [string]$my_file_kind, [int]$cut_num , [string]$enc )
Zuishin

2019/03/24 01:05

ここに書かず、質問を整理して書き直してください。 コメント欄はコードを書くところではないのでマークダウンが使えません。 質問に「編集」というボタンがあるので、それを使ってください。 また、表示が乱れているのがわかるでしょう? コードブロックを使用してください。
matrix99999

2019/03/24 01:58

申し訳ございません。 ご指摘ありがとうございます。 実行した内容とエラー内容 コードを分け記載しました。
Zuishin

2019/03/24 02:02

> Get-Content : パス 'D:\uipath\分割data' が存在しないため検出できません。 ありますか?
matrix99999

2019/03/24 02:25

パス 'D:\uipath\分割で、dataがファイル名、拡張子がcsv ,分割件数が10000件、encodeがasciiということでコマンドプロンプトでは下記のように記載しました。 powershell -ExecutionPolicy RemoteSigned d:\uipath\分割\bunkatsu2.ps1 d:\uipath\分割 data csv 100000 Ascii しかし、d:\uipath\分割 data はフォルダとデータ名であるのに結合した形で読み込まれています。
Zuishin

2019/03/24 02:33

powershell -ExecutionPolicy RemoteSigned -Command "d:\uipath\分割\bunkatsu2.ps1 d:\uipath\分割 data csv 100000 Ascii" として試してみてください。
matrix99999

2019/03/24 02:56

ありがとうございます。 フォルダとファイル構成です。 この構成で >powershell -ExecutionPolicy RemoteSigned -Command "d:\uipath\分割\bunkatsu2.ps1 d:\uipath\分割 data csv 100000 Ascii" を実行しました。 D:\UIPATH\分割 のディレクトリ 2019/03/24 11:41 <DIR> . 2019/03/24 11:41 <DIR> .. 2019/03/24 08:17 723 bunkatsu2.ps1 2019/03/24 11:41 <DIR> data D:\UIPATH\分割\data>dir D:\UIPATH\分割\data のディレクトリ 2019/03/24 11:41 <DIR> . 2019/03/24 11:41 <DIR> .. 2019/03/23 09:44 15,603,632 data.csv 実行 >powershell -ExecutionPolicy RemoteSigned -Command "d:\uipath\分割\bunkatsu2.ps1 d:\uipath\分割 data csv 100000 Ascii" 結果: Get-Content : パス 'D:\uipath\分割data' が存在しないため検出できません。 発生場所 D:\uipath\分割\bunkatsu2.ps1:24 文字:1 + Get-Content $my_file -ReadCount $cut_num -Encoding $enc | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (D:\uipath\分割data:String) [Get-Content], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand 上記エラーがでます。 引数がうまく取れない感じです。 すみません。
Zuishin

2019/03/24 02:57

後でちゃんと読んでみます。
matrix99999

2019/03/24 03:03

申し訳ございません。 自分も確認します。
matrix99999

2019/03/24 03:51

コード変更して >powershell -ExecutionPolicy RemoteSigned -Command "d:\uipath\分割\bunkatsu2.ps1 d:\uipath\分割\data\ data.csv csv 100000 ascii" このように実行したところうまく分割できました。 しかし、encodeはsheft-jisにしたいのですができません。 日本語が文字化けするので改善できるパラメータがあればご教示ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問