takuo_maeda
@takuo_maeda (前田 卓大)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

コマンドが終わると勝手にメモ帳が開いている???

解決したいこと

コマンドを走らせると
勝手にメモ帳がひらいています。
かってに開くことをやめさせたいです。
解決方法を教えて下さい。

発生している問題・エラー

勝手にメモ帳がひらいています。

該当するソースコード

<# :
@echo off
openfiles >nul 2>&1
if errorlevel 1 (
  powershell start-process "'%~f0'" -verb runas
  goto :EOF
)
powershell -noprofile -command "invoke-expression (get-content '%~f0' -raw)"
goto :EOF
#>

# 以下 powershell スクリプト
$adapter = Get-NetAdapter | Where-Object {$_.InterfaceAlias -eq "Wi-Fi"}
 
# アダプターのコンフィグを取得
$conf = $adapter | Get-NetIPConfiguration
 
# IPアドレスが設定されている場合
If ($conf.IPv4Address.IPAddress) {
 
    # その設定を削除する
    $adapter | Remove-NetIPAddress -AddressFamily "IPv4" -Confirm:$false
}
 
# デフォルトゲートウェイが設定されている場合
If ($conf.Ipv4DefaultGateway) {
 
    # その設定を削除する
    $adapter | Remove-NetRoute -AddressFamily "IPv4" -Confirm:$false
}
$input=Read-Host "(IPアドレスの最後の3桁を入力してください)" 

$adapter | New-NetIPAddress `
 -AddressFamily "IPv4" `
 -IPAddress "172.17.2."+$input `
 -PrefixLength 24 `
 -DefaultGateway "172.17.2.253"
 
 $adapter | Set-DnsClientServerAddress -ServerAddresses "211.129.12.47,211.129.14.138"

自分で試したこと

ありません。

0

1Answer

ファイル名を何にして保存していますか?
拡張子 ".ps1" で保存すると、そもそもエクスプローラーから直接は実行できない筈です。

正攻法だと、上記の記事のようにPowershellスクリプトと起動用のバッチファイル(拡張子 ".bat")を別に用意するのですが、あなたのサンプルコードの "<# ~ #>" の部分って、Powershellスクリプトをバッチファイルとして直接実行出来るようにするための裏技的な処理だと思います。なので、拡張子を ".bat" にすれば多分動くと動くと思います。どこを参考にして書かれたのですか?

0Like

Comments

  1. @takuo_maeda

    Questioner

    このあたりから拾ってきました

  2. @takuo_maeda

    Questioner

    変数を入れる前まではそんなことならなかったのに。
    編集入力設定したらそうなりました。

  3. @takuo_maeda

    Questioner

    $inputを別の単語に変えて変数にしたら、メモ帳で開くのもなおりました。
    本件はクローズさせていただきます

  4. @takuo_maeda

    Questioner

    Powershellの変数は、Powershellで自動的に定義されている変数があります。これを「自動変数」といいます。自動変数はPowerShell によって作成、管理されます。だそうです。

    $input パイプラインで渡された入力オブジェクト。


    上記の指摘を受けて
    自分はプログラムの中にわからずに$inputをつかっていたので、
    $input→$aと変更しました。

    これでうまく動くようになったということです。
    またと開くのはpowershellファイルは実行ポリシーの関係で自動実行はしないので
    代わりにメモ帳がひらくということになっているようです。

Your answer might help someone💌