アプリ版:「スタンプのみでお礼する」機能のリリースについて

色々な場所のディレクトリへ移動することが出来るようにとpowershell でスクリプトを
書きました。

$input = Read-Host "番号をどうぞ"
switch ($input)
{
1 {cd g:\programing; break}
2 {cd g:\programing\python; break}
3 {cd g:\programing\PowerShell; break}
4 {cd g:\programing\Basic; break}
5 {cd g:\programing\python\Othero; break}
6 {cd g:\programing\python\Othero\pygamedoc\AI+python; break}
7 {cd g:\programing\python\tkinter; break}
9 {cd ..; break}
default {cd ..; break}
}
番号を入力してもディレクトリの変更が起こらず、カレントディレクトリのままです。どこに
間違いがあるのでしょうか。

質問者からの補足コメント

  • 教えていただいたことをもとに次にようにしました。
    $input = Read-Host "番号をどうぞ"
    cd g:\
    $num = [int]$input
    switch ($num)
    {
    1 {cd g:\programing; break}
    2 {cd g:\programing\python; break}
    3 {cd g:\programing\PowerShell; break}
    4 {cd g:\programing\Basic; break}


    しかし、結果は変わりません。

      補足日時:2023/04/08 16:24

A 回答 (5件)

試してみたけど、普通にcdできました。


もしかして、cmd.exeからバッチ形式でPowershellを実行してるとか。
「powershell で書いたプログラム」の回答画像5
    • good
    • 0
この回答へのお礼

分かりました。私が実行するときに拡張子ps1を付けてなかったのが
原因と思われます。
拡張子を付けて実行すると補足したスクリプトで動きます。
どうも皆さんにお騒がせしました。申し訳ない。

お礼日時:2023/04/08 18:13

PowerShell は使っていないのだが, あなたがどのような動作を期待しているのかが気になった.



もしも「そのスクリプトによってカレントディレクトリを移動する (つまりそのスクリプトが終了しても移動したディレクトリにいる)」ことを求めているのだとしたら, それは「まともなシェル」では期待できない. つまり「不可能だ」ってことになる (なお PowerShell がここでいう「まともなシェル」に合致するかどうかは知らない).

ちなみに, そのスクリプトで switch の直後に「カレントディレクトリがどこか」を表示させてみたらどうなる?
    • good
    • 0

全部


cd /d g:\...
という書き方にする。
    • good
    • 0

未経験ですが。



コマプロでよくやるミスで、別のドライブのフォルダにする時。
1・現在の最上位(Cドライブなら cd c:)にする。
2・目的のドライブにする(Gドライブなら g:\)
3・目的のフォルダにする(質問文記載済み)
ですが、現在のカレントはGドライブになってますか?
ってちょっと疑問に感じた位です。
    • good
    • 0

こんにちは



まったくの門外漢ですが・・

入力値は文字列ではないのでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!