8
票
承認済み
PowershellやC#からクリップボード転送時にExternalExceptionが頻発する原因と対策
System.Windows.Forms.Clipboard のソースコードを確認してみると、
OleSetClipboardとOleFlushClipboardというOle32.dllのWin32 APIを実行していることがわかります。
これらの関数で戻り値0x800401D0は、CLIPBRD_E_CANT_OPENが対応しています。
...
7
票
承認済み
コマンドプロンプトとPowershellの違い
まず最初に端末エミュレータという概念を説明します。テレビの受像機をイメージしてください。メーカーは受像機を製造しているだけであり、そこに映し出されるのは放送局からの映像です。Tera Termもあくまで接続先の出力を表示するものであり、Tera Term自身がコマンドを持つわけではありません。
次にシェルという概念を説明します。シェルはユーザーからの入力を受け取り、コマンドを実行します。...
6
票
承認済み
PowerShell(x64)のウィンドウに、ファイル名に記号を含むファイルをドラッグ&ドロップすると文字が欠落してしまう
自己回答になってしまいますが、
TechNetブログのPowerShell で全角文字を入力すると表示がおかしくなる問題について を発見しました。
試しに、Remove-Module PSReadline を実行したところ、問題は発生しなくなりました。
また、元々問題が起きていなかったx86版はPSReadLineがインストールされていないことを確認しました。
...
5
票
承認済み
WindowsでGNU Screenのような操作がしたい
UNIX系OSとWindowsとではプロセスの管理方法が異なります。WindowsではサインインするとWindow StationとDesktopが作成され、各プロセスはWindow Stationに属します。ユーザー切り替えやリモートデスクトップで複数ユーザーが操作しても影響を受けないのは、このWindow Station単位で管理されているためです。
そのため、GNU ...
5
票
承認済み
PowerShell処理でgitログが文字化けする
一般論として、特にリダイレクトはあくまでバイト列を送受信するものであり、送り側と受け側での合意がなければやり取りできません。更にUNIX系ツールでは送受信されるデータを関与していないものが多いです。
ところがWindowsでは状況がかなり異なります。基本的にコントロールパネルで設定されたエンコーディングでテキストデータがやり取りされていることを前提としています。その際、...
5
票
承認済み
英語版WindowsのPowerShellで日本語ショートカットを作成するには
本件に限らずコントロールパネルの Language for non-Unicode programs の項目を Japanese (Japan) に設定することをお勧めします。
現象から察するにWScript.Shellを利用したコードにはどこかに非Unicodeを扱っており、その個所で日本語文字が文字化けしていると思われます。上記設定を行うことで非Unicode文字を日本語と扱うことができ、...
5
票
PowerShellでリムーバブルディスクのドライブ割当を確認する方法
Get-WmiObjectとCIM_LogicalDiskで論理ドライブの一覧を取得できます。
一覧のうちDriveType = 2のものがリムーバブルディスクです。
DriveTypeはWin32_LogicalDiskのドキュメントを検索して参照してください。
How to display attached USB devices with drive letter using ...
4
票
承認済み
PowerShellで単語検索して一部だけを取得したい
カンマでデータを区切るCSVでlist.txtが書かれているなら、次の方法で抜き出せます。
import-csv ./list.txt -Header ("h1","h2","h3")|%{
if( $_.h3 -match "ランド" ){
$id=$_.h1
$name=$_....
3
票
承認済み
Powershellで再描画時に画面のちらつきを抑える方法
ANSI VT100 エスケープシーケンスを使えば、同等のことがエスケープシーケンスを使って出来るのでは?
文字列が1行に収まるならば使うエスケープシーケンスは、例えば3つくらい。
文字列を表示後にカーソルの行桁位置を表示文字列の先頭に移動して、時間毎に1文字づつ消していけば良いでしょう。折り返したりして複数行になる場合は、もっとプログラミングが必要ですが。
Console Virtual ...
3
票
承認済み
ATOMで作成したPowerShell(ps1)が文字化けする
Atom インストールして確かめましたが UTF-8 保存するとBOMが付かないので、 powershell インタプリタがレガシーエンコーディングで読んで文字化けしますね。
ISE じゃなくてどうしても Atom で ps1 書きたいなら、下記のような方法があるでしょう。
BOM付きUTF-8 を扱えるよう Atom に要望を出す → https://discuss.atom.io/
...
3
票
承認済み
配列宣言時に各要素の区切り文字を変えると動作が異なるのは何故か
そもそも,演算子が配列を構築します。1,2,3で3項目の配列が作られますし、,7で1項目だけの配列です。その上で、この,演算子の優先順位がかなり高いです。(正確には演算子ではなさそうです)
@("hoge", "fu" + "ga")と記述すると配列の要素は["hoge", "fu", "...
2
票
テキストの比較方法について
比較ってこんな感じのことなのかなぁ…。
cat a.txt | while read LINE_A
do
cat 1.txt | while read LINE_1
do
printf “${LINE_A} と ${LINE_1} を”
printf “比較したら ”
if [ “${LINE_A}” = “${LINE_1}” ]
then
...
2
票
Power Shell上で以下のようなMacコマンド&Rubyコマンドを実行したい
ruby -eと"の間にスペースが入っていないため、エラーとなるようです。
(Get-Content **file_name.csv** |ruby -e "l = STDIN.readlines; 10000.times{print l.sample};").Length
2
票
承認済み
2
票
PowerShell処理でgitログが文字化けする
以下の2通りの方法で文字化けなく処理できるようになりました。
方法1: [Console]::OutputEncoding に UTF8 を指定する
$enc = [Console]::OutputEncoding
try
{
[Console]::OutputEncoding = [Text.Encoding]::UTF8
Invoke-Expression "git log -...
2
票
コマンドプロンプトとPowershellの違い
コマンドプロンプトは元々Windows登場前のOS(MS-DOS)の機能を使うために用意されていたものです。もうMS-DOS目当てで使う人はほとんどいないでしょうから、互換性のために残されていると考えて良いと思います。操作はMS-DOS時代の古い仕様のままになっており、ファイル一覧を出すのはlsではなくdir(MS-DOSのコマンド)になります。
...
2
票
承認済み
PowerShellでテキストから正規表現を用いて特定の数値を抜き出し四則演算を行いたい
グループの値をシンプルに読み取って置換後の数値でフォーマットする方法です。
function My-Replace($s) {
#正規表現で置換
$x = 2
$pattern = "^hoge0(\d+)huge4(\d+)telssae0(\d+)(.*)$"
$m = $s | Select-String -Pattern $...
2
票
承認済み
PowershellからPythonのdefに引数を渡したい
Powershellの変数とPythonの変数は全く別のものです。
PowershellからPythonを呼び出した時には、コマンドライン引数をsys.argvなどの命令で取得する必要があります。
またsys.argvは引数を文字列型の配列で保持していますので、値を適切な型にキャストします。
main.pyを下記のように修正すると動作するはずです。
from calc import add
...
2
票
Powershellで再描画時に画面のちらつきを抑える方法
いただいた回答とコメントで解決しました。
$text = "なかきよのとおのねぶりのみなめざめなみのりぶねのおとのよきかな"
Write-Host -NoNewline $text, "`r"
0..$text.Length | %{
Write-Host -NoNewline $text.Substring($_), " `r"
sleep -Milliseconds 100
}...
2
票
承認済み
PowerShellで、半角スペースのあるディレクトリ(以下)を削除したい
[角括弧]は正規表現で使用されるメタ文字なので、-Pathまたは省略時のパスとして使用すると通常の文字列として解釈されません。
そのため、角括弧を通常の文字列として扱いたい場合は-Pathの代わりに-LiteralPathを使います。
またはバッククォートを使うことで、エスケープすることができます。
下記のいずれかの記述で削除できるはずですのでお試しください。
Remove-Item -...
2
票
承認済み
powershellでchmodコマンドが認識されない
chmod は Linux 向けのコマンドなので、Windows 環境で使用することはできません。
Windows でファイルの所有者やアクセス権限をコマンドで変更するには、takeown や icacls コマンドを使用するようです。
参考:
Windowsでファイルの所有者を変更する(コマンドプロンプト編)
Windowsのicaclsコマンドでファイルの所有者を変更する
2
票
承認済み
PowerShell 上で日本語が文字化けする
PowerShell7のターミナルのプロパティでフォントを「Cascadia Mono」等にしたところ同様の症状になることを確認しました。
現象の原理は不明ですが、フォントを「MS ゴシック」にすることで現象は回避できるようです。
ちなみに Windows Terminal では標準で Cascadia Mono が使われていますが、こちらでは現象は再現しないようです。
2
票
承認済み
powershellで特定文字列があれば変換。具体的には'13.1'だけを '5'へ変換したい
$hoge = $hoge -replace '13\.1', '5'
とするとどうなりますか?
2
票
Powershellでtry-catchのcatch内でエラーが起きるとcatch外が実行されてしまう
PowerShellは他のシェルスクリプトと同様に、エラーが発生しても処理を継続します。この動作は Common Parameter の -ErrorAction で制御できます。
デフォルトは -ErrorAction Continue ですが、-ErrorAction Stop を指定すれば停止します。
しかし、質問は > によるリダイレクトであり、
echo hoge > C:\...
2
票
承認済み
更新されたデータのみHDDにバックアップするコードを作りたい
単純な copy コマンドを使うより、robocopy コマンドを使った方が簡単に実現できそうです。
ただしバックアップ目的であれば最低でも /xo オプションは付与した方が良さそうです。
Windowsのrobocopyコマンドでコピーするファイルの種類を選択/変更する
デフォルトでは、robocopyは「Changed」「Newer」「Older」...
2
票
承認済み
powershellでの&演算子の使い方について
PowerShellではなくコマンドプロンプト(CMD.EXE)を使ってください。
一応、この部分は参考チュートリアルの英語版の通り、下記のPowerShellスクリプトで動くようです。
$ENV:DEBUG = "express-locallibrary-tutorial:*"; npm start
しかしその後のNote(下記引用)の通り、...
2
票
承認済み
「オーディオの警告を視覚的に表示する」の変更をPowershellから実行したい
レジストリ更新では即座に反映されません。User32.dllのSystemParametersInfoを使うことで即座に反映されるようになります。
実際に設定する方法についてSOUNDSENTRYW structureを参考にしてください。
サンプル
# C#コードのインポート
Add-Type @"
using System;
using System.Runtime....
2
票
承認済み
PowerShell のコンソールへクリップボード経由で貼り付けると、ある文字が欠落するのはなぜ?
Q2. クリップボード履歴機能を経由する事なく ■ が欠落せずにPowerShellのコンソールへ貼り付ける対策があれば教えてください。
Ctrlvで貼り付けるとうまくいくと思います。※私の環境ではうまくいきました。
右クリックで張り付けるとこの現象が発生するようです。
別解です。Powershellのプロパティ(オプション)のレガシーコンソールを使用するにチェックをいれ、...
2
票
PowerShellで正規表現にマッチしたすべての箇所を配列に入れたい
基本的にはpayanecoさんの回答通りなのですが、正規表現をもう少し工夫すると、PowerShell側から簡単にアクセスできるようになります。
$data = "{ab},{cd},{ef}・・・・" #この長さは固定ではなく、可変です。
$regex = '(?<={).+?(?=})'
$ms = [regex]::Matches($data, $regex) ...
2
票
PowerShellでInvoke-WebRequestの結果に対しForms[0]とは何ですか?
直前のコードが重要です。
$response = Invoke-WebRequest -Uri $myUrl -Method GET -SessionVariable mySession
$form = $response.Forms[0]
とあります。ここで Invoke-WebRequest が何を出力するコマンドレットなのかが重要です。ドキュメントのメモの項目には
PowerShell ...
無効化に投票
関連するタグ
powershell × 142windows × 44
python × 10
batch-file × 8
azure × 4
cmd × 4
node.js × 3
vscode × 3
windows-10 × 3
ssh × 3
chocolatey × 3
java × 2
python3 × 2
c# × 2
linux × 2
visual-studio × 2
.net × 2
正規表現 × 2
anaconda × 2
文字化け × 2
shell × 2
文字コード × 2
コマンドプロンプト × 2
vbs × 2
ruby × 1