[前の記事]« UNIXからWindowsへのバッチファイル移植相談
[次の記事]サーバー上のExcelファイルがバッチファイルで開かない »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「AT,SCHTASKS…タスクのスケジューリング」索引へ

schtasksで半角スペースを含むパスを実行させたい

842.
schtasksで半角スペースを含むパスを実行させたい
2005年11月13日(日) 17時40分
ぷよたろ
●DOS/Windowsのバージョン↓
Winsows2003Server(WindowsXP)

schtasksコマンドを使用してタスクを作成しています。
この時、パスに半角が含まれていると
タスクをうまく実行することができません。
登録は正常にできるのですが、実行時に
「開始できませんでした」というエラーになるのです。

原因は二重引用符にありました。
タスクの画面を開いて「実行するファイル名」を確認すると、
二重引用府で囲まれていないのです。
(画面から登録した場合は二重引用府で囲まれています。)
前後に引用符つけて実行したところうまくいきました。

作成したバッチファイルは以下のような感じです。

SCHTASKS /CREATE /SC WEEKLY /TN test /TR "C:\Program files\test.exe" /D SUN /ST 23:30

うまく登録する事はできないでしょうか?●DOS/Windowsのバージョン↓

(以下ご自由に質問文をお書きください)
844.
Re:schtasksで半角スペースを含むパスを実行させたい
2005年11月14日(月) 12時00分
じゃく
>●DOS/Windowsのバージョン↓
>Winsows2003Server(WindowsXP)
>
>schtasksコマンドを使用してタスクを作成しています。
>この時、パスに半角が含まれていると
>タスクをうまく実行することができません。
>登録は正常にできるのですが、実行時に
>「開始できませんでした」というエラーになるのです。

>作成したバッチファイルは以下のような感じです。
>
>SCHTASKS /CREATE /SC WEEKLY /TN test /TR "C:\Program files\test.exe" /D SUN /ST 23:30
>
>うまく登録する事はできないでしょうか?

確かにXPで実験してもうまくいきませんでした。
何とかスマートに schtasks コマンドで空白を含むパスを指定する方法がないか考えたのですが、思い付かない(こういうのはotnさんがお得意かな?)ので、
スマートではないですが、for文と組み合わせる方法をご紹介します。

(バッチでの記述例)
for %%A in ("C:\Program files\test.exe") do SCHTASKS /CREATE /SC WEEKLY /TN test /TR %%~sA /D SUN /ST 23:30:00

for文の in() 内のフルパスを %~sA で半角空白を含まない形式に変換しています。詳しくは for /? でご確認下さい。
一応 XP Pro で動作確認しています。
845.
Re:schtasksで半角スペースを含むパスを実行させたい
2005年11月14日(月) 21時10分
ぷよたろ
じゃくさん

 早速の回答ありがとうございます。
指摘していただいた方法で登録したところ、正常に動作しました。
Windows2003Serverでも大丈夫なようです。

XPと2003Serverではコマンドプロンプトに違いがありました。
例えばschtasksですが、XPでは日付をhh:mm:ssで指摘する必要が
あるのに対し、2003ではhh:mm形式でした。
XPに /F(強制的にタスクを上書き作成)はありませんでした。
いろいろと勉強になりました。

>詳しくは for /? でご確認下さい。

調べたところ、「展開されたパスは短い名前だけを含みます。」との事。
なんとなくわかった気はするのですが、もやもやとしています。
(実際のパスと短いパスの2種類ある?)
こちらはこれから少しずつ勉強しようと思います。

昨日秋葉原のヨドバシカメラに立ち寄り、書籍を探しましたが、
DOSコマンドに関連するいい書籍は見つかりませんでした。
何かお勧めの書籍がありましたら教えていただけると幸いです。

それではありがとうございました。
846.
Re:schtasksで半角スペースを含むパスを実行させたい
2005年11月16日(水) 07時20分
じゃく
ぷよたろさんこんにちは。

>調べたところ、「展開されたパスは短い名前だけを含みます。」との事。
>なんとなくわかった気はするのですが、もやもやとしています。
>(実際のパスと短いパスの2種類ある?)

googleなどで LFN や 8.3形式 というキーワードで検索してみてください。何となくわかると思います。
848.
Re:schtasksで半角スペースを含むパスを実行させたい
2005年11月18日(金) 10時45分
YanaKen◆c0rnJ1Q=
ぷよたろさん こんにちは。

>昨日秋葉原のヨドバシカメラに立ち寄り、書籍を探しましたが、
>DOSコマンドに関連するいい書籍は見つかりませんでした。
>何かお勧めの書籍がありましたら教えていただけると幸いです。

 関連書籍のリストを(意外に探しにくいので)下記にまとめて提供しています。ごらんになっていないようならご参考にどうぞ。(そんなにたくさんはありません)

http://fpcu.on.coocan.jp/dosvcmd/books/

※「DOSコマンド」というコトバをお使いですが、NT系の「コマンド・プロンプト」はいわゆる「(MS-)DOSコマンド・プロンプト」とは本来は別物です。その点も念頭において参考書を探されるとよいかと思います。

YanaKen
 
 


カテゴリー「AT,SCHTASKS…タスクのスケジューリング」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2005年11月13日 16:04に投稿されたエントリーのページです。

ひとつ前の投稿は「UNIXからWindowsへのバッチファイル移植相談」です。

次の投稿は「サーバー上のExcelファイルがバッチファイルで開かない」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート