- 1 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 18:36:12.07 ID:LaQ04ZoE.net]
- 前スレ
PowerShell -Part 5 https://mevius.5ch.net/test/read.cgi/tech/1615994992/ 次スレは>>980が立ててね!!
- 2 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 19:10:00.19 ID:DaRcZGJS.net]
- >>1 乙
- 3 名前:デフォルトの名無しさん mailto:sage [2022/02/15(火) 11:59:52.53 ID:5Cl7umfN.net]
- >>1posh
- 4 名前:デフォルトの名無しさん mailto:sage [2022/02/15(火) 16:10:21.28 ID:8dPt5mlU.net]
- >>1
BathyScaphe利用開始記念書き込み 乙
- 5 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 00:21:49.24 ID:CBYlGRMr.net]
- 今までコマンドプロンプトを使っていましたが、windows power shellに乗り換えました。
コマンドプロンプトでは、エクスプローラーからドラッグ&ドロップでファイルパスが入力できましたが、 windows power shellではできませんでした。 ファイルパスを楽に入力する方法はないんでしょうか
- 6 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 09:30:47.39 ID:zynXt0BH.net]
- 普通にできるけど
- 7 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 15:17:37.72 ID:1Rki5Xrp.net]
- ドラッグ&ドロップを扱うのはコンソールの仕事なんじゃ?
conhostで試してみたけどcmd/pwsh/windows powershellどれでもいけた あんまり設定弄ってないはずだけど、左上クリックして出てくるメニューのプロパティからコピペ関連の項目があるので触ってみては wtで試すと何れのシェルでもファイルのD&Dは受け付けなかった、異常に高機能なのに意外 wtのことならwtスレで聞くといいかと
- 8 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 15:25:50.87 ID:1Rki5Xrp.net]
- 追伸
wtはexplorer上でファイルをコピーしてctrl+[shift+]vでペーストするとファイル名が入力される D&Dにこだわる理由がないなら慣れた方が早そう、労力は大して変わらないだろう
- 9 名前:5 mailto:sage [2022/02/17(木) 19:52:12.95 ID:CBYlGRMr.net]
- >>6-8
power shellはwindowsボタンを右クリックして起動するやつを使いました。 今試したら、D&Dできないのは「管理者として実行」する方で、通常モードならD&Dできました。 管理者モードかどうかで挙動が変わるんですね・・・。
- 10 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 22:56:43.04 ID:urCZGbW+.net]
- UIPIって仕組みで権限またぎのドラッグアンドドロップは禁止されてるみたいね
- 11 名前:デフォルトの名無しさん mailto:sage [2022/02/19(土) 09:43:41.33 ID:Z9XVFihU.net]
- wtスレってどこだよ
勝手が違うから戻してほしいしこんなの作る前に非コンソールのpowershell出せよ
- 12 名前:デフォルトの名無しさん mailto:sage [2022/02/19(土) 10:18:51.14 ID:Klz8S7Ad.net]
- まるでスマホの使い方がわからず店頭でキレて周りに介助してもらおうとするおじいちゃんと同じ言動で草
wtにファイル名をドロップできないのは誤解で、cmdと同じ管理者モード間のOSによるセキュリティ機構のUIPIが原因だった wtはcmdよりよっぽど癖がない良アプリ Powershellのほうがよほど癖強い あとwtは普通に元に戻せる
- 13 名前:デフォルトの名無しさん mailto:sage [2022/02/19(土) 14:02:07.12 ID:x/upE6G9.net]
- >>10
あれなんでだろうね 打ち直せば入力できちゃうんだしよくわからん
- 14 名前:デフォルトの名無しさん mailto:sage [2022/02/19(土) 15:57:35.72 ID:22rkCkNI.net]
- >>13
ドラッグアンドドロップという操作が危険だから狙い撃ちで制限されているというわけではなくて、プロセス間のメッセージ通信に対して制約が掛けられた結果ドラッグアンドドロップも使えなくなった
- 15 名前:デフォルトの名無しさん mailto:sage [2022/02/19(土) 16:04:56.07 ID:x/upE6G9.net]
- >>14
ああなるほど、それなら納得
- 16 名前:8 mailto:sage [2022/02/22(火) 02:53:21.18 ID:LHZaRsEg.net]
- >>14
ああ、conhostをadmin専用にしてて、そこから各シェル立ち上げたと思うわ 俺環でテキトーな検証してごめん
- 17 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 08:44:56.08 ID:mFRfNBZm.net]
- Allow dragging files or folders into Terminal's Command Prompt window to display their path #12377
https://github.com/microsoft/terminal/issues/12377
- 18 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 20:22:44.35 ID:wkvlg9SU.net]
- 前スレの質問者に本当に必要だったものは、たぶんこういうのだと思うんだ…
class node { [node]$val; [node[]]$children; }
- 19 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 20:24:23.06 ID:wkvlg9SU.net]
- まちがえた→[object]$val
教えたがりおじさん見苦しい
- 20 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 21:34:19.39 ID:5aCEOBVD.net]
- 昔csvdeのエクスポートデータをVBSで木構造に変換したりしたけどその時はジャグ配列でなんとかなった
powershellだと配列に色々罠があるから大変そう コマンドレット化されてるデータ構造を扱う事は得意でもテキストを1から解析して階層データとして扱うのには向かない気がする
- 21 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 22:00:01.99 ID:LHZaRsEg.net]
- 木のテキスト表現がカッコや""等ならbalancing groupでパースするのが便利だよ
perl/Pythonよりdotnetのパターン言語の方が強い(丸パクリだから当然だけど)
- 22 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 22:10:34.21 ID:LHZaRsEg.net]
- 組み込み型はスプラッターしちゃうとか罠多いから、内部でキッチリ階層持ちたいなら>>18みたいなロートルな手段が堅牢だったり
仕様覚えるという道もあるけど俺は諦めた
- 23 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 22:27:40.62 ID:U3xoo538.net]
- 逆説的だけど、.NETに詳しくない俺みたいな人ほどテキスト処理は抑えておくべき
なんか良く分からん物が返ってきても、オブジェクトの印字表現をOut-Fileで捕まえてテキスト処理にフォールバックできる()
- 24 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 22:59:38.55 ID:LHZaRsEg.net]
- -match一発でパースが済まない木の表現は、段落を使って木を表現するyamlみたいなやつ
balancing group+複数行マッチで頑張れるかもしれないけど、地道にインデント数えてるわ
- 25 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 23:31:15.02 ID:+zCOrMmD.net]
- 一見不器用でもインデントレベルは素直に数えるのが正解
例えばpythonインタプリタもカウンタを使って構文をパースしてる yaml系のシリアル化フォーマットは、インデントを数えるだけでパーサが書ける移植性が売り
- 26 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 20:35:53.13 ID:KVH3xsak.net]
- Chromeでもパスワードにメモを付けて保存できるようになるみたいね
- 27 名前:915 mailto:sage [2022/02/25(金) 01:33:26.38 ID:wLKzA9jy.net]
- 変数を文字列の中に入れ込んでしまって、消せないフォルダが出来てしまいました
C:\works\+ $a 削除もリネームもフォルダ移動すら出来ません どうすれば削除出来ますでしょうか? お知恵を貸してください
- 28 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 02:07:17.42 ID:3hSRN4MI.net]
- ファイル名に$が入って、$aが展開されちゃう的な?ならエスケープすればいいだけでは
`$a 意図を汲めてるかちょっと自信ないけど
- 29 名前:915 mailto:sage [2022/02/25(金) 07:49:52.49 ID:wLKzA9jy.net]
- >>28
1. 変数を使ってフォルダを作ろうとした 2. 変数に値を代入した $a = 0225 3. C:\works\0225 を作りたかったので “C:\works\ + $a” としたかったが ’C:\works\ + $a‘ としてしまった 4. + $a という名前のフォルダが C:\works\ 直下に作られた 5. エクスプローラからもPowershellからも + $a と名前のついたフォルダは削除、リネーム、 移動が出来ない C:\works\ + $a\test.txt のように+ $a フォルダ内に ファイルを作る事は可能 Win10 Windows powershell 5.1 VSCODEで作成 細かい所はあまり覚えてませんがこんな感じです
- 30 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 08:55:58.66 ID:Ex9z+jLY.net]
- うちの環境では削除できた
なんかのプロセスにロックされてるんじゃないの?
- 31 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 09:22:05.48 ID:Ttq2k6xT.net]
- エラーメッセージを貼らない奴の相手してもしょうがない
- 32 名前:915 mailto:sage [2022/02/25(金) 11:29:32.26 ID:omaqMYjV.net]
- >>31
これは失礼しました エラーは下記です。普通の名前のフォルダは削除出来ます Remove-Item : 引数 '$null' を受け入れる位置指定パラメーターが見つかりません。 発生場所 行:1 文字:1 + Remove-Item + $a + ~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Remove-Item]、ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
- 33 名前:915 mailto:sage [2022/02/25(金) 11:32:06.01 ID:omaqMYjV.net]
- ちなみにフォルダを右クリックして出てくるプロパティ→セキュリティのタブには
「要求されたセキュリティ権限は利用できないか、または表示されません。」 とのエラーも出てます
- 34 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 11:40:38.52 ID:Ttq2k6xT.net]
- >>32
> ’C:\works\ + $a‘ としてしまった んなら Remove-Item ’C:\works\ + $a‘ ってやれよ…
- 35 名前:915 mailto:sage [2022/02/25(金) 12:06:55.57 ID:omaqMYjV.net]
- >>34
すみません。。 やってみました Remove-Item : パス 'C:\works\ + $a ' が存在しないため検出できません。 発生場所 行:1 文字:1 + Remove-Item 'C:\works\ + $a ' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\works\ + $a :String) [Remove-Item], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
- 36 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 12:16:43.02 ID:SH4WT7RG.net]
- コマンドプロンプトを管理者権限で起動
rd /s /q エクスプローラーから対象フォルダをD&D これで無理なら排他制御キャンセルするソフト使うかPCを一旦再起動
- 37 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 12:24:59.94 ID:Ttq2k6xT.net]
- >>35
> Remove-Item : パス 'C:\works\ + $a ' $a の後ろの空白
- 38 名前:915 mailto:sage [2022/02/25(金) 12:30:35.39 ID:omaqMYjV.net]
- >>36
ありがとう御座います 「指定されたファイルが見つかりません」 と返されました。再起動も状況変わらず Dirコマンドでは+ $a は表示されておりエクスプローラでも見えてるのですが何故か認識されないです
- 39 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 12:36:38.88 ID:yKl3/QUV.net]
- コマンドで消したいだけならワイルドカードやタブ補完で選択すればいいじゃない
再起動後エクスプローラーから消せないか試したの? 何がしたいのか分からん
- 40 名前:915 mailto:sage [2022/02/25(金) 12:42:21.42 ID:omaqMYjV.net]
- >>37
空白で思い出しました 試行錯誤してて '"C:\works\' + $a + '\"' のような事もやってました なので(なのかどうかも分かりませんが)フォルダの名前には + $a と後ろにも空白が入っています
- 41 名前:915 mailto:sage [2022/02/25(金) 12:44:41.55 ID:omaqMYjV.net]
- >>39
エクスプローラからの削除だと削除後も+ $a フォルダが残り続けます やりたい事: + $a フォルダを削除したい
- 42 名前:915 mailto:sage [2022/02/25(金) 12:48:15.22 ID:omaqMYjV.net]
- 追記正確なフルパス名
[]は半角スペースです C:\works\[]+[]$a[]
- 43 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 12:55:42.52 ID:SH4WT7RG.net]
- その親フォルダにカレントディレクトリを移動して他に$付くフォルダが無い、或いは削除してしまって良いなら
for /d %a in (*$*) do rd /s /q "%~a"
- 44 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 13:03:31.62 ID:SH4WT7RG.net]
- もし>>43で駄目だったら最後のとこ
"%~sa" を試してみて
- 45 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 13:04:14.85 ID:AEqwOQnl.net]
- C:\worksごと消せばいい
- 46 名前:915 mailto:sage [2022/02/25(金) 13:06:19.04 ID:omaqMYjV.net]
- >>43
やはり指定されたファイルが見つかりませんと返されました 一旦整理します 目的︰ + $a フォルダを削除したい 環境:Win10, Win PS ver 5.1, Vscode 1.64.2 記述:'"C:\works\"[]+[]$y[]+[]"\"' (かなり記憶が曖昧) フルパス C:\works\[]+[]$y[] ※[]は半角スペース 1. エクスプローラ 1.1 右クリック削除→削除後もフォルダが残り続ける 1.2 リネーム→「この項目は見つかりません。次の場所にはありません。」 1.3 移動→同上 2. PS 2.1 Remove-Item(\works直下)→「引数 '$null' を受け入れる位置指定パラメーターが見つかりません。」 2.2 Remove-Item(フルパス)→「 パス 'C:\works\ + $a ' が存在しないため検出できません。」 3. CMD 3.1 rd /s /q→「指定されたファイルが見つかりません」
- 47 名前:915 mailto:sage [2022/02/25(金) 13:07:15.53 ID:omaqMYjV.net]
- 上記 $y → $a です
すみません
- 48 名前:915 mailto:sage [2022/02/25(金) 13:10:23.66 ID:omaqMYjV.net]
- >>44
saでも変わらずでした >>45 >>46の1.1と同じでした
- 49 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 13:11:33.74 ID:AEqwOQnl.net]
- フォルダが消したいだけならPowershell関係ないからこちらでどうぞ
Windows 10 質問スレッド Part82 https://mevius.5ch.net/test/read.cgi/win/1644831539/
- 50 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 13:17:48.06 ID:MEIpOner.net]
- \\?\C:\fogo
- 51 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 15:04:10.02 ID:gazry23L.net]
- >>47
> 上記 $y → $a です > すみません だからさあ、入力した内容とエラーメッセージをそのまま貼ってくれよ…
- 52 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 20:57:30.79 ID:FVUZxr5Y.net]
- dir "*a*" などとして対象のフォルダだけ表示されることを確認して
dir "*a*" |
- 53 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 20:58:43.73 ID:FVUZxr5Y.net]
- dir "*a*" | % {remove-item -LiteralPath $_.Name}
でどうだろうか
- 54 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 21:06:53.72 ID:zbdaU1gm.net]
- dir /x
で8.3形式のファイル名があるなら、それで消してみる だめなら、>>50の形式でフルパスを指定する
|
|