
こんにちは。
今、WINDOWSでバッチファイルからPHPプログラムを開いて、PHPで得た値をバッチファイル側に戻したいと考えています。
これは、WINDOWSの.lnkというショートカットファイルのリンク先をPHPプログラムでゲットして、そのリンク先をバッチファイルに戻すことによって、コマンドラインからバッチファイルを引数の『.lnkファイル』を付けて呼び出した場合は、コマンドラインのカレントディレクトリがリンク先に移動する…って出来れば便利だなぁと思って。
現状、PHPから.LNKファイルのショートカットリンク先をゲットすることが出来ましたが、バッチファイルにはそのリンク先を返せていません。
そもそも、返すことが出来るのでしょうか?出来ないならば、POWERSHELLのバッチファイル的な.ps1に戻り値を戻すことが出来るのでしょうか?
コレばっかりはググっても分かりませんでした。ご存じの方、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
バッチファイルは、外部コマンドからはエラーレベルの数値しか受け取れなかったのではないでしょうか?(うろ覚え)
PowerShellコンソールでの場合ですが、PHPスクリプトからパス情報を取得したい場合は以下の記述になると思います。
ただし、こちらにPHPの実行環境がないので未検証です。
PS> Set-Location -LiteralPath $(php .\test.php .\shortcut_file.lnk)
$( )の中がPHPスクリプトの実行で
Set-Location -LiteralPath …… がコマンドプロンプトで言うところのcdコマンドです。
※PHPスクリプトは引数にショートカットファイルのパスを与える前提の表現です。
※PHPのスクリプト(上のtest.php)側では、ショートカットファイルのリンク先の絶対パスを
標準出力に出力するようにする必要があります。
以下、余談ですが
PHPスクリプトを使用しなくてもPowerShellだけで以下の様にすれば可能です。
----- test.ps1 ここから
if($ARGS.Count -eq 0){
Out-Host -InputObject "Usage: test.ps1 shortcut_file"
} else {
$shortcut = Get-ChildItem $ARGS[0]
$shell = new-object -comobject WScript.Shell
$path = $shell.CreateShortcut($shortcut.fullname).WorkingDirectory
Set-Location -LiteralPath $path
}
----- ここまで
使用方法
PS> .\test.ps1 .\foo.lnk
とても素晴らしいご回答、痛み入ります。
私のスキルではまだまだコマンドプロンプトのバッチファイルを記述できるレベルなので、
御教示頂きました、POWERSHELLにおいての方法をマスターできるように、
日々勉強に励みたいと存じます。
大変ありがとうございました。。
ベストアンサーに選ばせて頂きます。<m(__)m>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.phpと.incファイルの違いはな...
-
【file_exists】ファイルが存在...
-
fputs()はfwrite()のエイリアス...
-
URLが.PHPってどういう...
-
CakePHP2のCronでのShellを使う...
-
.phpファイルが、表示されない
-
拡張子PHP3のスクリプトを...
-
phpのheader("Location:#pos")...
-
PHPのif文でその処理を途中で抜...
-
*.php、*.php3、*.phtmlの違い
-
Prompt入力値をphp変数として取...
-
フォームで戻った際に入力済み...
-
ZendFrameworlkでZend_Session...
-
リンク先を隠す方法はないでし...
-
ImageCreate関数が undefined f...
-
phpのコードがそのまま文字列と...
-
CFileDialogの最初のディレクト...
-
class.upload.phpの戻り値(返...
-
require_onceが動いていない
-
phpでzipファイルダウンロード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.phpと.incファイルの違いはな...
-
.phpファイルが、表示されない
-
【file_exists】ファイルが存在...
-
URLが.PHPってどういう...
-
phpinfoの内容が見れない
-
PHPファイルの中身が見られるこ...
-
コマンドプロンプト エラー
-
PHPでフォルダ選択ダイアログを...
-
PHPの戻り値をWINDOWSバッチフ...
-
さくらレンタルサーバーでPHPが...
-
session_start()でwarningが表...
-
サイトのphpソースコードを表示...
-
CakePHP2のCronでのShellを使う...
-
htdocsフォルダ以外ではPHP...
-
phpMyAdmin-5.0.4-all-language...
-
phpmailerで送れない添付ファイ...
-
Fatal error: Class 'Config' n...
-
HTMLに埋め込んだPHPがうまく出...
-
apacheで拡張子を省略してアク...
-
Wordpressの質問です(テーマエ...
おすすめ情報