PowerShellはマイクロソフト社が開発したオブジェクト指向に対応したスクリプト言語です。.NET Frameworkを基盤として動作します。
Questions tagged [powershell]
136 questions
3
votes
1 answer
配列宣言時に各要素の区切り文字を変えると動作が異なるのは何故か
PowerShellの配列は@("hoge", "fuga")のように要素入りで初期化できます。
その挙動について、
@("hoge"; "fu" + "ga")と記述すると配列の要素は["hoge", "fuga"]になりますが
@("hoge", "fu" + "ga")と記述すると配列の要素は["hoge", "fu", "ga"]に分割されてしまいます。
@(1 - 2; 1 + 2)では[-1, 3]を得られますが、
@(1 - 2, 1 +…

payaneco
- 12,323
- 21
- 57
2
votes
3 answers
PowerShell5.1のスクリプトでStart/Stop-Transcriptでログを保存する時、 実行したコマンド自体をログに書き込みたい
PowerShell5.1のスクリプトでStart/Stop-Transcriptでログを保存する時、
実行したコマンド自体をログに書き込むことはできないでしょうか。
例えば
Start-Transcript
Write-Host "Hello World"
Stop-Transctipt
このスクリプトを実行したとき出力されるログファイルは
**********************
Windows PowerShell…

thebutton
- 23
- 5
2
votes
0 answers
Compare-Objectにおける、ソート順の差異による出力結果の違いについて
Compare-Objectにおける、ソート順の差異による出力結果の違いについての質問です。
前提事項
比較元と比較先でソート順を変えてdiffを取った場合、バイナリによる比較とハッシュ値による比較では結果が異なります。
具体的に申し上げますと、下記ディレクトリ構成の「file1.txt」を異なる内容にした場合、
バイナリ比較では、比較元の「修正前.xlsx」と比較先の「file1.txt」で差分を出力します。(ディレクトリの違いによるアンマッチを出力する。)
ハッシュ値の比較では、比較元の「f…

keiko
- 21
- 1
2
votes
1 answer
PowerShell でフォルダ内の"それぞれ"最新ファイルを取得したい。
PowerShellでフォルダ、ファイル操作のスクリプトを書いているのですが、賢い書き方をご存じであればご教授ください。
あるフォルダの中には以下のようなファイルが存在します。
Test-A001.txt 2017/04/18
Test-A001_old.txt 2017/04/10
Test-B001_最新.txt 2017/04/19
Test-B001.txt 2017/04/11
Test-C001.txt 2017/04/18
Test-C001_20170417.txt…

Kazuki Saito
- 605
- 4
- 19
- 37
2
votes
1 answer
PowerShell上でシンボリックリンクやジャンクションを作るには?
コマンドプロンプトやバッチファイルでは mklink コマンドを使ってシンボリックリンクやジャンクションを作ることができますが、PowerShell 上ではこのコマンドが使えないようです。
PS C:\Users\test> mklink
mklink : 用語 'mklink' は、コマンドレット、関数、スクリプト…

unarist
- 14,871
- 5
- 35
- 78
1
vote
1 answer
PowerShellをVer.7.3.xにしたが、Scriptファイルを実行するとVer.5.1.xで実行されているので、Ver.7.3.xにしたいです
Windows10Proを使用しています。
PowerShell7.3.3をインストールしました。
ストアが利用できない環境なので、GitHubからインストーラーを取得しています。
PowerShell7.3.3インストール後の状態です。
Windows Terminalで作業しています。
> $PSVersionTable
Name Value
----…

nirgnehol
- 137
- 1
- 12
1
vote
1 answer
Powershell関数の引数に、"+"で2つの文字列を連結したものを渡そうとしても、先頭の文字列しか渡せない
標題の通りです。
Powershellで以下のようなコードを組みました。
仮にソース名をconcatenate_args.ps1とします。
function func1 {
Param(
$param1
)
Write-Host "param1 is '$param1'"
}
このソースを. .\concatenate_args.ps1を実行して読み込み、
func1 -param1 "hoge" +…

agrexgh
- 27
- 4
1
vote
1 answer
PowerShellの実行セキュリティポリシー設定方法
Windows7 64bit環境です。
Microsoft.PowerShell_profile.ps1 ファイルを用意して、 Import-Module をしています。
Set-ExecutionPolicy RemoteSigned
を管理者権限で実行して、スタートメニューから PowerShell を起動したときに、モジュールが読み込み済みの状態になりました。
そしてこのモジュールを使う setting.ps1…

osapon
- 352
- 2
- 14
1
vote
2 answers
Powershellでフォルダ内のファイル削除を実施時に、特定のフォルダだけ除外したい
表題の通りですが、以下のような感じで特定のフォルダだけ削除を実施したくないのですが
上手くいきません。
なにか方法はないでしょうか?
$filePath = 'C:\temp\' # 削除対象フォルダ
$excludeItem = '処理済' # 削除対象内で除外したいフォルダ
Get-ChildItem -Path $filePath -Exclude $excludeItem -Recurse | Where-Object{$_.LastWriteTime -lt…

真夜中
- 11
- 2
1
vote
2 answers
Powershellでダブルクォーテションで囲まれた文字列を置換したい
csvファイルをタブ区切りでsqlserverにbulkinsertしたいのですが、文字列にダブルクォーテーションで囲まれたカラムが混在しています。
さらにそのダブルクォーテーション付きのカラムにはカンマもあります。
普通であればダブルクォーテーションを削除してカンマをタブに変換すればいいのですが上記がネックとなります。
そのため前処理として、
カンマを別の値(被らなければなんでもよい)に置換
ダブルクォーテションンを削除
カンマをタブに変換
をしたいです。
文字列
…

etern
- 39
- 1
- 10
1
vote
1 answer
Powershell で workflowにおけるマルチスレッド処理での共通の変数
workflow とForEach -parallelで並列して複数の ps1スクリプト を実行しようと思います。各ps1スクリプトは戻り値として $True あるいは $Flaseを返します。$Flaseをカウントしようと思いますのが、スコープがスクリプト内の変数を使用することができずに困っています。
以下のように Errors をカウントしたいのですができません。何かよいアイディアはないでしょうか。
workflow func1 {
$Errors = 0
ForEach…

TAKANANSSS
- 11
- 1
- 2
1
vote
1 answer
SENDKEYがうまく機能しない
よろしくお願いします。
やりたいこと
あるURLをリクエストするとファイルが自動的にダウンロードされます。
この処理を自動化してWindowsのタスクスケジューラーに登録したいと考えています。
下記のシェルを記述してPOWERSHELL…

taro taka
- 11
- 1
- 3
1
vote
1 answer
PowerShell ForEach-Object : 引数 '' を受け入れる位置指定パラメーターが見つかりません。
PowerShell 5でdot-filesというディレクトリー以下にあるファイルを処理するスクリプトを書いていたのですが、ForEach-Objectを呼ぶところで下記のようなエラーが発生してしまいます。
出力例:
PS C:\Users\igrep\dot-files> .\install.ps1
.bundle
ForEach-Object : 引数 '.bundle' を受け入れる位置指定パラメーターが見つかりません。
発生場所…

YAMAMOTO Yuji
- 953
- 1
- 5
- 13
1
vote
1 answer
文字列の配列に対してStringクラスのメソッドが呼べるのはなぜ?
PowerShellでは文字列の配列に対して String クラスのメソッド、例えば Replace() などが呼び出せるようですが、これはどういう仕様によるものなのでしょうか?
PS C:\> $arr = "abc","abc"
PS C:\> $arr
abc
abc
PS C:\> $arr.GetType()
IsPublic IsSerial Name BaseType …

unarist
- 14,871
- 5
- 35
- 78
1
vote
2 answers
Powershellを使ってExcelの列をコピーしたいです。
powershellを使ってExcelから指定した列をコピーしたいです。
例えばですが、
Excel1のA列、D列、F列だけを選んで、Excel2のA列、B列、C列に貼り付けるにはどうすればよいでしょうか?
よろしくお願い致します。

user21361
- 11
- 1
- 1
- 5