2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

初心者〜管理者まで必読!コマンドライン(DOS Pt.5)

1 :名無し~3.EXE:2006/07/11(火) 00:22:35 ID:HxtG+321
適材適所で GUI と CUI を組み合わせて、(゚д゚)ウマー

前スレ
1 http://pc.2ch.net/win/kako/1002/10023/1002392089.html
2 http://pc5.2ch.net/win/kako/1013/10138/1013833995.html
3 http://pc8.2ch.net/test/read.cgi/win/1062775949/
4 http://pc8.2ch.net/test/read.cgi/win/1062775949/

DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
コマンドラインインタフェースに関するネタならなんでもOK。

質問も歓迎だけど、自分で調べて勉強する努力も忘れずに。

2 :名無し~3.EXE:2006/07/11(火) 00:24:53 ID:HxtG+321
訂正

7c7
< 4 http://pc8.2ch.net/test/read.cgi/win/1062775949/
---
> 4 http://pc8.2ch.net/test/read.cgi/win/1116131036/

3 :名無し~3.EXE:2006/07/11(火) 01:22:52 ID:Jt4CDqIy
意気揚々と埋めてるから何かネタでもあるのかと思ったのに・・・

4 :名無し~3.EXE:2006/07/11(火) 01:37:39 ID:oqrI561G
for /?

5 :名無し~3.EXE:2006/07/13(木) 01:06:15 ID:CMHslxMB
だれもいない

6 :WindowsXP:2006/07/13(木) 15:46:40 ID:HlT6NdOe
誘導されて来ました。

クリックでTempフォルダの中身を消去するアイコン (.bat ファイル) を作りたいのですが、
 rmdir /s "Tempフォルダのパス"
だとTempフォルダ自体も消えてしまいます。

この場合に限らず、ディレクトリの中身だけを削除する場合どのように命令すればよいのでしょか。

7 :名無し~3.EXE:2006/07/13(木) 15:56:13 ID:QTEtV8XE
消した後に作る

8 :名無し~3.EXE:2006/07/13(木) 15:59:22 ID:f3nQB2M5
Tempフォルダにcdしてrmdir /s .
なんてな

9 :名無し~3.EXE:2006/07/13(木) 17:58:16 ID:ooElHgFf
http://www.atmarkit.co.jp/fsecurity/rensai/securitytips/017hotfix.html
これのバッチファイルの書き方教えて。


10 :名無し~3.EXE:2006/07/13(木) 18:00:49 ID:4/io/uFv
>>9
その中にBATファイル例があるのは気のせいなんだろうか?

11 :名無し~3.EXE:2006/07/13(木) 18:09:40 ID:ooElHgFf
その例を
メモ帳で書いて拡張子を.batにしてhotfixと同じフォルダに入れて
クリックするだけでいいんですか。

12 :名無し~3.EXE:2006/07/13(木) 21:51:09 ID:/VQW/QIJ
>>7だと、アクセス権とか監査とかが復元できない場合があるので>>8のほうが賢いと思う。
ただ、/sだけでは「よろしいですか (Y/N)?」と聞いてきてしまうので、/qも付けたほうがいいかも。

13 :名無し~3.EXE:2006/07/13(木) 21:55:08 ID:/VQW/QIJ
あと、万が一対象フォルダが無くなった状態で実行すると、カレントフォルダ以下を
丸消しに逝ってしまうので、

cd 対象フォルダ&&rmdir /s /q .

としたほうが良いと思う。

14 :名無し~3.EXE:2006/07/13(木) 21:58:41 ID:64yIeWy4
そうだけど、全部手入力するするの?

dir /b > patch.batとすれば、多少、編集が楽になるし、
for など使えば、-m -z でOKなパッチだけだったら、
ディレクトリ内のパッチをあてるようにもできるだろうし。
-m -z が使えないのが混ざってるとだめだけど。

15 :14:2006/07/13(木) 22:02:43 ID:64yIeWy4
>>11 のコメントでした、コメントがとんでしまってすまん。

16 :名無し~3.EXE:2006/07/13(木) 22:21:46 ID:1rMuZnzq
dir /b /o:d > out.txt
こうしておけば更新日時が古い順に並ぶお。
ダウンローダでファイルの日時を取得してるならこうやって並べると気持ちいいかも。

17 :名無し~3.EXE:2006/07/20(木) 01:17:00 ID:w2h+z3Fq
話の途中ですみません。
XPProで回復コンソールをWINDOW配下にインストールしたいのですが、
何かいい方法ないでしょうか? デフォだと%SYSTEMDRIVE%に強制的に
作られるんですが、ルートってのは目障りなんです。手動でWINDOWS
配下に移し、BOOT.INIのパス表記も合わせても、回復コンソール起動中に
TXTSETUP.SIFが見つからない云々…のエラーが出てしまいます。
よろしくおねがいします。

18 :名無し~3.EXE:2006/07/20(木) 09:44:57 ID:DOSQ1KF2
どう見てもスレ違いです。
下記スレッドで再度質問してください。
WindowsXP質問スレ 152ページ目
http://pc8.2ch.net/test/read.cgi/win/1152982564/
本当にありがとうございました。

19 :名無し~3.EXE:2006/07/20(木) 09:45:28 ID:DOSQ1KF2
うほっ、IDがDOS

20 :名無し~3.EXE:2006/07/20(木) 13:29:50 ID:/kQGoaOV
神キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

21 :名無し~3.EXE:2006/07/20(木) 14:00:03 ID:bWg0PLeg
質問です。

batでwavを呼び出して一度だけ再生して
終了させる方法はありませんか?
環境はXPproです。

22 :21:2006/07/20(木) 14:28:35 ID:bWg0PLeg
自己解決しました

23 :名無し~3.EXE:2006/07/20(木) 23:07:55 ID:KmtrP+Qh
・・・どう解決したか書いとけよ。

24 :名無し~3.EXE:2006/07/21(金) 18:13:50 ID:QFAk7q3Q
そんな情報イラン

25 :21:2006/07/22(土) 05:25:08 ID:WFo5cAzv
>>23
自分としては
一応別の言語でそれっぽいもの作って対応。
sleepとかもいつの間にか消えてたんでついでに作りました。

なんでバッチに拘ってるか分からなくなってきたorz
というかコマンドプロンプトで解決できてないや・・・

26 :名無し~3.EXE:2006/07/22(土) 12:50:08 ID:NiBpIi7E
sndrec32 /embedding /play 〜.wav

27 :名無し~3.EXE:2006/07/23(日) 15:55:03 ID:98gcVlRV
全ディスク中から、特定の名前のディレクトリだけを指定したいのですが、
ディレクトリ名にはワイルドカードは使えないんでしょうか?

例:\settingというディレクトリを指定したい



28 :名無し~3.EXE:2006/07/23(日) 21:00:56 ID:kD5ysoEu
なんでこういう実験してみればわかるようなことを質問するかなぁ・・・


29 :名無し~3.EXE:2006/07/24(月) 04:00:54 ID:Pj4INBC0
とりあえず置いときますよ。
ttp://www.seshop.com/book/preview/200309/4798104426-dos.pdf
ttp://www.vector.co.jp/soft/win95/util/se010511.html

30 :名無し~3.EXE:2006/07/26(水) 00:30:25 ID:7KnQnoV2
XPのcmd.exe上で、URLエンコードされたURLを引数として、
IEを直接呼び出したいと思っています。
例えばこんな感じです。

> iexplore "http://www.google.com/search?hl=ja&lr=lang_ja&inlang=ja&ie=Shift_JIS&q=%82%D9%82%B0"

この例はうまくいくのですが、運悪く %CD% が含まれてしまうと、
そこの部分がカレントディレクトリ名に展開されてしまって期待通りになりません。
例えば以下はうまくいかない例です。

> iexplore "http://www.google.com/search?hl=ja&lr=lang_ja&inlang=ja&ie=Shift_JIS&q=%82%CD%82%CD"

環境変数の展開を抑制する方法はないものでしょうか。
ダブルクオートの代わりにシングルクオートは試してみましたが駄目でした。

31 :名無し~3.EXE:2006/07/26(水) 01:11:48 ID:xPsBkOpx
>>30
検証したわけではないが、%を^%に変更したらどうだべ?

32 :30:2006/07/26(水) 01:17:40 ID:7KnQnoV2
>>31
駄目でした…。
Google側に、「^」を含んだまま渡ってしまいます。

33 :名無し~3.EXE:2006/07/26(水) 04:55:47 ID:bvsfqXHv
set CD=^%CD^%
しておくとか

34 :名無し~3.EXE:2006/07/26(水) 05:23:01 ID:9XtTVqad
>>30
Shift_JIS以外のコードを使ってみるとか。

35 :名無し~3.EXE:2006/07/26(水) 05:28:41 ID:Fcd8s0ZU
エスケープが必要な文字(%と&)を^でエスケープしてダブルクウォートで囲まないで渡す

36 :30:2006/07/26(水) 06:30:30 ID:7KnQnoV2
>>35氏の方法でできました!

>>33
なるほどこれもいけますね。
汎用性がちょっと低いのが難点でしょうか。

>>34
実はこのコマンドラインを最終的には Perl のスクリプトの中に
含めたいのですが,その関係上でできれば Shift_JIS で
いきたかったのです。

>>31氏も含め皆様どうもありがとうございました!

37 :名無し~3.EXE:2006/07/26(水) 13:17:43 ID:Uf4XzLbe
なんか気分がいい

38 :名無し~3.EXE:2006/07/27(木) 13:34:20 ID:AYHBeKOk

アニメ BEST100
ttp://www.animedepot.biz/DVDlist/2005years_best.htm

1位
http://www.animedepot.biz/DVDlist/title/KVDVD0542.htm
2位
http://www.animedepot.biz/DVDlist/title/KVDVD0518.htm
3位
http://www.animedepot.biz/DVDlist/title/A18D2492.htm
4位
http://www.animedepot.biz/DVDlist/title/KVDVD0533.htm
5位
http://www.animedepot.biz/DVDlist/title/A18D2480.htm
6位
http://www.animedepot.biz/DVDlist/title/KVDVD0512.htm
7位
http://www.animedepot.biz/DVDlist/title/KVDVD0502.htm
8位
http://www.animedepot.biz/DVDlist/title/KVDVD0521.htm
9位
http://www.animedepot.biz/DVDlist/title/KVDVD0505.htm
10位
http://www.animedepot.biz/DVDlist/title/KVDVD0508.htm

39 :名無し~3.EXE:2006/07/27(木) 14:05:13 ID:ed7fKJ1k
バッチファイルについて教えてください。

同一フォルダにある全てのテキストファイル(*.txt)の頭に、jpegファイルを連結して偽装jpegファイル
を作りたい(目的は、iアプリのreate用)のですが、これのためのバッチファイルが書けません。

== connect.bat ==
copy dummy.jpg dummy2.jpg
copy dummy2.jpg+%1
ren dummy2.jpg %1

これを connect *.txt で実行すると、やはり全てのテキストファイルが連結されてしまってうまくいきません。
PC9801時代からDOSは触ってるのですが、このような処理をどう書くのか忘れてしまって困っています。
なにかいい案はないでしょうか?

40 :名無し~3.EXE:2006/07/27(木) 16:57:01 ID:AwHWEOxl
forでループさせろよ

41 :名無し~3.EXE:2006/07/27(木) 17:18:18 ID:ed7fKJ1k
>>40
forあたりを使いそうなのはわかるのですが、どう書いたらよいのかわかりません。

42 :名無し~3.EXE:2006/07/27(木) 17:48:09 ID:ejfXxMCP
for /?

43 :名無し~3.EXE:2006/07/27(木) 18:42:23 ID:ZyGLQChd
four のレスは見事だな

44 :名無し~3.EXE:2006/07/27(木) 19:16:31 ID:3HWIL+gJ
忘れたんなら for /? みれば思い出せるだろ。
DOS時代のforの機能で十分だし。

45 :名無し~3.EXE:2006/07/27(木) 19:39:25 ID:IqaLZ9Vg
>>39
2行目を
for /f %%F in ('dir /b %1') do copy dummy2.jpg+%F
にしたらどうだ?

46 :名無し~3.EXE:2006/07/27(木) 19:53:31 ID:FVkrqnx/
forが使えんやつはgotoとshiftでも使ってろや

47 :45:2006/07/27(木) 21:11:39 ID:IqaLZ9Vg
スマソ、間違えたorz
for /f %%F in ('dir /b %1') do (
copy dummy2.jpg+%%F
ren dummy2.jpg %%F
)

>>45をカキコした直後にブレーカーが落ちたもんですぐ訂正できなかった(泣)

48 :名無し~3.EXE:2006/07/27(木) 21:35:39 ID:3HWIL+gJ
>>45,47
copy /?

49 :45:2006/07/27(木) 21:53:28 ID:IqaLZ9Vg
>>48
いけね、コピー先のファイル名はこの場合省けないのねorz

for /f %%F in ('dir /b %1') do (
copy /y dummy.jpg+%%F dummy2.jpg
move /y dummy2.jpg %%F
)

これでおk?

50 :名無し~3.EXE:2006/07/27(木) 22:24:06 ID:HBIHjoKe
move?

51 :名無し~3.EXE:2006/07/28(金) 03:06:39 ID:1XL80h13
バッチファイルのコマンドラインの途中で改行を入れたいんですが
どうしたらいいですかね?

それと
dir hogehoge.txt /s /b
で取れたフルパスをそのまま実行させたいのですがどうしたらいいのでしょう?

お願いします

52 :名無し~3.EXE:2006/07/28(金) 03:20:05 ID:DKUy5lzO
改行無理
お前も例にもれず、for /?

53 :51:2006/07/28(金) 03:22:10 ID:1XL80h13
補足です

hogehoge.txtはファイル名は判っていますがサブフォルダに深く潜り込んでいて
その為dir検索しています

54 :51:2006/07/28(金) 03:27:53 ID:1XL80h13
仕方なく現在は検索結果を別のバッチファイルにリダイレクトして実行させてます


start(改行文字)
hogehoge.txtのフルパス

ってやりたかったんですが・・・

55 :名無し~3.EXE:2006/07/28(金) 03:48:25 ID:DKUy5lzO
>>54
forを使うのはループのためじゃなくってコマンド結果を環境変数に格納するためだ。

56 :51:2006/07/28(金) 03:53:20 ID:1XL80h13
>>55
トークン切り出してとか?

57 :51:2006/07/28(金) 03:54:27 ID:1XL80h13
あ、そっか!

ありがとー

58 :名無し~3.EXE:2006/07/29(土) 01:06:41 ID:DUV1QYxh
echo タイトル: %~1
echo URI:      %~2
echo 回数:     %~3
echo 間隔:     %~4 [sec]

FOR /L %%I IN (%~3,-1,1) DO (
  title [%%I / %~3 @ %~4sec] %~1
  .\Script\sleep.exe %~4
  .\Jane2ch.exe -b -h "%~2"
)

このコマンドをSleep.exe使わずにやりたいんですけど、
これって
  .\Script\sleep.exe %~4

  .\Ping.bat 1 %~4

でPing.batの中は
@echo off
ping localhost -n 2 > nul
ping localhost -n %1 > nul

でだめなんでしょうか?
動かないんですけど。。。

59 :名無し~3.EXE:2006/07/29(土) 01:23:04 ID:QdzE6wVf
だめ。

60 :名無し~3.EXE:2006/07/29(土) 03:01:48 ID:DUV1QYxh
>>59
やっぱりだめですか
書き換え方教えてください

61 :58:2006/07/30(日) 16:20:22 ID:TgP6edG5
どなたか教えてください

62 :名無し~3.EXE:2006/07/30(日) 16:32:31 ID:jss5BkeS
ping.bat
ping
ping.exe

63 :58:2006/07/30(日) 17:24:04 ID:TgP6edG5
>>62
えっ、どういうことでしょうか?

echo タイトル: %~1
echo URI:      %~2
echo 回数:     %~3
echo 間隔:     %~4 [sec]

FOR /L %%I IN (%~3,-1,1) DO (
  title [%%I / %~3 @ %~4sec] %~1
ping.bat                               ← ここです
  .\Jane2ch.exe -b -h "%~2"
)

ってことですか?

64 :名無し~3.EXE:2006/07/30(日) 18:17:51 ID:URlOCn8N
久々に言おう・・・

必死だなw

65 :名無し~3.EXE:2006/07/30(日) 18:42:16 ID:MIqSJOjQ
>>63
ping.batの中身の方だ。

つーか、そんな紛らわしい名前付けるな。

66 :名無し~3.EXE:2006/07/30(日) 19:16:53 ID:OKe+j+Rm
pingって書いたら、ping.batが実行されるかping.exeが実行されるか知ってる?
それにbat中で別batを呼び出すのに単にbatって書いちゃダメだろ。

67 :名無し~3.EXE:2006/07/30(日) 22:37:49 ID:TgP6edG5
>>65-66
えーと、こういうことでしょうか?

echo タイトル: %~1
echo URI:      %~2
echo 回数:     %~3
echo 間隔:     %~4 [sec]

FOR /L %%I IN (%~3,-1,1) DO (
  title [%%I / %~3 @ %~4sec] %~1
Call   .\Waiting.bat %~4         ←ここを変更(名前は紛らわしいとだめらしいのでWating.bat)
  .\Jane2ch.exe -b -h "%~2"
)


Waiting,batの中は
@echo off
ping localhost -n 2 > nul
ping localhost -n %1 > nul

↑じゃなしに

これなんですか?
ping
ping.exe

68 :67:2006/07/31(月) 02:00:01 ID:pjJQiXPC
出来ました
ありがとうございました

69 :名無し~3.EXE:2006/08/02(水) 13:36:04 ID:wsgBoBsR
XP sp2で USBマウスが反応しません。 (動きません)
マウス(Hamma)の型番が不明でドライバーも見つかりません。
ディバイスマネージャでは、PS2-Pad というドライバがひとつ
だけあります。 ドライバの更新、トラブルシューティングを
やっても直りませんでした。
どうすれば、マウスが動くようになるでしょうか?


70 :名無し~3.EXE:2006/08/02(水) 14:12:40 ID:5OwJeRGW
ネタ?
スレタイ読める?

71 :69:2006/08/02(水) 14:23:26 ID:wsgBoBsR
すみません。 初心者スレと見間違いました。
申し訳ありませんでした。 w
気にせずに質疑、議論を進めてください。


72 :名無し~3.EXE:2006/08/02(水) 14:38:30 ID:BwFBApMu
質疑、議論とかそんな大そうなスレじゃないし

             . ィ
.._ .......、._    _ /:/l!
 :~""''.>゙' "~ ,、、''‐'、|         _       ご冗談を
゙、'、::::::ノ:::::::_,.-=.  _〜:、         /_.}'':,  
 ``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
 ,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:'  ノ゙ノブ
"   .!-'",/  `'-‐'') /\ `/ でノ-〈
 .-''~ >'゙::    ‐'"゙./  ヽ.,'   ~ /
   //:::::       ',    /    ,:'

73 :名無し~3.EXE:2006/08/03(木) 00:20:18 ID:6j4+y6+n
こんばんは 最近コマンドラインの勉強を始めた者ですが質問があります。
コマンド実行結果によるERRORLEBELの値で分岐処理をしようと思っているのですが、
ERRORLEVELの値についてコマンド/?を調べてもどこにも書かれていません。
自分でざっと調べた結果、正常処理なら「0」、異常処理なら「それ以外」のように
思うのですが、具体的な値はどのように調べればよろしいでしょうか
ご教授願います。



74 :名無し~3.EXE:2006/08/03(木) 00:28:02 ID:L7kyqlc5
確かに未だにまともなリファレンスがないのはアレだよなぁ。

75 :名無し~3.EXE:2006/08/03(木) 00:55:21 ID:CapLiwm3
>73
これと言った統一ルールは無いよ。
ただ特に説明が無ければ、正常だろうがエラーだろうが
大抵は「0」が返ってくると思う。
何が変えるかはコマンドやexe次第。

C言語分かるなら、mainの戻り値≒ERRORLEVEL と思えばよろし。

76 :名無し~3.EXE:2006/08/03(木) 01:58:48 ID:JXRq3dhJ
0か1以外返すやつなら大抵readmeやヘルプとかに書いてる

77 :名無し~3.EXE:2006/08/03(木) 03:47:48 ID:CnXcCkLB
コマンドで説明がないものは基本的に戻り値に意味が無いものだと思え。
統一した値など全くない。

78 :名無し~3.EXE:2006/08/03(木) 03:54:37 ID:BA6wBAJp
それでも0は想定の範囲内くらいの意味は残ってるだろ。

79 :名無し~3.EXE:2006/08/03(木) 06:08:52 ID:CnXcCkLB
>>78
0にもまったく意味なし。
正常でも異常でも0を返すコマンドはいっぱいある。

80 :名無し~3.EXE:2006/08/03(木) 06:13:20 ID:4ppbqAX6
EXIT_SUCCESS は 0 じゃね?

81 :名無し~3.EXE:2006/08/03(木) 16:09:37 ID:ki5O0+Zn
>>77,79
知ったかもほどほどに

82 :名無し~3.EXE:2006/08/03(木) 19:25:12 ID:YhlYC0Ja
2ちゃんねるの90パーセントは知ったかで構成されている

83 :名無し~3.EXE:2006/08/03(木) 19:58:48 ID:b//5CN2i
0が帰ってきたときは正常ということは全く言えないので0も無意味。
>>81はもっと勉強しる。

84 :名無し~3.EXE:2006/08/03(木) 20:07:13 ID:EDvrYDRp
正常に終了したわけじゃなくても、想定の範囲内で終了したなら
0を返すと思うが…。

85 :名無し~3.EXE:2006/08/03(木) 20:51:35 ID:b//5CN2i
想定の範囲内とかわけわからん言い方よせ。
もしダンマリとか落ちるとか以外の終了の場合ならそりゃその通りかもしれんが
普通それは想定内とか言う意味じゃない。
(そういうコマンドなら、unknownエラーでも0を返すよ)

86 :名無し~3.EXE:2006/08/03(木) 22:13:36 ID:L7kyqlc5
>>79
なんのコマンドかに因らず「0なら正常終了」と考えられるかといえばそうじゃないのは確か。
でも、コマンドごとにどういうケースで0返すか考えて使うなら非常に有用だよ。

87 :名無し~3.EXE:2006/08/03(木) 22:39:59 ID:b//5CN2i
>>86
それは逆。コマンド毎に、エラーコードXXはこういう場合というのが考えれるのなら非常に有効。

88 :名無し~3.EXE:2006/08/03(木) 23:15:55 ID:JXRq3dhJ
┐(´ー`)┌

89 :名無し~3.EXE:2006/08/04(金) 00:30:32 ID:3SMtX8D3
>75で既に十分語られていると思うのだが。

90 :名無し~3.EXE:2006/08/04(金) 01:08:39 ID:0qOdq+cq
まあ標準コマンドだと殆どは戻り値に意味が無いね。

91 :名無し~3.EXE:2006/08/04(金) 07:31:44 ID:kPylik4/
正常終了=0、何らかのエラー=0以外の値、
となってない標準コマンドってあります?
ほとんど上記パターンに則ってると思うんだけど。

92 :名無し~3.EXE:2006/08/05(土) 02:53:21 ID:inmltxCg
>91
CHOICEコマンド

93 :名無し~3.EXE:2006/08/08(火) 10:05:21 ID:iso+Sl68
>>91
ping

94 :名無し~3.EXE:2006/08/13(日) 08:36:26 ID:GfGxOKgQ
コマンドラインで、引数を元にテキストファイルを作成する事って出来ますでしょうか?

何がしたいかといいますと、beckyというメールソフトを使ってるのですが、
フィルタリングマネージャなどで条件により、プログラムの起動。
そのプログラムに引数として、メール本文を投げ、処理を行ったあと、
結果をテキストファイルとして出力したいんです。

どなたか詳しい方いらっしゃいますでしょうか?


95 :名無し~3.EXE:2006/08/13(日) 09:27:06 ID:albh57vU
beckyって使ってないから分からんけど、バッチファイル中では
引数は%1 %2 %3 ...で参照できるよ。

hoge.bat中に、
その処理させたいプログラム名 %1 > %2
って書けば、
hoge.bat hage.txt uge.txt
でhage.txtが処理されてuge.txtに出力される。

96 :名無し~3.EXE:2006/08/15(火) 18:59:50 ID:tB2dtgI0
一度だけ自動実行するバッチファイルを作りたいのですが、
自動実行するコマンドってあるのでしょうか?

97 :名無し~3.EXE:2006/08/15(火) 19:25:23 ID:UN+U0IeJ
タスクに登録するとか
スタートアップで起動してBATの最後にリンクを削除するようにするとか
レジストリの runonce に登録するとか
試した?

98 :96:2006/08/15(火) 19:46:01 ID:tB2dtgI0
>>97
自動実行って、そういうコマンドがあるんじゃなくって、
タスクに登録するなりして実現するものなんですね。
恥ずかしながら、コマンド一つで出来るものかと思っておりました。
ありがとうございました。

99 :名無し~3.EXE:2006/08/15(火) 19:51:42 ID:UN+U0IeJ
タスクに登録するコマンドならあるけど?

100 :名無し~3.EXE:2006/08/15(火) 22:40:06 ID:rx3Cek+f
初心者な質問すみません。

コマンドプロンプト上で
AフォルダとBフォルダの中身を比較して(下層フォルダ含む)
AフォルダにあるものをBフォルダから削除するには
どうすればよいでしょうか?
出来ればMD5などのハッシュ比較も行いたいです。
あと、ハングル名などのunicodeでもこれは可能でしょうか?

101 :名無し~3.EXE:2006/08/15(火) 22:48:55 ID:tPpDxHgb
robocopyでいくつかのスイッチ組み合わせれば近いこと出来るかも。
ハッシュ比較は無理だけど。

102 :名無し~3.EXE:2006/08/15(火) 22:54:14 ID:rx3Cek+f
>>101
スタートフォルダは普通に英数なんですけど
下層フォルダとファイル名がハングルなのですが
その場合でも出来そうですか?

サイズ比較くらいでも無理ですかね?

103 :名無し~3.EXE:2006/08/15(火) 23:02:27 ID:UN+U0IeJ
取り合えず、そうあたりで、
ファイルサイス一致するかどうか、次にバイナリ一致するかどうか
で試してみれば?
コンペアさせる順序をファイルサイズでソートすれば
ファイル数がそれほど多くなければ十分実用になると思う

104 :名無し~3.EXE:2006/08/15(火) 23:04:52 ID:rx3Cek+f
>>103
ファイル数が少なくて数十
多くて数千・・・危険?

105 :名無し~3.EXE:2006/08/15(火) 23:15:37 ID:5SvS0Mip
>>100
スクリプト(このスレ的にはコンソールスクリプトかな)でやる方がいいね。
それとハッシュでの比較ってのは、既にどちらかのハッシュが算出してある場合以外は無意味。
何故かというと、通常のバイナリ比較だと
 Aのバイナリを読み込み→Bのバイナリを読み込み→バイナリ比較
という流れだが、ハッシュ比較だと、ハッシュというのはバイナリ全体から算出するものなので
 Aのバイナリを読み込み→Aのハッシュを算出→Bのバイナリを読み込み→Bのハッシュを算出→ハッシュ比較
と手間が増える上に、ハッシュというのは別バイナリで同一ハッシュになる可能性もあるから
信頼性は下がるという悪いこと尽くめの方法。

>>104
数千くらいなら全然問題ないでしょ。
20億越えると危険だけど。
まあ、数が多けりゃそれだけ時間は掛かるが
処理時間はファイル数よりファイルサイズ一致数に影響される。

106 :名無し~3.EXE:2006/08/16(水) 00:16:10 ID:ctOK82Ic
まあちょっと(かなり)面倒だろうが頑張ってくれ。
for /?
if /?
dir /?
setlocal /?
あたり。

例】
ファイルサイズ for /f "delims=" %I in ('dir /a-d /s /b d:\foo') do echo "%~fI" は %~zI バイト
バイナリ比較  fc /b file1 file2>NUL  if not errorlevel 1

107 :名無し~3.EXE:2006/08/16(水) 00:55:02 ID:TUJADtxE
ありがとう御座いますですよー。
初心者なりに頑張ってみます。

108 :名無し~3.EXE:2006/08/16(水) 15:17:04 ID:z35aAI0X
今HDDが死に掛けであわててバックアップとってるところですが
xcopyのコマンドでコピー先に既にあるファイルはコピーしない とするにはどうしたらいいでしょうか?

109 :名無し~3.EXE:2006/08/16(水) 15:18:59 ID:9Oj2H2Nx
>>108
/I

110 :名無し~3.EXE:2006/08/16(水) 15:21:11 ID:9Oj2H2Nx
>>109
!あ、うそ

/Uの反対だな

111 :名無し~3.EXE:2006/08/16(水) 17:57:50 ID:q2ajl0ca
robocopyは便利だよ

112 :名無し~3.EXE:2006/08/16(水) 21:39:21 ID:9gYsTFoa
Windowsのバッチファイル(.bat)で、単に第1引数、第2引数… のようなかたちではなく、
「-x」や「-x <パラメータ値>」のような形でパラメータを
渡して利用者が使いやすいような仕組みにしてあげたいとおもうのですが、
それをサポートしてくれる便利なツールなどはありますでしょうか?
(UNIXでいうgetoptsないしgetoptみたいなもの)

113 :名無し~3.EXE:2006/08/16(水) 23:40:15 ID:WP4Sa4y5
外部ツール使うぐらいなら自分でなんとか解析するのじゃ。
shift とか for (%*) とか使えば何とかなるのじゃ。

114 :名無し~3.EXE:2006/08/16(水) 23:43:13 ID:FN2GT4dW
>>108
/dかな。
指が覚えてるフォルダ丸ごと差分コピー。漏れが一番よく使う使い方。
xcopy /deciqhrkoxy コピー元フォルダ コピー先フォルダ

115 :名無し~3.EXE:2006/08/16(水) 23:44:00 ID:FN2GT4dW
>>112
便利なツールは知らないけど、forで無理矢理作ってみた。
スイッチと値をひとかたまりで扱うため「-A:値」のようにコロンで繋げる書式にしちゃったけど。
@echo off
setlocal
set ParmA=
set ParmB=
set ParmC=
set ParmD=
:parmset
for /f "tokens=1* delims=:" %%i in ('echo %1') do (
if "%ParmA%"=="" echo %%i|find /i "-A">nul&&set ParmA=%%j
if "%ParmB%"=="" echo %%i|find /i "-B">nul&&set ParmB=%%j
if "%ParmC%"=="" echo %%i|find /i "-C">nul&&set ParmC=%%j
if "%ParmD%"=="" echo %%i|find /i "-D">nul&&set ParmD=%%j
)
shift
if not "%1"=="" goto :parmset
if not "%ParmA%"=="" (echo スイッチ -A で指定された値は %ParmA% です。) else (echo スイッチ -A は指定されていません。)
if not "%ParmB%"=="" (echo スイッチ -B で指定された値は %ParmB% です。) else (echo スイッチ -B は指定されていません。)
if not "%ParmC%"=="" (echo スイッチ -C で指定された値は %ParmC% です。) else (echo スイッチ -C は指定されていません。)
if not "%ParmD%"=="" (echo スイッチ -D で指定された値は %ParmD% です。) else (echo スイッチ -D は指定されていません。)
endlocal

116 :名無し~3.EXE:2006/08/17(木) 00:54:14 ID:W+Pk0QLm
>>114
ありがとうございます!上手くいきました!

117 :名無し~3.EXE:2006/08/17(木) 12:52:33 ID:ukr3w+FO
>>115

ありがとうございます!findと暗黙的ループ変数を組み合わせて使うことはおもいつきませんでした。
大変たすかりました

118 :名無し~3.EXE:2006/08/19(土) 15:35:36 ID:5KecWynB
引数1個も無しでも動くように直したyp

@echo off
setlocal
set ParmA=
set ParmB=
set ParmC=
set ParmD=
:parmset
if "%1"=="" goto :parmsetend
for /f "tokens=1* delims=:" %%i in ('echo %1') do (
if "%ParmA%"=="" echo %%i|find /i "-A">nul&&set ParmA=%%j
if "%ParmB%"=="" echo %%i|find /i "-B">nul&&set ParmB=%%j
if "%ParmC%"=="" echo %%i|find /i "-C">nul&&set ParmC=%%j
if "%ParmD%"=="" echo %%i|find /i "-D">nul&&set ParmD=%%j
)
shift
goto :parmset
:parmsetend
if not "%ParmA%"=="" (echo スイッチ -A で指定された値は %ParmA% です。) else (echo スイッチ -A は指定されていません。)
if not "%ParmB%"=="" (echo スイッチ -B で指定された値は %ParmB% です。) else (echo スイッチ -B は指定されていません。)
if not "%ParmC%"=="" (echo スイッチ -C で指定された値は %ParmC% です。) else (echo スイッチ -C は指定されていません。)
if not "%ParmD%"=="" (echo スイッチ -D で指定された値は %ParmD% です。) else (echo スイッチ -D は指定されていません。)
endlocal

119 :名無し~3.EXE:2006/08/19(土) 20:26:04 ID:XQgYyCo4
斜め横からすみません
この前から見てますが↑これと>>115はどうやって使うんですか?
BATファイルにして動かしても、、、、何ですが、、、、

120 :名無し~3.EXE:2006/08/19(土) 20:57:14 ID:A+Jwn71h
>>119
>>112

121 :名無し~3.EXE:2006/08/19(土) 20:58:14 ID:KhGo//4y
%%jを%%iにしてみたら?

122 :名無し~3.EXE:2006/08/19(土) 21:01:27 ID:KhGo//4y
すまん。
BATの内容読んだら、パラメタには、
-A:xxxx -B:yyyy
というようにコロンで区切って値を渡すようになってたよ。


123 :名無し~3.EXE:2006/08/19(土) 21:08:22 ID:VuqHKvs3
わからなきゃ使わなければいいのに

124 :名無し~3.EXE:2006/08/19(土) 21:24:53 ID:g4LMndok
他人が使ってるのを見たら使いたくなるだろうが
使いたくなる人が増えたら作者も作ったかいがあるというものだ

だれか親切な人使い方教えてくれ

125 :名無し~3.EXE:2006/08/19(土) 21:36:25 ID:5KecWynB
1. >>118の「@echo off」から「endlocal」の行を選択してメモ帳に貼り付け。
2. 各行の末尾に空白文字(半角スペース)が入ってたら消す。
3. 「hoge.bat」でファイル名を付けて保存。
4. コマンドプロンプトで、

    hoge.bat -A:apple -B:bag -C:cat -D:dog

  とか打ってみる。
5. 下の表示が出たら成功。

    スイッチ -A で指定された値は apple です。
    スイッチ -B で指定された値は bag です。
    スイッチ -C で指定された値は cat です。
    スイッチ -D で指定された値は dog です。

5. 引数いろいろ変えてテストしてみてクレ。

126 :名無し~3.EXE:2006/08/19(土) 21:39:14 ID:5KecWynB
あ5がふたつだorz

127 :名無し~3.EXE:2006/08/23(水) 21:21:56 ID:ObYRfIur
exeファイルをログインしているユーザとは
別のユーザで実行したいんですけどできます?
OSはxpです。
start コマンドでexeファイルは起動できるのですが、
別ユーザ権限で実行したいのです。
exeファイルを右クリックしてメニューに出てくる「別のユーザで実行する」のを
コマンドでできますでしょうか?

128 :名無し~3.EXE:2006/08/23(水) 21:31:04 ID:7V6omiO2
るなs

129 :名無し~3.EXE:2006/08/23(水) 22:01:29 ID:ZGTuPVlE
>>127
runas /?

130 :名無し~3.EXE:2006/08/26(土) 09:41:20 ID:U3mxe7Fy
バッチファイルの実行中に指定秒数一時停止させる方法は有りますでしょうか?
pauseだと人が押さないとアレなんで…

131 :名無し~3.EXE:2006/08/26(土) 09:56:58 ID:WC4q3ZS6
sleep.exeをどこかから入手するか(例: http://www.vector.co.jp/soft/win95/util/se282254.html )
作る(例 http://pc8.2ch.net/test/read.cgi/tech/1123842575/39 )

132 :名無し~3.EXE:2006/08/26(土) 10:27:49 ID:FeFrpd2p
これはこれでアレな方法

@echo off
echo 約5秒待ちます...
start /min /wait mshta.exe "javascript:void(setTimeout('window.close()', 5000))"
echo ok

133 :名無し~3.EXE:2006/08/26(土) 10:28:53 ID:wQZ6u8Br
' sleep.vbs
' C> cscript //nologo sleep.vbs 5
Set args = WScript.Arguments
if args.Count = 1 then WScript.Sleep args.Item(0) * 1000

134 :名無し~3.EXE:2006/08/26(土) 10:34:49 ID:U3mxe7Fy
>>131,132
出来ました!
ありがとうございますm(_ _)m

135 :名無し~3.EXE:2006/08/26(土) 10:35:25 ID:FeFrpd2p
次の1行を記述したファイル sleep.js :

try{WScript.Sleep(1000*WScript.Arguments(0));}catch(e){}

を作って,バッチファイル中に

cscript //b sleep.js 10

のように書けば10秒sleep。

136 :135:2006/08/26(土) 10:36:18 ID:FeFrpd2p
似たようなのが>>133にあったか

137 :名無し~3.EXE:2006/08/26(土) 10:45:38 ID:U3mxe7Fy
>> 134,135
ありがとうございます、そちらも試してみます。

138 :名無し~3.EXE:2006/08/26(土) 12:57:25 ID:LVNArOwt
ping 127.0.0.1 -n 10>nul

139 :名無し~3.EXE:2006/08/26(土) 13:11:55 ID:9gQtyg25
>>138に一票

140 :名無し~3.EXE:2006/08/26(土) 21:13:02 ID:wQZ6u8Br
細かいことだが>>138だと「約9秒間待つ」処理になる。

まあ、バッチファイルにそれほど細かい精度を要求する人はいないと思うが…

141 :名無し~3.EXE:2006/08/26(土) 21:29:02 ID:WC4q3ZS6
じゃあ
ping 0 -n 11 > nul


142 :名無し~3.EXE:2006/08/26(土) 22:35:39 ID:QOJ05dBw
ワロタ
なごんだ
感心した

143 :名無し~3.EXE:2006/08/27(日) 15:35:30 ID:T5Kq+UaQ
テキストファイルの最初の数行を抜き取って上書きしようとして

more +!nl! hoge.txt>hoge.txt

とするとテキストが空になってしまうのですが、一度別のファイルに書き出してからじゃないと上書きは無理ですか?

144 :名無し~3.EXE:2006/08/27(日) 15:37:54 ID:T5Kq+UaQ
すいません>>143の行の前に

setlocal enabledelayedexpansion
set /p n=

です

145 :名無し~3.EXE:2006/08/27(日) 19:42:41 ID:UeDkqXpA
入出力のファイルオープンを同じファイルにするのは無理だって。
これはどのソフトでも同じ。
他ソフトを見習って、一旦作業ファイルに出力した後、
入力ファイル削除、出力ファイルをリネームしろ。

146 :143:2006/08/27(日) 23:10:18 ID:DuGHZ1Jx
>>145
やはりそうですか、ありがとうございました。

147 :名無し~3.EXE:2006/08/28(月) 02:44:43 ID:tGN/v/7N
テキストエディタなんか一見対象ファイルを編集してるようだが
実際は作業ファイルを別に作成したりしてるわけで保存時に
そのファイルを移動したりしてる。
元のファイルはその前に削除したりバックアック名にリネームしたりしてて。

148 :名無し~3.EXE:2006/08/29(火) 12:00:53 ID:meFFkd6M
バッチファイルでコンピュータ名を変更したいのですが可能でしょうか?
OSはWindows XP Proです。


149 :名無し~3.EXE:2006/09/05(火) 01:30:08 ID:J1YU4f6y
ttp://hp.vector.co.jp/authors/VA015850/software/wisteria.html
↑このソフトに関するバッチファイルの記述をどなたか解説していただけないでしょうか
お願いします

150 :名無し~3.EXE:2006/09/05(火) 02:03:44 ID:so+Ty3eJ
>>149
[このソフトのパス]wisteria <設定ファイル> <画像ファイル...>
例:
c:\resizer\wisteria.exe "c:\resizer\custom.ini" "c:\a.jpg" "c:\b.jpg" "c:\c.jpg"

Helpくらい嫁。

151 :名無し~3.EXE:2006/09/05(火) 02:17:29 ID:J1YU4f6y
>>150
すいません
その通り記述して作ったんですがショートカットをSendToに入れて使えないんです

152 :名無し~3.EXE:2006/09/05(火) 02:18:00 ID:fKR1uigz
嫁じゃなく読めだった

153 :名無し~3.EXE:2006/09/05(火) 02:37:33 ID:f0JURZ4F
注意
実行ファイル(及びショートカット)ではなく、起動したウインドウへ D&D してください

って書いてあるじゃん

154 :名無し~3.EXE:2006/09/05(火) 02:39:32 ID:J1YU4f6y
>>153
いえそれがバッチファイルでのバックグラウンド動作ができるらしいんですが…

155 :名無し~3.EXE:2006/09/05(火) 02:51:07 ID:J1YU4f6y
すいませんバッチファイルのショートカットをSendToに入れると実行できました
ViXからのSendTo内バッチファイル実行が不可能なようですお騒がせしましたすいません

156 :名無し~3.EXE:2006/09/05(火) 02:56:37 ID:lhq1jDgQ
Win95なら別だが、ショートカットだけでbatいらないんじゃね?

157 :名無し~3.EXE:2006/09/05(火) 03:24:58 ID:J1YU4f6y
>>156
ショートカットだと>>153の方が言っておられますように
ウィンドウへD&Dが必要なんです
バッチファイルを使用するとそのD&Dの手間が省けるので楽です


158 :名無し~3.EXE:2006/09/05(火) 03:37:42 ID:lhq1jDgQ
>>157
なぜできないのか理解できないので実際に試してみたが、普通にできたぞ。

ViXは知らんが。

159 :名無し~3.EXE:2006/09/05(火) 03:56:26 ID:J1YU4f6y
>>158
エクスプローラーの送るメニューからは可能なようです
ViXのバグか何かだと思いますお手数おかけしてすいません

160 :名無し~3.EXE:2006/09/06(水) 20:21:28 ID:37Qi347M
↓の意味がよく輪からないんですけどどうすればいいんですか?
msdosで起動するソフトなんですが????です。
% mecab ファイルパス -o 別のファイルパス   って入力すればいいんじゃないんですか?
 
http://academy4.2ch.net/test/read.cgi/english/1147601343/918
引数にファイルを与えると, そのファイルが解析対象となります. また, -o オプションにて, 別のファイルに結果を出力することも可能です.

% mecab INPUT -o OUTPUT


161 :名無し~3.EXE:2006/09/06(水) 20:22:10 ID:37Qi347M
↑誤爆です

162 :名無し~3.EXE:2006/09/08(金) 10:02:24 ID:QU5REhu+
>160
誤爆なのか。確かにスレ違いだが
完全に外してるワケでもない微妙な誤爆だなw

例えば解析したいファイルの名前が「aaaaaaa」で
その結果を「bbbbbbbb」に保存したいなら
コマンドプロンプト開いて

mecab aaaaaaaa -o bbbbbbbb

って打ってエンター、な。

163 :名無し~3.EXE:2006/09/09(土) 02:02:28 ID:l7Z6gnOX
>>157
作者です(w

ショートカットでいけますよ.
ショートカットのプロパティのリンク先をこんな感じにします.
"D:\release\resizer\wisteria.exe" "D:\release\resizer\pattern01.ini"

164 :名無し~3.EXE:2006/09/09(土) 02:09:44 ID:mRjJ9uKf
作者は来るなよバカ

165 :名無し~3.EXE:2006/09/09(土) 02:29:17 ID:9IbISJaR
(・∀・)カエレ!!!(・∀・)カエレ!!!(・∀・)カエレ!!!

166 :名無し~3.EXE:2006/09/09(土) 03:45:44 ID:B/z4vq7U
>>163
起動するだけで終わり
その後D&Dしないといけない

167 :名無し~3.EXE:2006/09/09(土) 04:59:48 ID:b6RM+FdO
XP にて、bat ファイルを使って、環境変数をシステムに通知する
方法ってありますでしょうか。

たとえば、
reg add HKEY_CURRENT_USER\Environment /v ENVNAME /d ENVVALUE
で環境変数に値を追加した後に、この変更をOS再起動なしに有効にしたい
場合、どのようにしたらよいでしょうか。

ここを読むと、
http://support.microsoft.com/kb/104011/ja?spid=1131&sid=global

SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,
(LPARAM) "Environment", SMTO_ABORTIFHUNG,
5000, &dwReturnValue);

でできるようなのですが、なるべく余分なプログラムなしでやりたい
ので、できれば、DOSコマンド、無理ならWSHあたりでどうにかする
方法をごぞんじないでしょうか?

168 :名無し~3.EXE:2006/09/09(土) 05:26:27 ID:9IbISJaR
rundll32 でできたらいいね

169 :名無し~3.EXE:2006/09/09(土) 11:47:46 ID:C5Wo58dx
XPのコマンドプロンプトより、自動起動の設定をします。

at 8:45 /interactive /every:M,T,W,Th,F "C:\UWSC.exe"

とすると、

http://2ch-dc-ita.gotdns.com/~dc-ita/cgi-bin/imgboard/img-box/img20060909114512.jpg

のように利用できないネットワークを参照してしまいます。

普通にUWSCを起動すると、C:\uwsc31b のフォルダの参照がデフォルトです。

このエラーの回避方法が分からず悩んでいます。

どなたかアドバイスを宜しくお願いいたします。

170 :169:2006/09/09(土) 12:06:00 ID:C5Wo58dx
すみません。

↑の画像、うまく見えないみたいなので、他の箇所にアップロードしました。
宜しくお願い致します。

http://upload.fam.cx/cgi-bin/img-box/du760909120451.jpg

171 :名無し~3.EXE:2006/09/09(土) 13:30:16 ID:A+UCQsHR
[タスク]の[詳細設定] メニューの [AT サービスのアカウント]

172 :名無し~3.EXE:2006/09/09(土) 13:50:11 ID:C5Wo58dx
>>171
レスありがとうございます!
タスクとはどこから開けますか?

173 :172:2006/09/09(土) 14:00:51 ID:C5Wo58dx
>>171
わかりました。ありがとうございます。

174 :名無し~3.EXE:2006/09/09(土) 14:01:01 ID:9IbISJaR
control

175 :167:2006/09/09(土) 16:38:46 ID:b6RM+FdO
>168
ためしに、
rundll32 user32.dll,SendMessageA 65535 26 0 0
とやってみましたが反映させませんでした。rundll32 では呼び出せないのかな。
うーん、なんとかならんですかねえ。

176 :名無し~3.EXE:2006/09/09(土) 17:38:34 ID:8eEUOKMl
>>175
「Windows XP Service Pack 2 サポート ツール」や「Windows 2000 Resource Kit」などから
setx.exeを拾ってくれば?

177 :名無し~3.EXE:2006/09/09(土) 17:50:25 ID:QgusI8od
98SEのDOSプロンプトで、あるプログラム(.exe)を実行する際、画面スクロール
が出来ないため見づらく困っています。
全体を表示させるにはどうしたらいいでしょうか?
尚、XP-Proも持っていますが、このDOSで実行すると、プログラムが閉ループ
に入るため使っていません。


178 :名無し~3.EXE:2006/09/09(土) 17:57:20 ID:/swEvRPS
NYADOSとかck (for Win9x)ではだめかな
使ったこと無いけど

179 :名無し~3.EXE:2006/09/09(土) 20:48:35 ID:C5Wo58dx
コマンドプロンプトのバッチファイルで、a.exeとb.exeの間に5秒余裕を入れたいです。
以下のようにsleep コマンドだと思うのですがうまくいきません。
どなたかアドバイスお願いいたします。

start "" /MAX "C:\自動起動\a.exe"

sleep 5

start "" "C:\自動起動\b.exe


180 :名無し~3.EXE:2006/09/09(土) 21:00:31 ID:lO4MfV+7
>>179
最初のstartには /WAIT オプションが必要でしょう。
あとは
>>131-141
を参照。

181 :180:2006/09/09(土) 21:04:03 ID:lO4MfV+7
a.exeが完了してから5秒待つわけでなければ
「/WAIT オプションが必要」は撤回します。

182 :名無し~3.EXE:2006/09/09(土) 21:14:52 ID:C5Wo58dx
>>180
どーもでした!!

183 :名無し~3.EXE:2006/09/09(土) 21:32:44 ID:C5Wo58dx
作成したバッチファイルをクリックして実行すると間に5秒入るのですが、
タスクから自動実行すると実行は時刻どおりにしますが
5秒の間隔は無視されてしまいます。
しかもa.exeは非アクティブになります。

何か間違っていることがあればご指摘お願いします。

バッチファイル

start "" /MAX /WAIT C:\a.exe
cscript //b sleep.js 5
start "" /WAIT "C:\b.exe



184 :名無し~3.EXE:2006/09/09(土) 21:36:39 ID:m9zXbjkI
これはどお?
   ↓
timeout /t 5

185 :177:2006/09/09(土) 21:44:15 ID:Ya9BvK8X
>>178
さんきゅうです。NYADOSを試しましたが駄目でした。ck (for Win9x)は
PCの調整が必要なため、未だ試していません。ところで
ttp://flex.ee.uec.ac.jp/texi/emacs-jp/emacs-jp_118.html#IDX663
の  C-x [ 前のページとの区切りにポイントを移動します  は、この
場合のスクロールに相当するものでしょうか?

ググりましたが、キーバインドでのキー操作が分かりません


186 :183:2006/09/09(土) 21:46:09 ID:C5Wo58dx
>>184
一段目の下に入れてみましたが、同じでした・・・

187 :名無し~3.EXE:2006/09/09(土) 21:47:30 ID:lO4MfV+7
バッチでなくてJScriptにして
cscript //b runAandB.js
で実行してみるとか。

// runAandB.js
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("C:\\a.exe", 3, true); // 3: ウィンドウをアクティブにし最大化
//       true: プログラムの実行が終了するまでスクリプトを待機させる
WScript.Sleep(5000);
WshShell.Run("C:\\b.exe");

188 :名無し~3.EXE:2006/09/09(土) 22:03:05 ID:C5Wo58dx
>>187
やってみます!ありがとうございます。

189 :名無し~3.EXE:2006/09/09(土) 22:50:48 ID:ePVGTDAY
>>185
win95cmd
Wineのcmd

190 :名無し~3.EXE:2006/09/14(木) 07:47:45 ID:l5s6sQsr
&&を使って2つのファイルを実行させたいのですが、"CommandA && CommandB"
の通りやると

"C:\Program Files\test\test.vbs && C:\Program Files\test\test2.vbs"

となってエラーが出てしまいます。
初歩の初歩とは思いますが、こうしたコマンド中にスペースがある場合のコマ
ンド連結の方法を教えてください。すいませんが、お願いします。

191 :名無し~3.EXE:2006/09/14(木) 08:24:56 ID:SDPKJdUF
>>190
× "CommandA && CommandB"
○ "CommandA" && "CommandB"

192 :名無し~3.EXE:2006/09/14(木) 08:40:57 ID:l5s6sQsr
>>191
ありがとうございます。すいません、実はこのコマンドをATコマンドを使って
スケジューラーに登録したいのです。それで

ATコマンド cmd /c "CommandA" && "CommandB"

とやるとCommandAはスケジューラーに登録されるのですが、CommandBは
ATコマンド実行時に同時に実行されてしまうのです。

二度手間になってしまって申し訳ありませんが、もし"CommandA" && "Com
mandB"をスケジューラーに登録できる方法をご存知でしたらご教授ください。

193 :192:2006/09/14(木) 11:08:58 ID:l5s6sQsr
すいません、自己解決しました。

cmd /c atコマンド cmd /c "CommandA" && "CommandB"

と/cスイッチを2重に掛けてしまったのが悪かったようで

atコマンド cmd /c "CommandA" && "CommandB"

とすることできちんとスケジューラーに登録されました。

194 :名無し~3.EXE:2006/09/18(月) 13:06:40 ID:5c+M8uRH
コントロールパネル > 地域と言語のオプション > 詳細設定
> Unicode 対応でないプログラムの言語
を英語(米国)に一発変換するコマンドを教えてください。賢い人お願い。

195 :名無し~3.EXE:2006/09/19(火) 02:50:37 ID:xYqALZ2K
ローカルネットワークで使うファイル共有機器を使っているのですが
恐らく破損が原因で一部のファイルが削除できなくなってしまいました。
UNCを使ってChkdskをかけようとすると、できませんでした。

その外部機器は共有専用の物でそれ自体にログインすることはできません。
操作元のPCはWindowsXPです。
何か良いファイルの削除方法はありませんか?

196 :名無し~3.EXE:2006/09/19(火) 02:53:40 ID:PvS6FX5U
フォーマットぐらいできるんじゃね?

197 :名無し~3.EXE:2006/09/19(火) 12:59:10 ID:JsGdWB5o
アフォウ

198 :名無し~3.EXE:2006/09/19(火) 23:28:59 ID:2GQBIaKq
chkdskもformatもローカルのドライブしかやってくれないよ。

199 :名無し~3.EXE:2006/09/20(水) 02:28:12 ID:WXXCtHSF
3年半前の誰かに「ありがとう」。
----------------------------------------------------------
初心者必読!最低限知っておくべきDOSコマンド 2
http://pc5.2ch.net/test/read.cgi/win/1013833995/660

660 名前:名無し~3.EXE[sage] 投稿日:03/04/02 20:56 ID:MJorWg4J
>>658
shift というコマンドがある。

@echo off
:loop
if '%1'=='' goto end
attrib %1 /d /s -h -s
attrib %1 /d /s +h +s
shift
goto loop
:end
---------------------------------------------------------
これを応用させてもらって

@echo off
:loop
if '%1'=='' goto end
C:\Soft\ffmpeg\ffmpeg -i %1 -ab 128 "%~dp1%~n1.mp3"
shift
goto loop
:end

200 :名無し~3.EXE:2006/09/21(木) 07:08:39 ID:mJ5ybNlv
>>196-198
やっぱり直接ログインできないと難しそうですか…。(´д`)

201 :名無し~3.EXE:2006/09/21(木) 09:41:25 ID:iuEaw+TT
a&b.exe っていうのがあって(そういう危険なファイル名をつけるのが問題なんだが、それは諦めるとして)
これをVBScirptから起動して、その標準エラー出力を捕獲したいんですが

Set objShell = WScript.CreateObject("WScript.Shell")
scmd = "cmd /c a&b.exe 2> out.txt"
WScript.echo scmd
objShell.Run scmd

とすると、cmd.exeの機能として、
a&bの部分を a , b.exe と分解してしまいます。
リダイレクトしなければ scmd="a&b.exe" で済むのですが。

cmd.exeに、&を特殊文字じゃなく、ファイル名の一部だと認識させるにはどうすればいいでしょうか?


202 :名無し~3.EXE:2006/09/21(木) 11:23:18 ID:qC8l8Y5k
scmd = "cmd /c a^&b.exe 2> out.txt"

203 :名無し~3.EXE:2006/09/21(木) 12:17:14 ID:ZaRXWuea
>>202
さんくすです。


204 :名無し~3.EXE:2006/09/21(木) 17:26:59 ID:v01n1OiK

telnet hogehoge.com 80

で接続後

HEAD / HTTP/1.0
Host: hogehoge.com

http://hogehoge.com ヘッダーの情報を得たのですが、


http://hogehoge.com/saitama/saitama.html
のように階層とファイルを指定する場合、どのように打てばよいのでしょうか?




205 :名無し~3.EXE:2006/09/21(木) 18:37:34 ID:U4TS2RPc
cmd と関係ないじゃん

HEAD /saitama/saitama.html HTTP/1.0
Host: hogehoge.com

206 :名無し~3.EXE:2006/09/21(木) 21:36:02 ID:v01n1OiK
>>205
dクス

207 :名無し~3.EXE:2006/09/25(月) 03:56:34 ID:zcUKP0FD
WEB上にあるファイルと、ローカルにあるファイルのMD5とかを参照比較して、違ってたら何かメッセージ出したり、起動したりDLしたりって事、出来ませんか?

208 :名無し~3.EXE:2006/09/25(月) 18:30:42 ID:3OvFGSR9
「コマンドライン」ってほとんどのWindowsアプリを起動できるから
「出来ません」とは答えられないよね。

209 :名無し~3.EXE:2006/09/25(月) 18:33:33 ID:PAABQqCC
ダウンロードする前にmd5の計算が出来ればね。

210 :名無し~3.EXE:2006/09/27(水) 00:52:25 ID:sv2UodKP
ascii文字列の比較をしたいです。UNIXの "comm"コマンドのような
ものを探しているのですが、compやfcではいまひとつです。

211 :名無し~3.EXE:2006/09/27(水) 00:56:39 ID:sv2UodKP
連投すみません。イメージとしてはこれです↓
ttp://www.atmarkit.co.jp/flinux/rensai/linuxtips/565comp2file.html

212 :名無し~3.EXE:2006/09/27(水) 01:23:02 ID:9XHxAPx1
ttp://www.ossh.com/gnu-win32/comm.exe

213 :名無し~3.EXE:2006/09/27(水) 01:32:17 ID:sv2UodKP
>>212
お〜、ありがとうございます。ついでにsortとuniqももらってやりたいこと
ができましたー

214 :名無し~3.EXE:2006/10/03(火) 02:29:36 ID:NfBnO3Xp
wmeのinputsourceのところをbatファイルで書き換えて
自動エンコード開始をしたいのですが書き換えコマンド教えてください。
最初はチョコアで書き換えてbat起動させて自動エンコード開始させようと思ったのですが
チョコアでwmeのファイルを書き換えることができないのを知ってbatで書き換えて自動起動をしようと考えています。


215 :名無し~3.EXE:2006/10/03(火) 16:01:40 ID:1+YRdBks
xcopy C:\甲 D:\乙\甲 /d/e/i/q/h/r/y
これを一度実行して、甲の中の丙.txtを削除。再度xcopy実行。D:\乙\甲の中に丙.txt が残ってる。
丙.txtは削除して欲しいんだが、xcopyだけで解決するにはどうすればいい?できればrdは使いたくないな。

216 :名無し~3.EXE:2006/10/03(火) 16:09:35 ID:1+YRdBks
自分で読んでも、わかりにくい文になった。すまそ。
送り側で削除されたファイルを、受け側に残したくないっていう意味です。
さらに、受け側の容量がデカイので、rd xcopy でやると時間が掛かりすぎて困るっていう意味です。

217 :名無し~3.EXE:2006/10/03(火) 17:21:43 ID:bakKShfe
そういうのはもうそういった同期ソフトを使うべきでは

218 :名無し~3.EXE:2006/10/03(火) 20:16:14 ID:MLlCxdLB
xcopyじゃできません。
robocopyなら/PURGEスイッチ使えば尾k

219 :名無し~3.EXE:2006/10/04(水) 22:12:37 ID:oVbBf3W/
一瞬/PUGERAスイッチに見えた

220 :名無し~3.EXE:2006/10/05(木) 00:23:32 ID:qgLmfY2v
同期ならFileFileCopyを使えばいい
それか>>218

221 :名無し~3.EXE:2006/10/05(木) 00:30:39 ID:MCb5nvF1
漏れも昔はファイルファイルコピーと空目してたからあまり大きなことは言えないが
ファイアファイルコピーだぞ

222 :名無し~3.EXE:2006/10/05(木) 19:45:16 ID:tjGrDL9G
ファイルファイルコピー吹いたwwwwwwwwww

223 :名無し~3.EXE:2006/10/05(木) 21:19:10 ID:saVGMH9k
本当だ!wwww
紹介元にFileFileCopyってあったからそのまま鵜呑みにしてたよ。
2年くらいずっとそうだと思って疑わなかった。

そいじゃFileFileCopyって類似ソフト作っちゃおうかな。
RDとXCOPYだけのどうしようもないヤツ。

224 :名無し~3.EXE:2006/10/05(木) 21:36:35 ID:WbWfkADc
以下のようなバッチファイルを作ったのですが、
思ったような結果になりません。
やりたいことはバッチファイルを置いたディレクトリの配下に
「CVS」というディレクトリがあったら消すということをしたいのですが。
どこが間違ってるでしょうか?

@echo off
cd %CD%
for /r /d %%i in (*) do (
if "%%~ni" == "CVS" (
rd %%i /q/s
)
)
pause

225 :名無し~3.EXE:2006/10/05(木) 21:41:45 ID:WbWfkADc
自己解決しました。

@echo off
cd %CD%
for /r /d %%i in (*) do (
if "%%~ni" == "CVS" (
rd "%%i" /q/s
)
)
pause

226 :名無し~3.EXE:2006/10/05(木) 21:41:50 ID:wT80tbne
echo onして見てみれば分かる。

ちなみにやりたいことって
@rmdir /s /q %~dp0CVS
でいいんじゃね?

227 :名無し~3.EXE:2006/10/09(月) 14:13:20 ID:1VStL+z8
コマンドラインからZIP圧縮は可能なのでしょうか?
できれば圧縮率も指定できるといいのですが


228 :名無し~3.EXE:2006/10/09(月) 14:15:11 ID:ZgyN8vMw
cd c:/ じゃね?

229 :名無し~3.EXE:2006/10/09(月) 15:54:46 ID:8A81Nzzr
>>227
コマンドライン型の圧縮率指定可能な圧縮ツール使えば可能。
因みにコマンドラインツールを使いたくないとかいう情報後出しは却下。
ツールが見つからなければ、ソフ板のありますかスレへどうぞ。

230 :名無し~3.EXE:2006/10/09(月) 18:04:20 ID:HzNhAxQB
fsutil hardlinkで、ファイルのハードリンクを作成できるようですが、
あるファイルについて、ハードリンクがいくつ張られているのか
知る方法はありますか?

231 :名無し~3.EXE:2006/10/09(月) 18:37:36 ID:oNSZ8baq
ntfs utils

232 :名無し~3.EXE:2006/10/10(火) 23:00:37 ID:aZsZyqrX
俺用メモ
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/ja/library/ServerHelp/9660fea1-65c7-48cf-b466-204ba159381e.mspx

233 :名無し~3.EXE:2006/10/11(水) 00:27:46 ID:YmyvbGZx
すいません、ものすごく既出な質問だと思うのですが、

プログラムA実行完了後、プログラムBを実行する場合、

programA.exe && programB.exe

でいいんですか?それとも何か良い方法があるんでしょうか?

234 :名無し~3.EXE:2006/10/11(水) 00:39:04 ID:b7WovQg3
>>233
programA && programB
programAが正常に終了した場合のみprogramBを実行する

programA & programB
programAが実行された後、programBを実行する


235 :名無し~3.EXE:2006/10/11(水) 00:42:23 ID:YmyvbGZx
>>234
即効の回答ありがとうございました。

236 :名無し~3.EXE:2006/10/11(水) 01:07:55 ID:EuLbjpXz
無理に一行に書く必要もなかろう
programA & programB

programA
programB
と同意

あと結果に応じての処理なら
programA && programB

programA
if not errorlevel 1 programB
と同意
まあ君の分かりやすいように書いとけば?
なお結果が異常な場合には、programA || programB|
実行するために
start /wait programA
って書くこともできる。

237 :名無し~3.EXE:2006/10/11(水) 14:56:10 ID:IOmcdCd9
バッチ処理を続けると勝手に終わっちゃうよ(ノД`)
なんで?バッチの中からcallで沢山ある他のバッチを次々に読み込んでいくんだけど
構文や処理内容にエラーがないことは半年かけて確認したよ。
1次バッチ→call2次バッチ→call3次バッチ(複数)
     →call2次バッチ→call3次バッチ(複数)
こんな感じで次々にバッチ処理をするんだ。2次バッチは100個ほどで、3次はそれぞれ15個
バッチって処理限界あるの?
仕事場のPCでは最後まで走るのに自宅のPCとか他部署のPCでは途中で処理をやめちゃうよ

OS/WinXpPro Version2002 SP1
CPU/PenD920 RAM2.0GB
HDD/300GB
MB/Intel D945GNT こんな環境です。

238 :名無し~3.EXE:2006/10/11(水) 20:18:46 ID:Pq9of3Uw
BATに間違いないなら、メモリーリークとかあるのかもね。
一応環境変数のワークサイズはXPの場合8192バイトだったかな。(2000だと2048バイト)
あとはsetlocalとかcmdとかで操作してみるとか。

239 :名無し~3.EXE:2006/10/11(水) 22:54:54 ID:OyhdnErx
バッチの内容に問題あるんじゃね?
エラーが出ると、エラーが出た瞬間に窓閉じるからな。
だから見た目には途中で勝手に終わったように見える

240 :名無し~3.EXE:2006/10/11(水) 23:00:55 ID:Sa6qyVds
>2次バッチは100個ほどで、3次はそれぞれ15個

1500個も同時にプロセス動かすのって・・・すげー嫌な感じ。
漏れは絶対やりたくない。

241 :名無し~3.EXE:2006/10/13(金) 11:18:06 ID:VOTIVxE/
特定のファイルの属性を隠しファイルにしたいんですがどのようなコマンドを書けばいいですか?
よろしくお願いします

242 :名無し~3.EXE:2006/10/13(金) 11:23:51 ID:L4CHgkjE
attrib

243 :名無し~3.EXE:2006/10/13(金) 11:29:51 ID:VOTIVxE/
>>242
すいません今思い出してできました本当にすみません
ついでなのですが特定のファイルが他のプロセスに使用されている場合
そのプロセスがそのファイル使用していない状態にしてそのファイルを削除するようなコマンドはどうすればいいでしょうか
よろしくお願いします

244 :名無し~3.EXE:2006/10/13(金) 12:11:11 ID:C46/3tBp
>>243
標準コマンドには無いから、そういう事が出来るコマンドラインツールを探すか作るかして利用する。

245 :名無し~3.EXE:2006/10/13(金) 12:29:46 ID:/BVrTyQW
ファイルからオープンしてるプロセスを特定する方法ってあるんか?
Win32APIでも構わんので知ってたら教えてくれ。

246 :名無し~3.EXE:2006/10/13(金) 12:33:34 ID:VOTIVxE/
>>244
やはりファイルをUnlocker等のソフトに飛ばしてその後に削除するコマンドを使うしかないのですね
ありがとうございました試行錯誤してみます

247 :名無し~3.EXE:2006/10/13(金) 13:58:39 ID:C46/3tBp
>>245
逆。
ファイルからオープンしてるプロセスを特定するんじゃなくて
既存プロセス群が掴んでるファイル群の中から、対象に一致する物を探す。
つーか、検索ってのは普通そういうものだし。

これ以上の話は板違いなので、APIスレなり使用言語スレなりでどうぞ。

248 :名無し~3.EXE:2006/10/13(金) 18:54:57 ID:AB8vVd7f
>236
> if not errorlevel 1 programB

errorlevel はゼロか否かで判定する方が良くない?
っていうかソフトによって微妙に違うとは思うんだけど。

249 :名無し~3.EXE:2006/10/13(金) 19:04:48 ID:xVRY4L91
>>248
if の昔ながらの書式をもう一度確認した方が良いぞ。

if errorlevel 1 で 1以上の場合だ。

250 :名無し~3.EXE:2006/10/13(金) 19:32:22 ID:AB8vVd7f
>249
あらら…確かにhelpにも書いてあるわ。
俺普段 %errorlevel% しか使わんから気付かんかった。スマソ

251 :名無し~3.EXE:2006/10/14(土) 01:36:11 ID:T/OFuaaU
すいません。
ファイル名を指定して実行で、

cmd /k cd e:\temp

としても cd せずに、無指定と同じc:\dqnment〜のまま窓が出ます。
出てきた窓で e: とすると e:\temp に直接移動します。
カレント指定で起動するにはどうすればいいのでしょうか。

252 :名無し~3.EXE:2006/10/14(土) 01:56:20 ID:VspRUX5O
cd /?

253 :名無し~3.EXE:2006/10/14(土) 12:29:38 ID:ibVcNeOH
>251
ちゃんと cd コマンドの詳細を見よう。

254 :名無し~3.EXE:2006/10/14(土) 14:24:13 ID:y7UvFN4Z
たとえば
サーバー:192.168.0.254
クライアント1:192.168.0.2
クライアント2:192.168.0.3
というアドレスのPCがあるとき
クライアントがどれか1台でも起動していれば = 何もしない
すべてのクライアントがシャットダウンしたら = サーバーもシャットダウンする
というのを作りたいのですが

linuxでシェルスクリプトなら
ping 192.168.0.2 -c 4 
if [ $? = 0 ]
then
onoff=10
fi

ping 192.168.0.3 -c 4
if [ $? = 0 ]
then
onoff=10
fi

if [ $onoff = 10 ]
then
echo "PC ON"
else
echo "PC OFF"
halt -p
fi

で、出来るのですがDOSのバッチファイルの場合
PING 192.168.0.2 の戻り値ってどう取得すればいいのでしょうか?

255 :名無し~3.EXE:2006/10/14(土) 14:34:14 ID:QB654mo8
if /?

256 :名無し~3.EXE:2006/10/14(土) 14:55:44 ID:pw30TYg5
PING 192.168.0.2
IF ERRORLEVEL 1 ECHO つながってませんよ。
IF ERRORLEVEL 0 ECHO つながってますね。


2行目と3行目を入れ替えてはいけない点に注意。

257 :251:2006/10/14(土) 17:32:10 ID:T/OFuaaU
>251-252

ありがとうございました。うまくいきました。

258 :名無し~3.EXE:2006/10/14(土) 21:31:15 ID:y7UvFN4Z
>>256
PING 192.168.1.7
IF ERRORLEVEL 1 SET DT=10
IF ERRORLEVEL 0 SET DT=0

PING 192.168.1.5
IF ERRORLEVEL 1 SET DT=10
IF ERRORLEVEL 0 SET DT=0

PING 192.168.1.6
IF ERRORLEVEL 1 SET DT=10
IF ERRORLEVEL 0 SET DT=0

IF DT=10 THEN notepad.exe
ELSE
cmd.exe

みたいにやってみてるんですが
うまくいきません。

259 :256:2006/10/14(土) 22:07:32 ID:pw30TYg5
>258
最後の3行はIF文の書き方がマズい。俺なら以下のようにする。
(Win95/98/Meの場合はCMD.EXEの代わりにCOMMAND.COM)

IF "%DT%"=="10" NOTEPAD.EXE
IF NOT "%DT%"=="10" CMD.EXE /C コマンドライン

260 :256:2006/10/14(土) 22:09:24 ID:pw30TYg5
ごめん。訂正。

IF "%DT%"=="10" NOTEPAD.EXE
IF "%DT%"=="0" CMD.EXE /C コマンドライン

261 :256:2006/10/14(土) 22:16:05 ID:pw30TYg5
NOTEPAD.EXEが終了するまでバッチファイルを終わらせたくない場合は、さらに以下のようにする。

IF "%DT%"=="10" START /W NOTEPAD.EXE
IF "%DT%"=="0" CMD.EXE /C コマンドライン

262 :名無し~3.EXE:2006/10/14(土) 23:11:28 ID:y7UvFN4Z
>>261
PING 192.168.1.7
IF ERRORLEVEL 1 SET DT=10
IF ERRORLEVEL 0 SET DT=0

PING 192.168.1.5
IF ERRORLEVEL 1 SET DT=10
IF ERRORLEVEL 0 SET DT=0

PING 192.168.1.6
IF ERRORLEVEL 1 SET DT=10
IF ERRORLEVEL 0 SET DT=0

IF "%DT%"=="10" START /W NOTEPAD.EXE
IF "%DT%"=="0" CMD.EXE /C コマンドライン

ですが、すべてのPINGが通らない状態
(つまりクライアントがすべて終了している状態)でも
IF "%DT%"=="0" CMD.EXE /C コマンドライン
のほうが動いてしまいます。

263 :名無し~3.EXE:2006/10/14(土) 23:41:47 ID:xvO2JB2X
>>259
> (Win95/98/Meの場合はCMD.EXEの代わりにCOMMAND.COM)
%COMSPEC% /C

264 :名無し~3.EXE:2006/10/14(土) 23:47:10 ID:rbbe3sPd
runasコマンドで
ノートパッドを別ユーザーとして起動したいのですが
下記のようにするとユーザ(hogehoge)のパスワードが求められます。
runas /user:hogehoge notepad

引数か何かでパスワードは指定できないのでしょうか?

265 :256:2006/10/15(日) 00:14:00 ID:bYSqBt4L
>>263
そういや環境変数COMSPECの事をすっかり忘れてた。フォローthanks.

>>262
SET DT=0
PING 192.168.1.7 >NUL
IF ERRORLEVEL 1 SET DT=10
PING 192.168.1.5 >NUL
IF ERRORLEVEL 1 SET DT=10
IF "%DT%"=="10" START /W NOTEPAD.EXE
IF "%DT%"=="0" %COMSPEC% /C コマンドライン

または

PING 192.168.1.7 >NUL
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 SET DT=10
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 SET DT=0
IF "%DT%"=="10" START /W NOTEPAD.EXE
IF "%DT%"=="0" %COMSPEC% /C コマンドライン
PING 192.168.1.5 >NUL
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 SET DT=10
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 SET DT=0
IF "%DT%"=="10" START /W NOTEPAD.EXE
IF "%DT%"=="0" %COMSPEC% /C コマンドライン

これでどうかな?一応、両方とも試してみてよ。

266 :名無し~3.EXE:2006/10/15(日) 00:58:26 ID:Blrgi1Gy
>>265
たびたびありがとうございます

両方実行してみましたが
CMD(コンソール?)が開きますが
たとえば
SET DT=0
PING 192.168.1.7 >NUL
IF ERRORLEVEL 1 SET DT=10
PING 192.168.1.5 >NUL
IF ERRORLEVEL 1 SET DT=10
IF "%DT%"=="10" START /W NOTEPAD.EXE
IF "%DT%"=="0" %COMSPEC% /C コマンドライン
の方だと

C:\>SET DT=0

C:\>PING 192.168.1.7 1>NUL

C:\>IF ERRORLEVEL 1 SET DT=10

C:\>PING 192.168.1.5 1>NUL

この後CMDが消えるという結果です。


267 :名無し~3.EXE:2006/10/15(日) 01:04:07 ID:piuQ32q3
まず、OSは何かを明らかにすべきじゃない?
win9xの場合は不明。(各コマンドの結果は殆どERRORLEVELに反映されないので)
win2000の場合、pingでエラーの場合、ERRORLEVEL=1となるが
相手が居ない場合(Request timed out)はERRORLEVEL=0となる。

で、win2000の場合
--------------------------
@echo off
set dt=0
ping PC1 | find "100%% loss"
if errorlevel 1 (set dt=10&goto :alived)

ping PC2 | find "100%% loss"
if errorlevel 1 (set dt=10&goto alived)

if %dt%==0 echo ****すべてのマシンが応答しませんでした***

:alived
--------------------------
ping -n 1 PC1の方が結果は早いが、完全には応答しない場合も考えられるので
4回試行して全部Request timed out(100% loss)を捉まえるものとしている。

268 :名無し~3.EXE:2006/10/15(日) 01:07:05 ID:Blrgi1Gy
266の続き

PING 192.168.1.7 >NUL
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 SET DT=10
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 SET DT=0
IF "%DT%"=="10" START /W NOTEPAD.EXE
IF "%DT%"=="0" %COMSPEC% /C コマンドライン
PING 192.168.1.5 >NUL
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 SET DT=10
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 SET DT=0
IF "%DT%"=="10" START /W NOTEPAD.EXE
IF "%DT%"=="0" %COMSPEC% /C コマンドライン
の結果は

C:\>PING 192.168.1.7 1>NUL

C:\>IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 SET DT=10

C:\>IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 SET DT=0

C:\>IF "10 " == "10" START /W NOTEPAD.EXE

C:\>IF "10 " == "0" C:\WINDOWS\system32\cmd.exe /C shutdown -s

C:\>PING 192.168.1.5 1>NUL

この後CMDが消えるという結果です。

よろしくお願いします。


269 :名無し~3.EXE:2006/10/15(日) 01:09:11 ID:Blrgi1Gy
>>267
そうですね、うっかりしていました。
すべてWindows2000Proです。

270 :名無し~3.EXE:2006/10/15(日) 01:25:58 ID:Blrgi1Gy
>>267
win2000の場合
--------------------------
@echo off
set dt=0
ping PC1 | find "100%% loss"
if errorlevel 1 (set dt=10&goto :alived)

ping PC2 | find "100%% loss"
if errorlevel 1 (set dt=10&goto :alived)

if %dt%==0 echo ****すべてのマシンが応答しませんでした***

:alived

で実行できました!
255,256,259-261,263,265,267
ありがとうございました!



271 :256:2006/10/15(日) 02:08:15 ID:bYSqBt4L
なるほどなぁ・・・俺は自宅でWinXP、職場でWin2000とWinNT4.0を使ってるが、
"Request timed out"の場合は3つともERRORLEVEL=1と思い込んでたよ。
それと今まで肝心な>>254の目的をすっかり失念していた。
なんだか色々混同して勘違いしてたよ。かえって混乱させちまったようで、ごめんな。

272 :名無し~3.EXE:2006/10/15(日) 03:23:27 ID:piuQ32q3
>>270
pingで端末名指定ミスしたら、常にalivedになっちゃうのでチェックした方が良いかも。
あとサーバーなら接続端末の状態や数をチェックするコマンドがあったんじゃない?

273 :名無し~3.EXE:2006/10/15(日) 17:49:13 ID:Blrgi1Gy
>>271
いいえ、そんな
いろいろ勉強になりました。
ありがとうございました。
>>272
御助言いただきありがとうございました。


274 :名無し~3.EXE:2006/10/17(火) 02:10:26 ID:N9oYajNV
質問です。
ショートカット(.lnk)を作るコマンドはありますか?

275 :名無し~3.EXE:2006/10/17(火) 02:31:34 ID:lckIqFv9
>>274
cscript.exe

276 :名無し~3.EXE:2006/10/17(火) 13:24:27 ID:z7Jjl5bf
ショートカットの作成コマンドは、8文字のソース パス フォルダ名を切り捨てます。
http://support.microsoft.com/default.aspx?scid=kb;ja;263324
ショートカットの作成の 使用Windows Script Host にパラメータでの方法
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B242297

クイック起動トレイにショートカットを追加する方法はありますか
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/sept05/hey0901.mspx
既存ショートカットのアイコンを変更する方法はありますか
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/aug05/hey0812.mspx
マイ ネットワークにショートカットを作成する方法はありますか
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/may05/hey0509.mspx
[スタート] メニュー内にフォルダを作成する方法はありますか
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/mar05/hey0302.mspx
デスクトップ ショートカットのリンク先を変更する方法はありますか
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/feb05/hey0209.mspx
[マイ コンピュータ] アイコンのキャプションを変更する方法はありますか
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/jan05/hey0119.mspx
特定のショートカットに対応している実行可能ファイルを調べるにはどうすればよいでしょうか
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/dec04/hey1208.mspx
スクリプトを使用して [スタート] メニューに特定のファイルを常に表示することはできますか
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/nov04/hey1111.mspx


・リソースキットの中のshortcut.exe
・mkshc_at ショートカット作成 (コマンド実行専用) http://www.tsubak.com/tools/mkshc_at.html

277 :名無し~3.EXE:2006/10/17(火) 19:30:39 ID:io+8bl7Q
>>199
亀レスですまんが,ありがとう
同じようなことしようと思って苦労してた

278 :名無し~3.EXE:2006/10/17(火) 21:46:20 ID:N9oYajNV
>>275,276
サンクス

279 :名無し~3.EXE:2006/10/17(火) 23:11:12 ID:kpUzoa/s
>>245
XP Proなら
c:\windows\system32\openfiles.exe
なければ、oh.exeやhandle.exeを入手。

280 :名無し~3.EXE:2006/10/17(火) 23:13:00 ID:kpUzoa/s
>>264
runas.vbsの世界へ。

281 :名無し~3.EXE:2006/10/18(水) 02:04:31 ID:u9ZZOnu7
>>227
zip.vbsの世界へ?

282 :名無し~3.EXE:2006/10/18(水) 13:33:17 ID:lsVuuXuV
特定のEXEファイルに複数のファイルを一つずつ投げたいんですがどう書けばいいですか?
ループとかそのあたりを使えばいいのは大体わかるのですが…

283 :名無し~3.EXE:2006/10/18(水) 13:39:52 ID:V8rOGUBu
>>282
>>4

284 :名無し~3.EXE:2006/10/18(水) 13:46:05 ID:8HDygbIE
投げるっていうのは、DDEのこと?SendMessageみたいなもの?それともその他?
exeをパラメタを変えて何度も起動するだけでいいなら>>283

285 :名無し~3.EXE:2006/10/19(木) 11:18:07 ID:xPYMe9IZ
素のWindowsだけで指定ファイルのパス名をコピーすることって出来ますか?
別にコマンドライン使わなくてもいいんですが。

286 :名無し~3.EXE:2006/10/19(木) 11:53:25 ID:FKzXfjJ7
>>285
出来るよ。WSHを使うのが定番。
普通に引数でパスを取って、IEの機能を使ってクリップボードに格納する。
腐るほどサンプルが転がってるから、あとは自分で拾ってこい。

287 :名無し~3.EXE:2006/10/19(木) 13:43:58 ID:xPYMe9IZ
んーと、それは素じゃない。どんなファイルもつくらずに、
Windows標準のみのファイルやアプリで実現できませんか?

288 :名無し~3.EXE:2006/10/19(木) 14:00:38 ID:5JEXY7pR
>>287
WSHは大概Winなら入ってると思うがWinの何を使ってるの

289 :名無し~3.EXE:2006/10/19(木) 14:02:32 ID:W81ZluKJ
ファイルを作らないなら、
「ファイル名を指定して実行」にファイルをドロップして、そこからコピー。
コマンドプロンプトにドロップしても出来るけど。

ファイルを作るなら、
START IExplore.exe about:
というバッチファイルか、
フルパス\IExplore.exe about:
というショートカットを作って、ファイルをドロップして、そこからコピー。


290 :名無し~3.EXE:2006/10/19(木) 14:03:38 ID:FKzXfjJ7
>>287
出来るよ。
コマンドプロンプト開いて対象ファイルを窓にD&Dすると、パスが表示されるので
それを範囲選択してコピー。
先に言っておくが、面倒だとか言うなよ。自分でわざわざ面倒になるような条件出してるんだから。

因みに、「素のWindows」と言った場合は、一般的に外部ソフトを入れない事を差し
ファイルを一切作らないことは差さないので覚えておくように。

>>288
.vbs、.js、.wsfなどのファイルを作成するのが嫌なんだと思われ。どうしてなのかは知らないが。

291 :名無し~3.EXE:2006/10/19(木) 14:10:21 ID:W81ZluKJ
>>282
FORのほかに、
リソースキットのforfiles.exe

SFUのfind.exe
も。

292 :名無し~3.EXE:2006/10/19(木) 14:49:09 ID:xPYMe9IZ
例えば、フォルダ右クリックにプロンプトを開くっていうのは、
レジストリをいじるだけで可能で
こういう感じで機能を実現できればなって思ったんですが、
簡単にやろうとすると難しいみたいですね。

293 :名無し~3.EXE:2006/10/19(木) 17:07:36 ID:W81ZluKJ
>ttp://pc8.2ch.net/test/read.cgi/tech/1148485555/41
>41 :デフォルトの名無しさん :2006/09/26(火) 21:00:10
> 実行中にcmdの窓を最小化させる方法はないですか?

Set Word=CreateObject("Word.Application")
Name=WScript.Arguments.Item(0)
If Word.Tasks.Exists(Name) Then
Set Task=Word.Tasks.Item(Name)
Task.WindowState=2
End If
Word.Quit
If IsEmpty(Task) Then WScript.Echo Name&"is not found !"
というVBSファイルを作って、
TITLE hogehoge
hoge.VBS hogehoge


294 :名無し~3.EXE:2006/10/19(木) 17:17:06 ID:W81ZluKJ
コンソールログをうまく取る方法はないもんでしょうか。
DOSのconcopy.com
unixのscript
みたいな。

cmd.exe 2>&1 | tee.exe file
は入力が取れない。

more | cmd.exe 2>&1 | tee.exe file
も、もうひとつ。


295 :名無し~3.EXE:2006/10/19(木) 21:15:58 ID:ls1OF9sj
懐かしのシラネーヨ.batだな。
^Cとか^Zとかに対応できないのが玉に瑕

296 :名無し~3.EXE:2006/10/19(木) 21:44:25 ID:W81ZluKJ
>>100 亀れす。
こういうのは、SFUなどのfind.exeが得意なのでは。
find.exe folderB -t -comp folderA -rm
とかで。


297 :net time:2006/10/19(木) 22:08:33 ID:DylRciLf
コマンドに"net time"時刻同期のコマンドがあるのですが、1度コマンドを実行すると10秒ほど経たないと次の"net time"コマンドが飛ばないようなのですが、すぐに2回目のコマンドを飛ばすことはできないのでしょうか?
ご教授願います。

298 :296:2006/10/19(木) 22:21:02 ID:W81ZluKJ
済みません。
本家のfindでサポートしてないシンタクスでした。
便利だったんですけど。。。

299 :名無し~3.EXE:2006/10/19(木) 23:52:52 ID:Fqa1lY+E
あえて言おう、>>297
マルチするなと。

300 :名無し~3.EXE:2006/10/20(金) 19:37:49 ID:xavmQ34J
>>292
んーと、それは素じゃない。どんなファイルもいじらずに、
Windows標準のみのレジストリやアプリで
フォルダ右クリックにプロンプトを開くっていうのは、
実現できませんか?
レジストリもいじらないで
機能を実現できればなって思ったんですが、
簡単にやろうとすると難しいみたいですね。

なんていう考え方もありますわな。


301 :名無し~3.EXE:2006/10/20(金) 20:45:27 ID:ZW0sFp6N
>>300
矛盾しすぎだな…簡単に〜というのも曖昧な表現過ぎて…やっぱいいや

302 :名無し~3.EXE:2006/10/20(金) 21:19:23 ID:l1bcIv1g
ちなみにVistaの少なくともRC1ではShift+右クリックでコマンドプロンプトを開く
メニューが表示されてたけど最近のビルドだとなくなってるような。

303 :名無し~3.EXE:2006/10/20(金) 21:20:40 ID:l1bcIv1g
>>301
もともとのコメントが矛盾してるのを逆説的に示してるだけでしょ

304 :名無し~3.EXE:2006/10/20(金) 21:26:22 ID:ZW0sFp6N
>>303
うんそうだね…で?

305 :名無し~3.EXE:2006/10/20(金) 21:46:17 ID:3EPLvaDr
>>304
無理な注文言うなってことだろ?
そんなことも分からんの?

306 :名無し~3.EXE:2006/10/20(金) 21:53:38 ID:3EPLvaDr
正確には、無理な注文にマジレスするだけ無駄、ってことか。

307 :名無し~3.EXE:2006/10/20(金) 22:06:40 ID:ZW0sFp6N
>>305
だからそれがどうかしたの?

308 :名無し~3.EXE:2006/10/20(金) 22:40:38 ID:3EPLvaDr
まさに、バカにマジレスするのは疲れる...ってのが分かったよ。

309 :名無し~3.EXE:2006/10/20(金) 22:42:43 ID:3EPLvaDr
>>300
「マジレスするトンマ野朗」に俺もなってしまった。

310 :300:2006/10/20(金) 22:55:44 ID:xavmQ34J
コメントを差し控えさせて頂きます。(常套句)

311 :名無し~3.EXE:2006/10/20(金) 23:36:55 ID:xavmQ34J
素のWindowsが好きなのは、人それぞれの勝手ですが、
それならそれで、素のWindowsに入ってるヘルプでも見て、
その範囲で使ってればよいものを、
素のWindowsにない情報をネットに求めれば、
得られる回答が素のウィンドウでないのは当たり前だろ。
という寓話です。


312 :名無し~3.EXE:2006/10/21(土) 00:29:09 ID:mfwax+i1
ID:ZW0sFp6Nよ
トンチンカンなこと言ったのを指摘されて恥ずかしかったからといって、そうどくれるなよ、な。

313 :名無し~3.EXE:2006/10/21(土) 14:02:44 ID:XLNlcWtB
技術的な話をしてもよろしかったでしょうか?

禍転じて福となす?怪我の功名?なんだかよく分りませんが、
VBScriptやJScriptの敷居がそんなに高い?のなら、
それに、このスレッドはコマンドラインのスレッドだし、
このスレッドらしい?VBScriptやJScriptを使わない方法はないものか?
と考えてみました。

素のWindows 2003 Serverには、CLIP.EXEが入っています。
Windows XPなどは、残念ながら、有償のリソースキットを入れるしかなさそうです。

バッチファイルで、やる方法。
Clipboard as Name.CMD
@ECHO %* | CLIP.EXE

レジストリとダミーファイルで、やる方法。
Clipboard as Name.NameOnClipboard
拡張子.NameOnClipboardに関連付け
open動詞にCMD.EXE /C,ECHO %* | CLIP.EXE
WSHのドロップハンドラを指定。

ファイルを作ったりするので、>>285さんの要件には合いませんが、
一般の、ファイルを作ってもいいから、なんとかしたい、というニーズには、
合うと思います。

そう謂えば、Power ToysのSend to Clipboard as Nameも
ダミーファイルClipboard as Name.NameOnClipboardを作ってましたね。
Command Prompt from Hereと違って、レジストリだけじゃ無理みたいです。


314 :名無し~3.EXE:2006/10/21(土) 14:14:54 ID:XLNlcWtB
コマンドプロンプトでFOR /F "delims=にタブを入れたいが、
タブが補完キーに解釈されて、入力できない場合は、一時的に、補完を無効にすればよい。
cmd /f:off
FOR /F "delims=タブ
exit


315 :名無し~3.EXE:2006/10/22(日) 22:21:07 ID:EOcMerY5
clip.exe発見!
ftp://ftp.microsoft.com/Services/TechNet/samples/ps/win98/reskit/file/
ここには、choice.exe,sleep.exe,forfiles.exeなどもあります。
98なので、tail.exeはないけど。。。

316 :名無し~3.EXE:2006/10/22(日) 23:28:41 ID:wssoUMQ0
ageで失礼します。

http://pc8.2ch.net/test/read.cgi/tech/1148485555/l50#tag49
上記スレの>>45にて質問したのですが、こちらで聞いたほうがよいということで
こちらに来ました。

質問内容は、FOR /F 〜にて、DELIMSにTABを指定する際に、
見た目のスペースを別の文字に置き換えられるかどうか?なのですが
できないというレスを頂き、またエディタであれば対応可能ということを伺いました。
エディタにて対応するとはどういうことなのでしょうか?
ご教示下さい。

317 :名無し~3.EXE:2006/10/22(日) 23:47:18 ID:4DzWCkQx
コマンドプロンプトで解釈される文字列上で、Tabを別文字で指定するこは無理だと思う。
そういう意味合いの質問だよね?
単にTabの部分を別文字に置換するのならテキストエディタとかで置換してやればいいけど。
一旦環境変数にTabを代入してそれを使うことなら可能かもしれない。(試してないけど)

set tab=
for /f "delims=%tab%" %%I
又は
for /f "delims=!tab!" %%I (遅延環境変数を使わないとダメな場合も結構あるかも)

318 :316:2006/10/23(月) 00:00:57 ID:wssoUMQ0
>>317さん
なるほど。。
環境変数でTabをセットしてあげれば確かに別文字にできますね。
まだ試してないですけど。

それで試してみます。ありがとうございました。

319 :名無し~3.EXE:2006/10/23(月) 04:56:36 ID:9teFeWA2
質問よろしいでしょうか。
例えばEドライブの直下にwavというフォルダがあり、その中にartist1、artist2、…、artistn(nは任意の数)というフォルダ群があり、
それぞれのフォルダの中にalbum1、album2、…、albumn(nは任意の数)というフォルダ群があり、それらのフォルダの中にそれぞれtrack1.wav、track2.wav、…、trackn.wav(nは任意の数)というファイル群があったとします。
これらのwavファイル全てをlameにかけてエンコードし、そのファイルをEドライブ直下のmp3というフォルダの中にwavフォルダと同じフォルダ構造で出力したいんです。
(例:E:\wav\artist1\album1\track1.wavはE:\mp3\artist1\album1\track1.mp3として出力したい)
これをいちいち

LAME "E:\wav\artist1\album1\track1.wav" "E:\mp3\artist1\album1\track1.mp3"
cls
LAME "E:\wav\artist1\album1\track2.wav" "E:\mp3\artist1\album1\track2.mp3"
………(中略)………
LAME "E:\wav\artistn\albumn\trackn-1.wav" "E:\mp3\artistn\albumn\trackn-1.mp3"
cls
LAME "E:\wav\artistn\albumn\trackn.wav" "E:\mp3\artistn\albumn\trackn.mp3"
cls
exit

とやっていたのでは記述量が膨大で大変です。
for文などを使って上手くループ処理に出来ないですかね?
お力を貸してください、お願いします。

320 :名無し~3.EXE:2006/10/23(月) 05:24:04 ID:CBFP8CuU
> for文などを使って上手くループ処理に出来ないですかね?
出来ますよ。

321 :名無し~3.EXE:2006/10/23(月) 05:27:18 ID:9teFeWA2
>>320
本当ですか!具体的にはどのようにすればよいのでしょうか。

322 :名無し~3.EXE:2006/10/23(月) 13:48:20 ID:ES8SWZkF
>>316
>FOR /F 〜にて、DELIMSにTABを指定する際に、
>見た目のスペースを別の文字に置き換えることって可能でしょうか?
>例えば "DELIMS=[TAB]" を "DELIMS=\t" のようにするなど。

テレパスではないので、質問に素直に答えると、

SET hoge=FOR /F "DELIMS=[TAB]" 〜
SET %hoge:[TAB]=\t%
ECHO %hoge%

もし、これが求めているものと異なる場合は、質問を変えたほうがよいと思う。


323 :名無し~3.EXE:2006/10/25(水) 09:14:51 ID:fdOJ++H8
ファイル名に時間を含めるために
set DATESTR1=%time:~0,2%%time:~3,2%
みたいな感じで時間を取得してそれをリネームに使ってるんですが、
これだと10〜24時までしかうまく動きません。
0〜9時台だと取得がずれてしまってリネームに失敗するんですが、何かうまい方法あるでしょうか?

324 :名無し~3.EXE:2006/10/25(水) 09:45:07 ID:cRvYPHXE
>323
バッチファイル内では以下のように記述すると良い。
(WindowsNT/2000/XPにて可。恐らくWindowsServer2003やWindowsVistaでもOKだと思うが未確認)

FOR /F "eol=; tokens=1,2 delims=: " %%i IN ('TIME/T') DO @SET TIMESTR=%%i%%j
FOR /F "eol=; tokens=1,2,3 delims=/ " %%i IN ('DATE/T') DO @SET DATESTR=%%i%%j%%k

325 :名無し~3.EXE:2006/10/25(水) 14:28:43 ID:fdOJ++H8
>>324
XPで無事できました!
ありがとうございます

このスレで出る質問は大抵for文で解決してますけど、ほんと何でもできるんですね……

326 :名無し~3.EXE:2006/10/25(水) 15:24:03 ID:pmLqT4o8
FOR /F "delims=" %%0 IN ('MORE') DO (
ECHO %%0
ECHO %%0>&2
)
でtee.cmdが出来るかも、と思ったら、
FOR /F IN ('コマンド')は出力を一旦どこかに溜め込んでるみたいですね。残念。


327 :名無し~3.EXE:2006/10/25(水) 15:34:03 ID:pmLqT4o8
FOR /F %%0 IN ("〜")
で、トークンの数を調べようと思ったら、どうすりゃいいでしょう?
不定個数のトークンの処理ってむずかしいような。
"tokens=1*"で1個ずつ取り出して残りを再帰呼び出しするのでしょうか。


328 :名無し~3.EXE:2006/10/25(水) 23:58:09 ID:eEi2UFaY
for /? を見る限りでは、eolを活用すりゃ良い気がする。
区切り文字が複数ある場合、更に一ひねり必要だけど。

329 :名無し~3.EXE:2006/10/26(木) 16:36:30 ID:/s+J/qsz
FOR /Fのeol=はline separatorでなく、start of commentなのよ


330 :名無し~3.EXE:2006/10/26(木) 19:41:42 ID:/s+J/qsz
%%*とかshiftforとかあれば楽かも。

331 :名無し~3.EXE:2006/10/26(木) 22:02:21 ID:SVXaZk3q
ちょっと話脱線するけど、慣れちゃって疑問感じないけど冷静に考えると、
アルファベット順に自動で変数割り当てるって、やっぱ変な仕様だよなぁ。

そのせいで↓みたいな変な制約もあるわけだし。

>  %i は for 文で明示的に宣言され、%j と %k は tokens= オプションで暗黙的に
>  宣言されています。tokens= 行を使って 26 個までのトークンを指定できますが、
>  文字 'z' または 'Z' よりも高い変数を宣言することはできません。FOR 変数名は
>  単一の文字で、大文字と小文字を区別し、グローバルなものであり、一度にアクティ
>  ブにできるのは合計 52 個までです。

332 :名無し~3.EXE:2006/10/26(木) 22:03:37 ID:SVXaZk3q
と文句いいつつ試してみたらちゃんと動いたのでちょっと嬉しかった。

C:\>type hoge.txt
001,002,003,004,005,006,007,008,009,010,011,012,013,014,015,016,017,018,019,020,
021,022,023,024,025,026,027,028,029,030,031,032,033,034,035,036,037,038,039,040,
041,042,043,044,045,046,047,048,049,050,051,052,053,054,055,056,057,058,059,060,
061,062,063,064,065,066,067,068,069,070,071,072,073,074,075,076,077,078,079,080,
081,082,083,084,085,086,087,088,089,090,091,092,093,094,095,096,097,098,099,100

C:\>for /f "tokens=1-25* delims=," %a in (hoge.txt) do for /f "tokens=1-25* deli
ms=," %A in ('echo %z') do echo %Z

C:\>for /F "tokens=1-25* delims=," %A in ('echo 026,027,028,029,030,031,032,033,
034,035,036,037,038,039,040,041,042,043,044,045,046,047,048,049,050,051,052,053,
054,055,056,057,058,059,060,061,062,063,064,065,066,067,068,069,070,071,072,073,
074,075,076,077,078,079,080,081,082,083,084,085,086,087,088,089,090,091,092,093,
094,095,096,097,098,099,100') do echo %Z

C:\>echo 051,052,053,054,055,056,057,058,059,060,061,062,063,064,065,066,067,068
,069,070,071,072,073,074,075,076,077,078,079,080,081,082,083,084,085,086,087,088
,089,090,091,092,093,094,095,096,097,098,099,100
051,052,053,054,055,056,057,058,059,060,061,062,063,064,065,066,067,068,069,070,
071,072,073,074,075,076,077,078,079,080,081,082,083,084,085,086,087,088,089,090,
091,092,093,094,095,096,097,098,099,100

C:\>

333 :327:2006/10/26(木) 22:32:23 ID:/s+J/qsz
>>331
なので、私は数字の0,1,2,...を使うことを勝手に推奨しています。


334 :名無し~3.EXE:2006/10/27(金) 00:00:52 ID:/s+J/qsz
%0から始めると1-31 %Oまで使えます。途中%:とかも。


335 :名無し~3.EXE:2006/10/27(金) 00:19:27 ID:zn7U0YhT
試してみたら「%31」だと「%3」と「1」になっちゃうんだけど、どうやるの?

336 :名無し~3.EXE:2006/10/27(金) 00:49:10 ID:J3SJtBgW
call でサブルーチン呼んでshiftすりゃいいべ

337 :名無し~3.EXE:2006/10/27(金) 12:06:07 ID:zfuA9cK1
>>335
tokens=1-31*で%0から%Oまで。


338 :名無し~3.EXE:2006/10/27(金) 12:53:57 ID:zfuA9cK1
32番目以降のトークンは取れない仕様みたいです。

set n=0
:loop
set /a n=n+1
set x=0
for /f "delims=, tokens=%n%" %%1 in (hoge.txt) do (
echo %%1
set x=1
)
if %x%==1 goto loop
echo %n%


339 :名無し~3.EXE:2006/10/27(金) 13:10:02 ID:zfuA9cK1
不定個数のトークンを処理する方法

type hoge.txt>line.txt
set n=0
:loop
set /a n=n+1
set x=0
for /f "delims=, tokens=1*" %%1 in (line.txt) do (
echo;%%1
echo;%%2>line.txt
set x=1
)
if %x%==1 goto loop
echo %n%


340 :名無し~3.EXE:2006/10/30(月) 15:23:22 ID:oK1Aiu/J
>>336
callは、delims=空白タブ=;,の扱いになるので、delims=,などのときに使えない。


341 :名無し~3.EXE:2006/10/30(月) 19:14:57 ID:oK1Aiu/J
XPでは.exeのショートカットにドロップしても引数が消えませんが、
.vbsのショートカットでは消えます。
ところが、lnkfileのドロップハンドラをwshのものに変えると、
.vbsのショートカットでも消えなくなります。
なので、2000や98などでも、lnkfileのドロップハンドラをwshのものに変えると、
ショートカットにドロップしても引数が消えなくなるかも知れません。


342 :名無し~3.EXE:2006/10/31(火) 00:18:03 ID:gQgyQPtQ
タブ文字の入力方法

for /f "delims=" %0 in ('type con') do set tab=%0
(タブ)(改行)
^Z

echo a%tab%b


343 :名無し~3.EXE:2006/11/02(木) 17:49:18 ID:sjRZNhMU
test

344 :名無し~3.EXE:2006/11/02(木) 18:12:49 ID:YlCRHYMe
whoami

345 :名無し~3.EXE:2006/11/02(木) 18:47:47 ID:J4pr3aX8
サーバー:192.168.0.254
クライアント1:192.168.0.2
クライアント2:192.168.0.3
というアドレスのPCがあるとき
クライアントがどれか1台でも起動していれば = 何もしない
すべてのクライアントがシャットダウンしたら = サーバーもシャットダウンする
ということでこちらで以下のやり方を教えていただきました。

@echo off
set dt=0
ping 192.168.0.2 | find "100%% loss"
if errorlevel 1 (set dt=10&goto :alived)

ping 192.168.0.3 | find "100%% loss"
if errorlevel 1 (set dt=10&goto :alived)

if %dt%==0 C:\backup.bat

:alived

これを、どれか1台でもpingに反応していれば
繰り返すにはどう書けばいいのでしょうか?
ご指導よろしくお願いします。




346 :名無し~3.EXE:2006/11/02(木) 19:06:22 ID:n1Q/MJZA
goto使っててどうして分からないのか不思議だ?
もっとも手直しが少ない方法は、
:alivedラベルを@echo offとset dt=0の間に移動する。
っていうか環境変数dtは要るのか?
無駄に設定してるだけに見える。

347 :名無し~3.EXE:2006/11/03(金) 15:17:50 ID:DnIKy2oO
そうでもないか。

348 :名無し~3.EXE:2006/11/03(金) 21:40:54 ID:gJdLXMtF
環境変数dtに関するset命令とif命令は俺も全て不要だと思う。

349 :名無し~3.EXE:2006/11/04(土) 12:31:17 ID:Rj1Lj+SZ
困ったことが起きました
諸先輩方のお知恵をお貸しください

Windowsの復元操作をしてフォダ名が書き換えられてしまったのです
WEBページをローカル環境に保存して見ていたものが
すべて「フォルダ名→フォルダ名(2)」の形になりました
http://kasamatu.o0o0.jp/pochi/src/hajime4938.jpg.html
pass:2ch
フォルダ名(2)を取得してフォルダ名に変更する(もどす)スクリプトをお願いします
1)OSはWindowsXPHESP2
2)復元したあと復元ポイントを放棄したので「再復元」「復元の取り消し」は出来ない
3)書き換えられたフォルダはすべて「フォルダ名→フォルダ名(2)」最後に(2)がついた形、(2)はすべて半角
4)WEB保存用フォルダは一つだけ。階層がたくさんあって全部で数百以上あるので
手作業は困難
5)どシロートなのでコマンドプロンプトの知識は無い
作ってもらったのを使うことは出来る程度のレベル

よろしくお願いします<(_ _)>

350 :名無し~3.EXE:2006/11/04(土) 13:04:24 ID:Rj1Lj+SZ
書き忘れましたが「ファイル名」はそのままです
フォルダ名だけです<(_ _)>

351 :名無し~3.EXE:2006/11/04(土) 13:07:27 ID:3leZuA7v
>>349
@echo off
setlocal enableextensions enabledelayedexpansion
for /r %1 %%i in (.) do (
cd /d %%i
for /f "usebackq delims=" %%j in (`dir /ad /b *^(2^)`) do (
set fn=%%j
ren !fn! !fn:~0,-3!
)
)

REM --- ここまで

↑をメモ帳にコピペして「hoge.cmd」と名前を付けて
WEB保存用フォルダの一番上の階層に保存した後
エクスプローラから「hoge.cmd」をダブルクリック。


352 :名無し~3.EXE:2006/11/04(土) 13:54:38 ID:4Dsu/0i6
別に何も作らなくてもFlexibleRenamerとかのリネームツールで
フォルダのみを対象に「(2)」→「」の置換をすれば良いだけだけどね。
正規表現すら必要ないし、サブフォルダ内も全て一発でリネームできる。

353 :名無し~3.EXE:2006/11/04(土) 14:15:59 ID:Rj1Lj+SZ
>>351-352
ありがとうございます
やってみたら「みつかりません」が多数出るのでどうなったかと思いましたが
実際に見たら書き換えられていたようです感謝<(_ _)>

354 :名無し~3.EXE:2006/11/04(土) 23:02:49 ID:USOpz/32
以下ようなバッチファイルを作成したいのです。

1.インターネットエクスプローラーを開く。
この時にホームページをhttp://www.yahoo.co.jp/
に設定しておいたとすると、このページが立ち上がったところで、
「ENTERキー」を叩くとhttp://search.yahoo.co.jp/
に辿り着きます。

今回は、この「ENTERキー」を叩く、部分をファイルに入れてしまって、
バッチファイルを開くだけで、http://search.yahoo.co.jp/
に辿り着くものを作成したいのですが、ホームページは
http://www.yahoo.co.jp/のままで変えないとすると、
どのように書いたらよろしいでしょうか?


@echo off

"C:\Program Files\Internet Explorer\IEXPLORE.EXE"

このあとにはなんと付け加えたらよいのでしょうか?
よろしくお願い致します。

355 :名無し~3.EXE:2006/11/04(土) 23:20:00 ID:8yxluHxk
バッチファイルでは無理

356 :名無し~3.EXE:2006/11/04(土) 23:21:46 ID:ZY+1jLO8
通常使用するブラウザがIEなら

start http://search.yahoo.co.jp/

でいいのではないでしょうか。

357 :名無し~3.EXE:2006/11/04(土) 23:33:07 ID:3R+cY6NI
IEが通常使用するブラウザで無かったら、
"C:\Program Files\Internet Explorer\IEXPLORE.EXE" "http://search.yahoo.co.jp/"

358 :354:2006/11/04(土) 23:41:33 ID:USOpz/32
皆様、ありがとうございます。
『「ENTERキー」を叩く』という動作自体をbatファイルの中に書き込む
ことは不可能でしょうか?
もしこれが不可能だとすると、他にどんな方法が考えられますか?
お願いします。

359 :名無し~3.EXE:2006/11/04(土) 23:42:49 ID:NCf7BNdE
まぁ、中を取って、
start IEXPLORE.EXE "http://search.yahoo.co.jp/"
がよいかと。。。

360 :名無し~3.EXE:2006/11/04(土) 23:44:14 ID:h4oF94Gt
>>358
JavaScript/Bookmarklet

361 :名無し~3.EXE:2006/11/04(土) 23:45:03 ID:h4oF94Gt
URLに " " は要らんよ

362 :名無し~3.EXE:2006/11/04(土) 23:51:08 ID:NCf7BNdE
試してないけど、こんなのでどう?
MSHTA.EXE vbscript:Execute("CreateObject(""WScript.Shell"").SendKeys ""{ENTER}"":close:")

363 :名無し~3.EXE:2006/11/05(日) 00:59:50 ID:ERnKg4ol
どうしてもbatでEnterを打たせたかったら
なにかフリーソフトを用意して、それをbatから呼び出すとか

普通に>>356-357みたく直接開けばいい話だと思うが

364 :354:2006/11/05(日) 01:13:52 ID:RCi+n/90
すみません、お騒がせしました。
WSHを使えばすむ話でした。

Set WshShell=Wscript.CreateObject("Wscript.Shell")
WshShell.Run"IEXPLORE.EXE"
WScript.Sleep(4000)
WshShell.SendKeys("{ENTER}")

365 :名無し~3.EXE:2006/11/05(日) 01:35:01 ID:7WDpcn0x
最初から http://search.yahoo.co.jp/ を開くのはだめなのか。
多分だめなんだろうな。

366 :名無し~3.EXE:2006/11/05(日) 15:38:54 ID:rje+y4ta
質問させてください
win2kprosp4で
実験の過程で
C:\WINNT\system32\GroupPolicy\Machine\Scripts\Shutdown に
無限ループするように作ったバッチファイルを置いて実行させてみるのですが
10分?(正確に測っていない)ぐらいするとシャットダウンされてしまいます。
これは、何かタイムアウト処理が働いているからでしょうか?
どうすればシャットダウンさせなくできますか?

367 :名無し~3.EXE:2006/11/05(日) 18:03:57 ID:ft5S0/Lo
質問です。
DVD−ROM(F:\)から中に入ってるファイル名を取得そのファイル名から
D:\〜にある同一ファイル名でヒットするものをを削除する
こんな感じのバッチファイルを作りたいんですがどう書けば良いのでしょうか?

FOR /R F:\ %%F IN (*.) DO DEL %%F
PAUSE
これを実行するとF:\が間違ってると言われます・・・


368 :名無し~3.EXE:2006/11/05(日) 22:34:11 ID:gaAwMg4f
>367

DEL C:\HOGEHOGE.log
DEL C:\HOGEHOGE2.log
FOR /F "eol=; tokens=* delims=/ " %%i IN ('DIR/O:N/A/B F:\*') DO @DIR/B/S D:\"%%i">>C:\HOGEHOGE.log
FOR /F "eol=; tokens=* delims=/ " %%i IN ('TYPE C:\HOGEHOGE.log') DO @ECHO %%i>>C:\HOGEHOGE2.log
FC/B C:\HOGEHOGE.log C:\HOGEHOGE2.log


上記のバッチファイルを実行して、最後に「相違点は検出されませんでした」と表示されるかどうかと
C:\HOGEHOGE2.logの内容を確かめてみてよ。ひょっとしたら削除にも応用できるかも。

369 :名無し~3.EXE:2006/11/05(日) 23:12:56 ID:ft5S0/Lo
>>368
D:\>DEL C:\HOGEHOGE.log
D:\>DEL C:\HOGEHOGE2.log
C:\HOGEHOGE2.log が見つかりませんでした。
D:>FOR /F "eol=; tokens=* delims=/ " %i IN ('DIR/O:N/A
/B F:\*') DO @DIR/B/S D:\"%i" 1>>C:\HOGEHOGE.log
ファイルが見つかりません
ファイルが見つかりません
ファイルが見つかりません
ファイルが見つかりません
ファイルが見つかりません
ファイルが見つかりません
ファイルが見つかりません
D:\>FOR /F "eol=; tokens=* delims=/ " %i IN ('TYPE C:\H
OGEHOGE.log') DO @ECHO %i 1>>C:\HOGEHOGE2.log
D:>FC/B C:\HOGEHOGE.log C:\HOGEHOGE2.log
ファイル C:\HOGEHOGE.log と C:\HOGEHOGE2.LOG を比較しています
FC: C:\HOGEHOGE2.LOG を開けません。このファイルまたはフォルダは存在しません

こんな感じでした。
hogehoge2.logには何も書かれていませんでした

370 :368:2006/11/05(日) 23:25:25 ID:gaAwMg4f
>369
画面上に表示されたメッセージは、FCコマンドの結果だけ俺のWinXPで試してみた時と違うな。
hogehoge.logのほうの内容はどうだった?あと、あんたのWindowsはXP?2000?

371 :名無し~3.EXE:2006/11/05(日) 23:47:43 ID:ft5S0/Lo
>>370
自分はWinXPです。
hogehoge.logはファイル自体存在してなくて
hogehoge.logはbatファイル起動後生成されるが中身は空です

372 :366:2006/11/05(日) 23:47:56 ID:NoIo79Hl
実験機のIPは192.168.1.254で
C:\WINNT\system32\GroupPolicy\Machine\Scripts\Shutdown に置いたバッチファイルは

:reset

ping 192.168.1.2 | find "100%% loss"
if errorlevel 1 (set dt=10&goto :alived)

ping 192.168.1.3 | find "100%% loss"
if errorlevel 1 (set dt=10&goto :reset)

if %dt%==0 shutdown -p

:alived

という内容です。

どちらか一方でもPCが起動していれば
(事前に2台のPCのPINGが正常に返ってくることは確認しています)

[スタート]→[シャットダウン]→[電源を切る]

[シャットダウンのスクリプトを実行しています]というメッセージが続くはずなのですが
約10分でシャットダウンしてしまいます。



373 :名無し~3.EXE:2006/11/05(日) 23:48:44 ID:ft5S0/Lo
× hogehoge.logはbatファイル起動後生成されるが中身は空です
○ hogehoge2.logはbatファイル起動後生成されるが中身は空です

374 :368:2006/11/06(月) 00:29:31 ID:WGTzoRqP
>>371
むぅ、俺と同じXPでhogehoge.log自体が存在しない結果に終わったのか。
実は俺の場合、DVD-ROMドライブの代わりにUSBメモリ(ファイルシステムの種類はFAT)をEドライブに
割り当てていて、Dドライブの代わりにCドライブ内で同一ファイル名を探させる設定にして試したんだ。
それにより、

 E:\2CH-EX.txt
 C:\My Documents\2CH-EX.txt
 C:\My Documents\TEMP\2CH-EX.txt

もしも上記のように"2CH-EX.txt"ファイルがEドライブに1つ、Cドライブに2つ存在するとしたら
C:\HOGEHOGE.log と C:\HOGEHOGE2.log には、

 C:\My Documents\2CH-EX.txt
 C:\My Documents\TEMP\2CH-EX.txt

この2行が書き出される結果に終わるはず。(実際、それに準拠する結果だった)
そういうのを>>367へ応用できるんじゃないかと思ったんだけどな・・・どうなってるんだろう?

375 :名無し~3.EXE:2006/11/06(月) 00:46:15 ID:/GcHf+xd
>>366
バッチの中身関係なくてグループポリシーの設定だよ。
詳しくはスレ違いなのでどっか他で調べてね。

376 :名無し~3.EXE:2006/11/06(月) 00:52:18 ID:eYDcpk0u
>>374
すいません。ドライブ名が違ったみたいです。
Fドライブの中身はDドライブには存在しないからこの結果で、
対象をGにしたらhogehogeとhogehoge2には同じファイル名の
テキストが出来ました。

377 :368:2006/11/06(月) 01:48:07 ID:WGTzoRqP
>>376
ならば後は>>368のバッチファイル4行目を以下のように変更すれば>>367が解決すると思う。

FOR /F "eol=; tokens=* delims=/ " %%i IN ('TYPE C:\HOGEHOGE.log') DO @ECHO %%i>>C:\HOGEHOGE2.log

FOR /F "eol=; tokens=* delims=/ " %%i IN ('TYPE C:\HOGEHOGE.log') DO @DEL "%%i"

ちなみに>>368のバッチファイル3行目で D:\"%%i" の代わりに D:\%%i と記述した場合、WinXPでは
ファイル名に含まれる特殊文字次第でファイルを取りこぼしてしまう事があるから注意。
("D:\%%i"はOK。単にファイル名に空白が含まれるかどうかさえ気をつければ良いという問題ではない)
このあたりの仕様はWinXPとWin2000とWinNT4.0でも各々微妙に異なるから、
他の種類のWindowsでも使い回したい場合は事前に充分テストすべきだろう。

378 :名無し~3.EXE:2006/11/06(月) 11:15:28 ID:QBOemFrs
>>375
スマソ、それではこちら閉めます。

379 :名無し~3.EXE:2006/11/07(火) 02:43:44 ID:fMKPRh+S
>>367

FindExistsRm.CMD 比較元ディレクトリ 比較先ディレクトリ

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%0 IN (%1) DO (
FOR /R %1 %%1 IN (*) DO (
SET x=%%~f1
SET x=!x:%%~f0=%2!
FOR %%2 IN ("!x!") DO (
echo DEL "%%~f1"
)
)
)


380 :名無し~3.EXE:2006/11/07(火) 02:46:21 ID:fMKPRh+S
>>100

FindCompRm.CMD 比較元ディレクトリ 比較先ディレクトリ

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%0 IN (%1) DO (
FOR /R %1 %%1 IN (*) DO (
SET x=%%~f1
SET x=!x:%%~f0=%2!
FOR %%2 IN ("!x!") DO IF "%%~t1"=="%%~t2" IF "%%~z1"=="%%~z2" (
BINDIFF "%%~f1" "!x!"
IF !ERRORLEVEL!==1 (
echo DEL "%%~f1"
)
)
)
)


381 :名無し~3.EXE:2006/11/10(金) 14:35:23 ID:V9Frw57W
すいません
RDコマンドで、あるフォルダを一括削除したいんですが
もの凄い深い階層にあるファイルが原因なのか
「XXXXXXが見つかりません」と、システムがメッセージ出してしまって
フォルダの削除ができません。

こういった長〜いファイル名をコマンドプロンプトで扱う場合
どういう手がありますか?

382 :名無し~3.EXE:2006/11/10(金) 18:36:16 ID:R3LkmhaO
>381
つttp://www.ipmsg.org/tools/fast_rm.html


383 :名無し~3.EXE:2006/11/11(土) 00:07:08 ID:XfOiSAiT
>>382
感謝します

384 :名無し~3.EXE:2006/11/11(土) 00:38:31 ID:9aLw4sXI
標準コマンドで片付ける場合はsubstで見た目のパス短くしてやれば桶

385 :名無し~3.EXE:2006/11/11(土) 08:44:50 ID:zKILve99
subst って、そのフォルダ直下にごみ箱できちゃうよね

386 :名無し~3.EXE:2006/11/11(土) 08:48:37 ID:2hOthbB6
>>381
半角スペース込みだったら"でくくらんとそうなるな。


387 :名無し~3.EXE:2006/11/12(日) 15:00:04 ID:Utpk1ks7
コマンドプロンプトでファイルの存在確認してから削除する方法おしえて

388 :名無し~3.EXE:2006/11/12(日) 15:07:34 ID:N5UKeW4Z
if exist

389 :387:2006/11/12(日) 15:41:59 ID:Utpk1ks7
>>388
thx

390 :名無し~3.EXE:2006/11/12(日) 16:06:03 ID:e0M/p8ad
橋本内科医院市立 芦別病院北海道立本岐診療所永野医院新潟手の外科研究所たかの耳鼻咽喉科高月整形外科内山クリニック長谷川内科南輪内診療所

391 :名無し~3.EXE:2006/11/12(日) 17:00:07 ID:sb3WUvfr
よく、
IF "%1"=="" 〜
のように書きますが、%1に"が奇数個含まれていると、エラーになります。
%1に何が含まれていてもエラーにならない方法はないものでしょうか?


392 :名無し~3.EXE:2006/11/12(日) 17:04:25 ID:WfLPkAgG
set HOGE=%1
set HOGE=%HOGE:"=%
IF "%HOGE%"=="" 〜

393 :名無し~3.EXE:2006/11/12(日) 17:16:49 ID:nVQtwHBh
IF @%1==@ 〜

394 :名無し~3.EXE:2006/11/12(日) 19:33:18 ID:sb3WUvfr
>>392
call :sub "<"
コマンドの構文が誤っています。

>>393
call :sub """
コマンドの構文が誤っています。


395 :名無し~3.EXE:2006/11/12(日) 20:03:35 ID:nVQtwHBh
setlocal
set aaa=
set aaa=%1
if ERRORLEVEL 1 〜

396 :名無し~3.EXE:2006/11/12(日) 20:41:19 ID:tyVMa3TA
>391
素直にWSH(WindowsScriptingHost)を利用するほうが無難だと思う。

397 :名無し~3.EXE:2006/11/13(月) 01:48:44 ID:LbA/01Ah
>>392+>>393
これでよさそうです。
call :sub "<"
call :sub """
call :sub
goto :eof
:sub
set HOGE=@%1
set HOGE="%HOGE:"=""%"
ECHO %HOGE%
IF %HOGE%=="@" ECHO


398 :名無し~3.EXE:2006/11/13(月) 01:56:32 ID:GVejNCmK
callって他のバッチファイルだけじゃなくてラベルを呼べたのか

399 :名無し~3.EXE:2006/11/13(月) 02:00:30 ID:jwTRhDMH
呼べるってラベルじゃねぇよ!

400 :名無し~3.EXE:2006/11/13(月) 02:08:38 ID:3qtCRh81
関係ねぇよ。種類なんかよぉ!

401 :名無し~3.EXE:2006/11/13(月) 05:50:30 ID:wGkOGKoK
目的がわからんので使えないかも知れないけど
if "%~1"==""
とかを普通は使う。

402 :名無し~3.EXE:2006/11/14(火) 07:58:08 ID:kigYWptw
起動時に実行するコマンドラインで
”ファイルのパス”
と しているのですが確認ダイアログが出てしまいます。
確認ダイアログを無しに実行できるコマンドラインオプションを教えて下さい。

403 :名無し~3.EXE:2006/11/14(火) 09:32:33 ID:OpzRD6HB
確認ダイアログ?

404 :名無し~3.EXE:2006/11/14(火) 09:57:02 ID:4kOLK/EZ
          ____   
       / \  /\ キリッ
.     / (ー)  (ー)\      
    /   ⌒(__人__)⌒ \    <確認ダイアログが出てしまいます
    |      |r┬-|    |   
     \     `ー'´   /
    ノ            \
  /´               ヽ              
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))





          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //  < 確認ダイアログだっておwwwwwwwwwwwwwww
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /     バ
 |    |   l||l 从人 l||l      l||l 从人 l||l  バ   ン
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、    ン
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

405 :名無し~3.EXE:2006/11/14(火) 11:38:50 ID:OpzRD6HB
とりあえず質問文の意味がよくわからないので詳しく書き直したほうがいいんじゃないかと思うよ

406 :名無し~3.EXE:2006/11/15(水) 13:07:26 ID:F2T3mu71
誘導された為、こちらで質問させて頂きます。
バッチファイルを使用して同じLANネットワークに接続されている
別のPCでDOSコマンドを実行したいと思っています。
どのようなコマンドで実現出来ますでしょうか?
OSはwindows2000になります。ご教授ください<(_ _)>

407 :名無し~3.EXE:2006/11/15(水) 14:29:35 ID:JDOcLJ4E
>>406
rsh.exe
rexec.exe


408 :名無し~3.EXE:2006/11/15(水) 20:21:33 ID:YmkHLNsM
telnet
rcmd
rconsole
標準ならtelnetだけど、使いやすいのはrcmdかな。あと、
at \\対象マシン 時刻 コマンド
でも可能。

409 :名無し~3.EXE:2006/11/16(木) 08:42:22 ID:cHsBiSJl
Windows PowerShell の正式版が出ますたね

410 :PowerShell の単独スレ立てる場合のテンプレ案:2006/11/16(木) 15:32:07 ID:6cPSqI7E
Microsoft .NET Framework 2.0上で動作するシェルの一種。次期WindowsリリースであるWindows Vista と
コードネームLonghorn Serverに組み込まれる予定。.NETのランタイム上で.NET Framework、外部プログラム、
ファイルシステムやレジストリや外部システムなどのリソースを高度に統合しているのが特徴。
PowerShell Script、Cmdlet、CmdletProvider? の3つの方法でPowerShell自身を拡張することが可能である。
また、PowerShell はスタンドアロンシェルとしてコマンドラインから起動できるだけではなく、他の.NETアプリケーションから
ホストしてアプリケーション自身を拡張することが可能。
Beta3 リリース まではMSH という名称だったが、RC1 からは PowerShell が正式名称として採用された。

How to get Windows PowerShell 1.0
http://www.microsoft.com/technet/scriptcenter/topics/msh/download.mspx
Scripting with Windows PowerShell
http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx

PowerShell - PukiWiki
http://www.globe.to/~oka326/?PowerShell
FrontPage - PowerShell Wiki (fullmoon)
http://www.canalian.com/wiki/wiki.cgi

PowerShell Scripting - インストールから実行まで
http://www.roy.hi-ho.ne.jp/mutaguchi/powershell/how_to_install.html

次世代Windowsシェル「Windows PowerShell」を試す(前編) − @IT
http://www.atmarkit.co.jp/fdotnet/special/powershell01/powershell01_01.html
Windows PowerShellのパワーの源は.NETオブジェクト − @IT
http://www.atmarkit.co.jp/fdotnet/special/powershell02/powershell02_01.html
Windows PowerShell徹底解説:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20061106/252598/
ITmedia エンタープライズ:コマンドラインが復活、MSアプリ管理はPowerShellが主軸に (1/2)
http://www.itmedia.co.jp/enterprise/articles/0606/06/news008.html

411 :名無し~3.EXE:2006/11/16(木) 15:43:37 ID:STc16HEm
次世代Windowsシェル「Windows PowerShell」を試す(前編)
http://www.atmarkit.co.jp/fdotnet/special/powershell01/powershell01_01.html

412 :名無し~3.EXE:2006/11/16(木) 18:47:19 ID:0L6hutsz
PowerShell スレってどこかに立ってる?

413 :名無し~3.EXE:2006/11/16(木) 20:00:36 ID:pGzDDil1
立ってないよ

414 :名無し~3.EXE:2006/11/17(金) 04:31:12 ID:kuNnXI5u
>>410
スレ立てるなら、スレタイ候補。

〔CMD〕 Windows PowerShell Vol.1 〔Script〕

415 :名無し~3.EXE:2006/11/17(金) 19:38:42 ID:E0PYc13y
Windows Server 2003 Service Pack 1 および Windows XP Service Pack 2 用の
Windows PowerShell 1.0 ローカライズ版インストール パッケージ
http://support.microsoft.com/?kbid=926140

日本語版のサイト重すぎない?

416 :名無し~3.EXE:2006/11/17(金) 20:08:07 ID:yatk+sKz
>414
じゃあ俺も対抗してスレタイ案。
【Monad】Windows PowerShell【MSH】

417 :PowerShell の単独スレ立てる場合のテンプレ案:2006/11/17(金) 20:16:40 ID:kuNnXI5u
Microsoft .NET Framework 2.0上で動作するシェルの一種。次期WindowsリリースであるWindows Vista と
コードネームLonghorn Serverに組み込まれる予定。.NETのランタイム上で.NET Framework、外部プログラム、
ファイルシステムやレジストリや外部システムなどのリソースを高度に統合しているのが特徴。
PowerShell Script、Cmdlet、CmdletProvider? の3つの方法でPowerShell自身を拡張することが可能である。
また、PowerShell はスタンドアロンシェルとしてコマンドラインから起動できるだけではなく、他の.NETアプリケーションから
ホストしてアプリケーション自身を拡張することが可能。
Beta3 リリース まではMSH という名称だったが、RC1 からは PowerShell が正式名称として採用された。

Windows Server 2003 Service Pack 1 および Windows XP Service Pack 2 用の Windows PowerShell 1.0 ローカライズ版インストール パッケージ
http://support.microsoft.com/?kbid=926140
How to get Windows PowerShell 1.0
http://www.microsoft.com/technet/scriptcenter/topics/msh/download.mspx
Scripting with Windows PowerShell
http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx

PowerShell - PukiWiki
http://www.globe.to/~oka326/?PowerShell
FrontPage - PowerShell Wiki (fullmoon)
http://www.canalian.com/wiki/wiki.cgi

PowerShell Scripting - インストールから実行まで
http://www.roy.hi-ho.ne.jp/mutaguchi/powershell/how_to_install.html

418 :PowerShell の単独スレ立てる場合のテンプレ案:2006/11/17(金) 20:17:15 ID:kuNnXI5u
次世代Windowsシェル「Windows PowerShell」を試す(前編) − @IT
http://www.atmarkit.co.jp/fdotnet/special/powershell01/powershell01_01.html
Windows PowerShellのパワーの源は.NETオブジェクト − @IT
http://www.atmarkit.co.jp/fdotnet/special/powershell02/powershell02_01.html
Windows PowerShell徹底解説:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20061106/252598/
ITmedia エンタープライズ:コマンドラインが復活、MSアプリ管理はPowerShellが主軸に (1/2)
http://www.itmedia.co.jp/enterprise/articles/0606/06/news008.html

419 :名無し~3.EXE:2006/11/17(金) 21:52:27 ID:E0PYc13y
Windows PowerShell (正式版リリース)1.0
http://pc8.2ch.net/test/read.cgi/win/1163764836/

420 :名無し~3.EXE:2006/11/18(土) 12:58:41 ID:qHED6v8J
コマンドラインからsleepする方法が一つ増えたな

powershell -command sleep 1

……激しく使わない気がするが

421 :名無し~3.EXE:2006/11/18(土) 13:32:56 ID:i0XzREmd
中身.NETだからなぁ
家のPCじゃ、起動させるまでにsleepしそうだ

422 :名無し~3.EXE:2006/11/18(土) 14:30:53 ID:PCAmjjXu
試してないけど、実際にはpowershellの起動時間がsleep時間にプラスされるんだろうな。

423 :名無し~3.EXE:2006/11/18(土) 15:25:28 ID:fh/HkAQx
>>406

 at


424 :名無し~3.EXE:2006/11/18(土) 17:42:23 ID:qHED6v8J
うちのPCだとpowershellの実行が0.6秒くらいかかった
(WindowsXP,Athlon64 3400+)

@echo off
setlocal
set starttime=%time%
echo 00:00:00 | time > nul
powershell -command sleep 0
echo 実行時間は %time% です
echo %starttime% | time > nul
w32tm /resync

425 :名無し~3.EXE:2006/11/18(土) 17:52:10 ID:qHED6v8J
0.6秒は既にpowershellがキャッシュに乗ってるときで、
powershellの初回起動時は6秒かかった

やっぱり激しく役にたたない

426 :名無し~3.EXE:2006/11/18(土) 17:58:40 ID:oWKlvi+6
>>424
0.6秒はいくらなんでも早すぎだろ、と思っちゃった。
うちなんか12,13秒掛かるんですが。

427 :名無し~3.EXE:2006/11/18(土) 18:07:37 ID:AqvXN/YM
初回でも1〜2秒だけど、.NetFrameworkなプログラム常用してるからかな。

428 :名無し~3.EXE:2006/11/18(土) 22:04:34 ID:fLgAfV6T
CLIをネイティブに事前にコンパイル済みしたのをキャッシュしておくことによって
時間短縮するソフトが確かあったよ。

429 :名無し~3.EXE:2006/11/18(土) 22:06:48 ID:gg7xm9LM
ngen のフロントエンドなだけだよ

430 :名無し~3.EXE:2006/11/19(日) 00:03:35 ID:rcCuERX8
sleepのためにPowerShellを入れる気はしない。
他に便利なことはないの?


431 :名無し~3.EXE:2006/11/19(日) 02:28:29 ID:YW38jIhe
.NET Frameworkのライブラリの機能は全部コマンドラインやスクリプトから呼べるらしい

432 :名無し~3.EXE:2006/11/19(日) 02:33:42 ID:0K1oPrA4
いままでだって JScript .NET でできたわけだし

433 :名無し~3.EXE:2006/11/19(日) 02:46:55 ID:YW38jIhe
(今のところ)ノートン先生に怒られない

434 :名無し~3.EXE:2006/11/19(日) 03:21:26 ID:eI82aUEj
.NETなんかじゃなくて、ちゃんとしたCシェルとかbashとかをMSから提供して欲しかったね。

435 :名無し~3.EXE:2006/11/19(日) 03:35:09 ID:LSrB1aeN
>>434
つ Services for UNIX

436 :名無し~3.EXE:2006/11/19(日) 03:42:11 ID:YW38jIhe
つ Subsystem for UNIX-based Applications

437 :名無し~3.EXE:2006/11/19(日) 04:04:00 ID:rcCuERX8
jscg(compile&go)よりは速いんでしょうか?


438 :名無し~3.EXE:2006/11/21(火) 21:49:13 ID:q38yIqA/
9x系で、n秒後に再起動ってやりたいんだけど、どうやったらいい?


439 :名無し~3.EXE:2006/11/21(火) 22:02:50 ID:6uxJHtyX
>>438
ttp://www.vector.co.jp/soft/win95/util/se343283.html

440 :名無し~3.EXE:2006/11/21(火) 22:06:30 ID:q38yIqA/
>>439
そういうツールを使わないとダメ?

441 :名無し~3.EXE:2006/11/22(水) 00:56:48 ID:WEV/FgtF
ping

442 :名無し~3.EXE:2006/11/22(水) 09:05:54 ID:h7jy8vLv
>>441
すまん、それを使えばいいのは分かるが、もう少し詳しく頼む。

443 :名無し~3.EXE:2006/11/22(水) 09:17:20 ID:rF8PITK3
スレ内検索くらいすればいいのに

444 :名無し~3.EXE:2006/11/22(水) 09:36:32 ID:h7jy8vLv
あ、検索するのすっかり忘れてたorz
どもですたノシ

445 :名無し~3.EXE:2006/11/23(木) 20:24:42 ID:VSzDaGy1
WInMeでは再起動を自動でやるにはツールを使わないとダメ?
それともWSHでできる? WSHでできるなら方法を教えてもらえると助かる。
スレ違いだったらスマソ。

446 :名無し~3.EXE:2006/11/24(金) 00:52:45 ID:2KLVL2Zf
ログファイルの自動整理をたくらんでいるのですが、質問です。

決められたファイルのファイルサイズを調べ、

10キロバイト以下では処理1を、
20キロバイト以下では処理2を、
30キロバイト以下では処理3を、

というIF文を作りたいのですが、
具体的にどう記述すればよいのかわかりません。

どのように書けばできますか?
外部ツールを使ってもかまいません。


447 :名無し~3.EXE:2006/11/24(金) 01:07:09 ID:0zfJPv+U
>>446
call /?
if /?

448 :名無し~3.EXE:2006/11/24(金) 10:16:36 ID:K2He8JIZ
NT系だったら
for /f %%A in ('dir 〜') do if 〜 call 〜
とかでどうだべ?

449 :名無し~3.EXE:2006/11/24(金) 14:54:29 ID:bcXVPvCT
for /?

%%~zI

450 :446:2006/11/24(金) 18:06:07 ID:2KLVL2Zf
>>447 >>448 >>449
レストンクス。OSは2Kです。

for %%F in (".\うんこ.jpg") do if %%~zF GEQ 20000 echo ちんこ
for %%F in (".\うんこ.jpg") do if %%~zF GEQ 10000 echo まんこ else echo あなる

で3とおりイケました。ありがとう!

・・・と思ったが、うんこのファイルサイズが20000以上の場合、
ちんこだけ動かしたいのに、ちんことまんこが両方とも実行されてしまいます。

A<固定値<B という範囲内に限定された条件分岐のうまい方法はありませんか。
if文を2段構えにする方法しか思いつきません。


451 :名無し~3.EXE:2006/11/24(金) 18:28:04 ID:EUdb631D
漏れなら後で自分で読んで悩まないように単純な書き方すると思う。漏れ馬鹿だから。

for %%F in (".\うんこ.jpg") do set FileSize=%%~zF
if %FileSize% GEQ 20000 echo ちんこ
if %FileSize% LSS 20000 if %FileSize% GEQ 10000 echo まんこ
if %FileSize% LSS 10000 echo あなる

452 :名無し~3.EXE:2006/11/24(金) 18:31:44 ID:bcXVPvCT
おバカ?

for (
if A
if B
if C
)

453 :名無し~3.EXE:2006/11/24(金) 18:33:02 ID:VGuwVTc1
とりあえず
うんこのサイズ20000で吹いた

454 :名無し~3.EXE:2006/11/24(金) 18:47:41 ID:bcXVPvCT
こんなのは?

set v=0
for %%F in (".\うんこ.jpg") do set sz=%%~zF
if %sz% geq 10000 set v+=10000
if %sz% geq 20000 set v+=10000
if %sz% geq 30000 set v+=10000
goto case%v%

:case0
goto :eof
:case10000
goto :eof
:case20000
goto :eof
:case30000
goto :eof

455 :446:2006/11/24(金) 18:49:34 ID:6m7E/X5o
>>451
トン。これはわかりやすい!
大馬鹿な俺でも、不等号の方向が頭に即座に浮かぶ。

>>452
うーん・・ごめん。もうついていけない。
ABCが10000,20000,30000だとすると、
どんなコマンドを書けば実現できますか?
>>451の単純比較法よりも優位な点はなんでしょう?

>>453
ニヤリ。


456 :名無し~3.EXE:2006/11/24(金) 18:51:40 ID:K2He8JIZ
>>451が一番わかりやすいかも。
複雑な処理には>>454が向いてるっぽい。

457 :名無し~3.EXE:2006/11/24(金) 18:55:05 ID:6m7E/X5o
>>454
なるほど。
すげー、ラベルのgotoの先で変数を使うのか。
これなら各分岐先で、複数のコマンドの羅列群を
複数行に渡ってカンタンに入れられますね。


458 :名無し~3.EXE:2006/11/24(金) 19:16:16 ID:bcXVPvCT
複数コマンド、複数行ってだけなら普通にif文で使えるけど?
>>452が理解できなかった人へ

for %%F in (".\うんこ.jpg") do (
if %%~zF geq 20000 (
echo ウンコてんこ盛り
) else if %%~zF geq 10000 (
echo ウンコ並
) else (
echo ちょびっと
)
)

459 :446:2006/11/24(金) 20:34:34 ID:6m7E/X5o
>>458
なるほど、カッコで囲えばいいのか。

それにしても、このウンコ講座、まじで役に立ちました。
おかげさまで、うんこ摘み分け もとい、ログファイル選別バッチが
完成しました。みなさん、くだらない質問につきあってくれてありがとう。

俺は、AとかBとか1,2,3,とか甲乙とかのサンプル名詞よりも、
うんこちんこと書いたほうが理解力が早いことが判明。(´゚З゚`) ンモー


460 :名無し~3.EXE:2006/11/24(金) 21:24:55 ID:WzW0xK9i
しかしこのスレにはかなりのスキルを持った人が常駐しているようですね
どんな問題でもポンと的確な答えが返ってくる
2chの片隅にひっそりと存在するささやかなスレですが、すばらしいスレです
いつも答えてくれている人に感謝

461 :名無し~3.EXE:2006/11/25(土) 09:56:27 ID:/CZ055s/
質問する方もある程度は心得た人だからさ。まともな人に対する答えはどこでもこんなもん。
いつもDQN質問が多数を占めるスレばかり見てるんじゃないのかね。

462 :名無し~3.EXE:2006/11/25(土) 11:16:06 ID:8LWk1c8J
バッチファイルで計算型GOTO文みたいなことができたのか…

463 :名無し~3.EXE:2006/11/25(土) 18:45:30 ID:ebCEPaSv
set /a v+=10000 だったね。orz

set /a v=%sz%/10000*10
if %v% geq 30 set v=30
goto case%v%KB

464 :名無し~3.EXE:2006/11/25(土) 19:01:46 ID:ebCEPaSv
へー、
set /a v=sz/1000*10
これでも良いんだ。

465 :名無し~3.EXE:2006/11/26(日) 20:15:54 ID:uCTfojiq
doskeyマクロってfor文のin ('コマンド') の部分で使えないのね
set hoge="コマンド"
set hoge=%hoge:~1,-1%
とやっておいて in ('%hoge%') こんな感じ?

466 :名無し~3.EXE:2006/11/28(火) 12:07:45 ID:MZyNBUPe
コマンドブロンプトすごい!

467 :名無し~3.EXE:2006/11/28(火) 15:26:09 ID:A2PCXcn1
バッチファイルの中でプログラムを起動する時、それを終了しなくてもプロンプトの方は終了させるようにするにはどうすればいい?

468 :名無し~3.EXE:2006/11/28(火) 15:37:44 ID:A2PCXcn1
すまん自己解決した、ショートカット使えばいいのね

469 :名無し~3.EXE:2006/11/28(火) 15:45:10 ID:PA/2uyOE
start /?

470 :名無し~3.EXE:2006/11/28(火) 15:53:43 ID:A2PCXcn1
>>469
……なんでコロッと忘れちまってるんだろう俺orz
ありがとう

471 :名無し~3.EXE:2006/11/28(火) 16:44:01 ID:eQt+KJMG
startとショートカットの違い。

unixで非同期実行の&があるが、ショートカットはその感じ。

コンソールアプリやバッチファイルのショートカットを作って、
hoge.lnk
とやると、標準入出力が共有されたまま、非同期実行できますよ。

startはコンソールが別になります。


472 :名無し~3.EXE:2006/11/28(火) 16:49:25 ID:eQt+KJMG
コンソールからWindowアプリを起こすと、待たないで復帰します。
待つときは、Startを使いますが、他に、
cmd/c hoge.exe
とか、
hoge.exe|more
などでも待ち合わせできます。
メリットは特にないけど。


473 :名無し~3.EXE:2006/11/28(火) 19:03:31 ID:A2PCXcn1
へーそこまでは知らなかった、いやstartの存在も忘れていたんだけども。

474 :名無し~3.EXE:2006/11/28(火) 22:27:25 ID:oG1sWt3Q
バッチファイルからFTP使ったり、結構おもろいよ。
データベースからバッチ実行=>FTPの起動・自動ログイン・処理・ログアウト
とか。

MS-DOS時代、waitコマンドラインあったけど
コマンドプロンプトでそれらしいのあるんだろうか?

475 :名無し~3.EXE:2006/11/28(火) 23:17:25 ID:eQt+KJMG
>>435
>つ Services for UNIX
なんて言われても、home editionなので、インストール不可。

SFUには便利そうなコマンドがあるので、一部だけでも抜き出して使いたいのですが、
いい方法はないもんでしょうか。
VirtualPCでPROの環境を作ってインストールするしかないかなぁ。

476 :名無し~3.EXE:2006/11/28(火) 23:42:30 ID:RgtI1wII
つ ORCA

477 :名無し~3.EXE:2006/11/29(水) 00:37:12 ID:2/mGVRQo
>474
ググってもwaitコマンドがどういうのか判らんかったけど
pauseコマンドで代用出来たりする?

478 :名無し~3.EXE:2006/11/29(水) 03:43:22 ID:Cnbem7Cd
>>285
>素のWindowsだけで指定ファイルのパス名をコピーすることって出来ますか?

レジストリの変更だけでも出来ますね。

MSHTA.EXE "about:<script>resizeTo(0,0);</script><hta:application id=hta border=none /><script>var s=hta.commandLine;var f=false;
for(var k=0;k<s.length;k++){c=s.charCodeAt(k);if(c==32)if(!f)break;if(c==34)f=!f;}s=s.substr(k+1);clipboardData.setData('text',s);close();</script>" %1
を関連付けで、*に動詞hogeで登録すれば、ファイル右クリックhogeでパス名がコピーされます。

ただし、複数ファイルは、これでは出来ません。

ショートカットのリンク先に
MSHTA.EXE "about:<script>resizeTo(0,0);</script><hta:application id=hta border=none /><script>var s=hta.commandLine;var f=false;for(var k=0;k<s.length;k++)
{c=s.charCodeAt(k);if(c==32)if(!f)break;if(c==34)f=!f;}s=s.substr(k+1);clipboardData.setData('text',s);close();</script>"
を入れて、SendToにこのショートカットを置けば、複数ファイルが送れますが、ファイルを作成することになるので駄目ですね。


479 :名無し~3.EXE:2006/11/29(水) 23:05:25 ID:IxLn5/2/
>>475
Cygwinはだめか?

480 :名無し~3.EXE:2006/11/30(木) 00:18:54 ID:9lgU88/V
フォルダ内のファイルと同じ名前のテキストファイル(0kb)を
作るバッチプログラムが欲しいのですが、
下のようにするとファイル名中に空白等があった場合
そこから先が省略されてしまいます。
暇な人いましたら修正してもらえませんでしょうか

if "%~1"=="" goto :eof
pushd %1
for /f %%i in ('dir /b %1') do type nul >%%~ni.txt
popd

481 :名無し~3.EXE:2006/11/30(木) 00:38:13 ID:W1vyssVc
"%%~ni.txt"
で良いんじゃないかな?

482 :名無し~3.EXE:2006/11/30(木) 00:47:00 ID:2IMejFpR
バッチ内部で組み込む条件で、テキストの抜き出し加工について質問です。

■テキストファイル TEST.TXT の内容(サンプルです。>>1より引用)

>DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
>wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
>コマンドラインインタフェースに関するネタならなんでもOK。


■出力したいテキスト TEST2.TXT 内容

>拡充されてきたコマンド、
>wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
>コマンドラインインタフェースに関するネタ

このときの条件は、テキストファイルから、

 指定された開始文字列 「拡充」 からはじまり、
 指定された終了文字列 「関するネタ」 までを抜き出す

このように2点間のテキストを抜き出すには、
どのような方法を使えばいいでしょうか。

FINDで、1行丸ごと抜き出すところまではできました。
が、FINDでは該当する文字列が含まれると1行丸ごと引用しますので、
行の途中から文章を引用することができません。

賢い方法、なにかありませんか?よろしくお願いします。


483 :名無し~3.EXE:2006/11/30(木) 00:58:21 ID:CJ8/8p6E
よく分からないけどsedかawkの出番かな?

484 :480:2006/11/30(木) 01:02:06 ID:9lgU88/V
>>481
すんません、だめでした。
OSはXP Homeです

485 :名無し~3.EXE:2006/11/30(木) 01:26:19 ID:6of09l5E
>>482
@echo off
echo W=WScript;a=W.Arguments;s=W.StdIn.ReadAll();W.Echo(s.match(a(0)+'(.^|\n)*'+a(1))[0])>%temp%\aaa.js
cscript //nologo %temp%\aaa.js 拡充 関するネタ < 1さん.txt
del %temp%\aaa.js


486 :名無し~3.EXE:2006/11/30(木) 01:33:23 ID:W1vyssVc
>>484
これでどう?
for /f "delims=" %%i in ('dir /b %1') do type nul >%%~ni.txt

487 :480:2006/11/30(木) 11:08:08 ID:9lgU88/V
>>486
できました。ありがとうございます

488 :名無し~3.EXE:2006/11/30(木) 18:53:37 ID:4A8n4oNd
バッチなら
@if(0)==(0) ECHO OFF
CScript.exe //NoLogo //E:JScript "%~f0" <1さん.txt
GOTO :EOF
@end
WScript.Echo(WScript.StdIn.ReadAll().match(/拡充[\s\S]*?関するネタ/)[0]);


489 :名無し~3.EXE:2006/11/30(木) 18:55:47 ID:4A8n4oNd
コマンドプロンプトなら
mshta "javascript:var f=new ActiveXObject('Scripting.FileSystemObject');f.GetStandardStream(1).WriteLine(f.GetStandardStream(0).ReadAll().match(/拡充[\s\S]*?関するネタ/)[0]);close();" <1さん.txt >結果.txt


490 :名無し~3.EXE:2006/11/30(木) 19:04:53 ID:4A8n4oNd
>>479
本家(Unix)にないMKS Toolkitに
filebox Displays a Windows 2000 Open or Save dialog box.
gres Substitutes for a pattern in a file or stream.
mapimail Sends mail on a Win32 system using the MSMapi32 ActiveX COM object.
など面白そうなコマンドがいっぱい。


491 :名無し~3.EXE:2006/11/30(木) 20:37:35 ID:4A8n4oNd
バッチだけでやると.CMD 拡充 関するネタ <1さん.txt
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET F=0
FOR /F "delims=] tokens=1*" %%0 IN ('FIND /N /V ""') DO (
SET X=%%1
SET Y=
IF DEFINED X SET Y=!X:*%1=!
IF NOT "!X!"=="!Y!" (
SET F=1
ECHO:%1!Y!
)
SET Y=
IF DEFINED X SET Y=!X:*%2=!
IF NOT "!X!"=="!Y!" (
SET F=0
CALL :LEN
ECHO:!Y!
)
IF !F!==2 ECHO:!X!
IF !F!==1 SET F=2
)
GOTO :EOF
:LEN
SET Z=0
:UP
IF "!Y:~%Z%!"=="" GOTO :SET
SET /A Z+=1
GOTO :UP
:SET
SET Y=!X:~0,-%Z%!


492 :482:2006/12/01(金) 00:02:40 ID:2IMejFpR
>>485 >>488 >>489 >>491

皆様、貴重なアドバイスをありがとうございました。
教えていただいたスクリプトを複数組み合わせ、
うまく動きました。どうもありがとうございます。


493 :名無し~3.EXE:2006/12/01(金) 03:40:24 ID:ZvxkC/xa
>>492の最初の「皆様、貴重」が「貴様」に見えた寝る

494 :名無し~3.EXE:2006/12/01(金) 11:22:51 ID:5wVi+ir+
>>492最初の皆様が皆藤に見えた
http://www.centforce.com/profile/t_profile/kaitou.html


495 :名無し~3.EXE:2006/12/01(金) 18:22:58 ID:4N/6YD5N
>493
俺は昔同級生に「貴」(タカシ)が居た
年賀状出し辛かった

496 :名無し~3.EXE:2006/12/01(金) 20:34:01 ID:oGiM64QN
>>492最初の皆(ミナ)様をモナ様と読んだ
http://www.excite.co.jp/News/entertainment/20061129061215/Sponichi_kfuln20061129006003.html



497 :490:2006/12/02(土) 17:19:08 ID:0XNYfzVD
勘違いでした。
MKS ToolkitはSFU2.0に30日DEMO版が入っているだけでした。
なので興味喪失。
ところで、未インストール状態のSFU中のexeを叩いても
そんなファイルは見つかりません。と言うのは、
exe形式がPOSIX Subsystem用になってるとか、
そういうことなんでしょうか。ちょっと不思議です。


498 :名無し~3.EXE:2006/12/02(土) 23:17:07 ID:GeMJalJA
PowerShellを用いてtxt形式(echo 〜と変数の組み合わせ)のファイルを
連続して作成できるようにps1ファイルを作成し、ファイル作成は動作は正常に行えたのですが
出来上がったファイルの文字コードがUTF-16で次のプログラムに受け渡せなくて困ってます。

echoの時点でSJISにしたり、ファイルをスクリプトから変換できるようなツールがあればお教えください。



499 :名無し~3.EXE:2006/12/02(土) 23:51:48 ID:46Pzno4R
つ http://www.vector.co.jp/soft/winnt/util/se315405.html

500 :名無し~3.EXE:2006/12/03(日) 00:57:51 ID:TRuQ24NS
>>499 PowerShellからリダイレクトかけた時点でBOM付UTF-16LEに戻されるから
cmd,exeを呼び出して使えってことなんでしょうが PowerShellからcmd.exeを呼び出せるもんなんですか?

501 :名無し~3.EXE:2006/12/03(日) 03:35:54 ID:y64/DPio
つ じゃなくて見 じゃないの

502 :名無し~3.EXE:2006/12/03(日) 03:41:28 ID:y64/DPio
そうそう、SFUにiconvがあった。
iconv -f from_code -t to_code [-s char] [file ...]


503 :名無し~3.EXE:2006/12/03(日) 14:00:50 ID:JdmW3Ab/
Out-Fileで-encoding指定すればいいんじゃね?

504 :名無し~3.EXE:2006/12/03(日) 17:24:46 ID:TRuQ24NS
>>502 ダメ文字・・の消し方で躓いたので端からあきらめてました。
>>503 .NetFrameworkを使ったスクリプトをWebで見つけて参考に作り上げたのですが
どうせunicode中間ファイルができるなら、
cat $fname[] | Out-File -encoding ASCII -filepath $fpath
とかで簡単にいけそうですね。
ありがとうございます >499、501、502、503

パイプラインで出力する方法を設定できれば楽なのにMSさん。

505 :名無し~3.EXE:2006/12/03(日) 17:57:05 ID:y64/DPio
>>499によれば、
FIND /V "" < BOM付きUnicodeファイル > シフトJISファイル
とか、
「BOM付きUnicodeを出力するコマンド」|FIND /V "" > シフトJISファイル
とやればよいのでは。
PowerShellを知らないので頓珍漢かも。

506 :名無し~3.EXE:2006/12/03(日) 20:14:24 ID:x5iMNpj8
XP Home SP2なんですけど
">"とか"|"とか"&&"とか"()"に関してのヘルプってどうやったら出てくるか教えてください。

507 :名無し~3.EXE:2006/12/03(日) 20:34:50 ID:ltN6r6qX
Homeにあるかどうか知らないけど、Proだと
スタート→ヘルプとサポートでコマンド ライン リファレンスを検索
→コマンド シェルの概要、リダイレクト演算子
に書かれている

508 :名無し~3.EXE:2006/12/03(日) 20:40:53 ID:JdmW3Ab/
うちのXP Home では "コマンド ライン リファレンス" では検索に引っかからないので
"dir" など回復コンソールにもあるコマンド名で検索して[関連項目]から移動。


509 :名無し~3.EXE:2006/12/03(日) 21:01:16 ID:XHqr+Wc4
hh ntcmds.chm::/redirection.htm

通常は、
hh ntcmds.chm
hh ntcmds.chm::/ntcmds.htm

510 :名無し~3.EXE:2006/12/03(日) 21:05:42 ID:x5iMNpj8
>>507,508
見つけられました、ありがと〜でした

511 :名無し~3.EXE:2006/12/03(日) 21:23:21 ID:XHqr+Wc4
こっちだった。
hh ntcmds.chm::/ntcmds_shelloverview.htm

512 :名無し~3.EXE:2006/12/03(日) 22:01:18 ID:y64/DPio
ヘルプとサポートセンタで開くほうがよくない?
helpctr.exe /URL ms-its:ntcmds.chm::/ntcmds_o.htm


513 :名無し~3.EXE:2006/12/03(日) 22:07:09 ID:y64/DPio
>>512
PATHが通っていないのでSTARTで。

514 :名無し~3.EXE:2006/12/04(月) 14:12:07 ID:6ydASAMh
>>513
512で見れた。すげええええ、こんなことが出来るのか
XPを10年使って初めて見た。

515 :名無し~3.EXE:2006/12/04(月) 18:39:36 ID:6gdKKDRd
>>514
> XPを10年使って初めて見た。
未来から来られたんでしょうか?

516 :名無し~3.EXE:2006/12/04(月) 20:20:53 ID:M/HQ1bo2
>>514
一度見つけたら右クリック「お気に入りに追加」しておくべし。
hhのほうも、
hh.exe windows.chm
で、「お気に入り」や「検索」「キーワード」タブを表示、
左上隅のアイコンを右クリックして、「URLへ移動」に
ntcmds.chm::/ntcmds_shelloverview.htm
などを入れて表示して、「お気に入り」タブで「追加」しておくべし。


517 :名無し~3.EXE:2006/12/05(火) 20:20:38 ID:L6haTKq6
IME辞書をバッチファイルでバックアップしたいのですが
xcopy c:\progra~1\common~1\micros~1\ime\imjp9\dicts\imjp81~1.dic d:\ /s/y
としても「指定されたファイルが見つかりません」になってしまいます。
どこがおかしいでしょうか?

518 :517:2006/12/05(火) 20:27:20 ID:L6haTKq6
事故解決しました。

519 :名無し~3.EXE:2006/12/05(火) 23:08:31 ID:jnuccgG/
質問したからには自己解決であっても答えを書いとけよ。
後世の人のために。

520 :名無し~3.EXE:2006/12/05(火) 23:16:01 ID:Ut7BG6ZP
単にパスミスだろう。
デフォだと、\Program Filesの下なんかに無くて
%USERPROFILE%\Application Data\Microsoft\IMJP8_1\imjp81u.dic
だし。

521 :名無し~3.EXE:2006/12/06(水) 00:11:56 ID:Wd7oNSvB
xcopy c:\progra~1\common~1\micros~1\ime\imjp9\dicts\imjp81~1.dic d:\ /s/y

xcopy c:\"program files"\"common files"\"microsoft shared"\ime\imjp9\dicts\imjp81~1.dic d:\ /s/y

522 :517:2006/12/06(水) 00:15:08 ID:Wd7oNSvB
途中で書き込んでしまった。
半角スペースが含まれるフォルダ名をダブルクォーテーションで囲まなかったのが
原因でした。


523 :名無し~3.EXE:2006/12/06(水) 00:42:03 ID:tyfiRIjS
windows.chm, ntcmds.chm などのリンクを表示する毎に、
IMT??.xml 2KB, IMT??.xml 1KB, IMT??.xml 566KB が
%TEMP% に増殖するようになった。

MS06-061(924191) の msxml3.dll を旧バージョンにしたら
直ったけど・・・なんだかなぁ

524 :名無し~3.EXE:2006/12/06(水) 01:19:55 ID:1p+kqH7a
>>521
8.3形式のショートファイル名では""で括る必要なんてなかろう?
それでどうしてエラーになったのか説明になってないよ。

525 :名無し~3.EXE:2006/12/06(水) 01:33:08 ID:IO9adWLd
>>523
DocumentExplorerでMSDNライブラリを見るとそうなるので、
以下のバッチファイルで消してる。
http://www.vector.co.jp/soft/winnt/util/se396195.html


526 :名無し~3.EXE:2006/12/06(水) 08:37:07 ID:m9Lj9Fy4
>>524
横レスで悪いが、その短いファイル名を書き間違えた(長いファイル名と異なり環境によって不定だから
いちいち確認し直さないと間違える恐れがある)からエラーになったという事じゃないの?

527 :名無し~3.EXE:2006/12/06(水) 12:02:50 ID:djMBOTsr
Windows2000です
ホスト名をコマンドで変更できないのでしょうか?
表示はhostnameでできるみたいですが

528 :名無し~3.EXE:2006/12/06(水) 16:53:10 ID:4HPM2R2N
>>527
hostname /? を読んだか?

529 :名無し~3.EXE:2006/12/06(水) 23:31:18 ID:/1yQuGaA
>>525
情報乙。
クリック2回で1MB強・・・気付かず放置してたら・・
chmの動作も少々不安定で稀にWSHのエラーダイアログを見た。
件のDLLを差し替えてから解消。 >>523

530 :521:2006/12/07(木) 14:46:49 ID:tZeJn9bU
>>524
初めてのバッチ処理なんで、何で失敗したのかとか成功したのかが全然わからないです。

531 :名無し~3.EXE:2006/12/07(木) 15:08:30 ID:IpBUAms4
たぶんmicros~1がMicrosoft Officeとか別のフォルダを指していたのではないかと思う。

ダブルクォーテーションを使うにしても、全体をまとめて括るのが普通だと思う。
"c:\program files\common files\microsoft shared\ime\imjp9\dicts\imjp81~1.dic"

532 :521:2006/12/07(木) 15:36:05 ID:tZeJn9bU
xcopy /m/s/y "c:\documents and settings\ユーザー名\application data\microsoft
\imjp8_1\imjp81u.dic"

最終的にこれで落ち着きました。
IMEの場所が変だったのはデフォルト以外の場所で参照していて、
デフォルトフォルダを忘れてしまっていた。
(隠しフォルダ設定になっていたため検索しても引っかからなかった。)
名前の似ているフォルダを見つけて消してしまったのかと思い、そこにIMEを移したからです。


533 :名無し~3.EXE:2006/12/07(木) 15:50:06 ID:EC5LjnO7
最近、腕が鈍っているあなたに練習課題。
そもさん
一時ファイルを作成せずに、テキストファイルのn行目を削除して上書きするには?


534 :名無し~3.EXE:2006/12/07(木) 17:24:57 ID:GW4cVLj7
echo n行目d e | edlin テキストファイル

535 :名無し~3.EXE:2006/12/07(木) 17:54:53 ID:EC5LjnO7
>>534
上乗
知らなんだ。このスレで初出なのでは。

536 :名無し~3.EXE:2006/12/07(木) 19:17:22 ID:cfBCyQ+c
旧式には旧式のやり方があってな

537 :名無し~3.EXE:2006/12/07(木) 20:05:30 ID:EC5LjnO7
別解の募集は継続しておいて、別の練習課題。
そもさん
バッチでsetlocalを使って処理した上で、環境変数hogeに値をセットして返すには?
同様にカレントディレクトリを変更して帰すには?


538 :名無し~3.EXE:2006/12/08(金) 00:30:37 ID:jJz4HCFd
setlocal
処理
endlocal&set hoge=値

pushd X:\hoge\hoge\hoge
処理
popd

539 :名無し~3.EXE:2006/12/08(金) 03:18:43 ID:pYxlA4EA
あるファイル以外を全部コピーしたいんですけど、除外するようなコマンドってありますか?


540 :539:2006/12/08(金) 03:52:59 ID:pYxlA4EA
自己解決しました。
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/446xcopy/xcopy.html

xcopy c:\usr z:\usr\ /EXCLUDE:C:\BAT\xcopy-excludelist.txt
バッチファイルって便利ですね。

541 :537:2006/12/08(金) 15:03:28 ID:ZdduNYTr
設問が分りにくかったですね。
setlocal
set /p num=加える数を入力してください
set /a hoge+=num
だとうまく行かない。

setlocal
set /p folder=ディレクトリを入力してください
cd /d %folder%
これもうまく行かない

それぞれ直して。という意味です。


542 :名無し~3.EXE:2006/12/08(金) 15:08:32 ID:QCa6jACi
コマンドプロンプトのデフォルトのディレクトリ
を変える方法を教えてください。

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Owner>

これ


543 :542:2006/12/08(金) 15:42:55 ID:QCa6jACi
自己解決しました?
http://www.fpcu.jp/dosvcmd/bbs/log/cat8/3-0427.html

レジストリを弄るよりショートカットを作ったほうが安全だそうです。

私はxkeyemacsというソフトで、M-shift-1でプロンプトを呼び出して使っていますが、
そのソフトには呼び出し先の指定が出来ないのでショートカットを作っても対応できません。

Ownerにbatファイルを作って毎回起動するのが現実的かなあ。
何か他にいいアイデアありますかね?

544 :537:2006/12/08(金) 15:56:56 ID:ZdduNYTr
設問が分りにくかったですね。
setlocal
set /p num=加える数を入力してください
set /a hoge+=num
だとうまく行かない。

setlocal
set /p folder=ディレクトリを入力してください
cd /d %folder%
これもうまく行かない

それぞれ直して。という意味です。


545 :537:2006/12/08(金) 16:05:27 ID:ZdduNYTr
>>544
ごめん。みすった。
リダイレクションの練習課題
標準出力をファイル、標準エラーをパイプに。
標準出力をコンソール、標準エラーをパイプに。
標準出力と標準エラーを入れ替える。

バッチの中でコンソールにプロンプト。バッチ使用者がリダイレクトしていてもコンソールに。
set /p hoge=prompt


546 :名無し~3.EXE:2006/12/08(金) 16:10:04 ID:ZdduNYTr
>>542
そんなこと、言ったって、起こし方によるだろ。
どの起こし方のことを言ってんのさぁ?


547 :名無し~3.EXE:2006/12/08(金) 16:22:55 ID:ZdduNYTr
>>543
と思ったら書いてあったね。
しかし、そのソフトがコマンドプロンプトをどう呼び出してるかが分らなければ、
どうしようもないんじゃないの。作者に聞けば?
或いは、バイナリエディタで中を覗いて、書き換えるか。


548 :名無し~3.EXE:2006/12/08(金) 16:26:42 ID:pYxlA4EA
偉い人、バッチの使用例などを暇なときに書き込んでくれませんか?


549 :名無し~3.EXE:2006/12/08(金) 16:30:36 ID:ZdduNYTr
>>543
名前からするとEMACS擬似みたいだから、バイナリじゃなくて、
呼び出してるマクロソースを変えればいいんじゃないの。


550 :名無し~3.EXE:2006/12/08(金) 16:47:12 ID:ZdduNYTr
hh ntcmds.chm::/redirection.htm
を見ると、

! file.txt を検索してから、Search.txt にハンドル 1 (STDOUT) とハンドル 2 (STDERR) をリダイレクトするには、次のように入力します。
!
! findfile file.txt>search.txt 2<&1

なんて書いてあって、えっ嘘、と一瞬思うけど、やってみると動くのよね。
全くもってへぼいヘルプ。わざとだったりして。


551 :名無し~3.EXE:2006/12/08(金) 23:19:08 ID:QCa6jACi
>>549
内蔵みたいで、マクロソースが無いんですよね・・・。
諦めてショートカットつくっちゃいましたw
レスありがとうございました。


552 :名無し~3.EXE:2006/12/09(土) 00:58:03 ID:KVXyeSOl
>>551
もし、呼び出しが「cmd」だけなら、
C:\Documents and Settings\Owner
にcmd.cmd
cmd.exe /k cd フォルダ
を作る。
.exeを忘れると悲惨。

で行けるかも。駄目ならやっぱり、バイナリで書き換え。


553 :533:2006/12/09(土) 01:01:47 ID:KVXyeSOl
想定解答、5行目のとき
@ECHO OFF
FOR /F "delims=] tokens=1*" %%0 IN ('FIND /N /V "" ^<テキストファイル') DO (
IF "%%0"=="[1" TYPE NUL >テキストファイル
IF NOT "%%0"=="[5" ECHO %%1>>テキストファイル
)


554 :537:2006/12/09(土) 01:14:50 ID:KVXyeSOl
>>538
正解です。

これを >>541 の問題に適用すると、こうなるわけですね。
setlocal
set /p num=加える数を入力してください
endlocal & set /a hoge+=%num%

setlocal
set /p folder=ディレクトリを入力してください
cd /d %folder%
pushd .
endlocal
popd

後半は想定外で、想定解答は、
setlocal
set /p folder=ディレクトリを入力してください
(
endlocal
cd /d %folder%
)


555 :名無し~3.EXE:2006/12/09(土) 01:24:09 ID:KVXyeSOl
>>552
他からの呼び出しがうまくないですね。
@echo off
if "%1"=="" (
cmd.exe /kcd フォルダ
) else (
cmd.exe %*
)


556 :名無し~3.EXE:2006/12/09(土) 01:30:05 ID:eB0nlLts
ローマ字覚えたての中学生みたいな子がいるな。

557 :名無し~3.EXE:2006/12/09(土) 09:10:12 ID:CbyQAEJO
スレタイ嫁

558 :名無し~3.EXE:2006/12/09(土) 14:57:50 ID:KVXyeSOl
>>544
をsetlocal使わずにやるには?


559 :名無し~3.EXE:2006/12/10(日) 13:02:38 ID:DlucxiVx
ntvdm.exeについてなんですが、
のDOS窓で16ビットVz、FILMTNなどを実行すると、CPU使用率が
常時90%以上になり、他のWindowsアプリの動作がかなり遅くなります。

ここなど読んでみたり、WindowsFAQで調べたりしましたがよくわからず、、
ttp://itpro.nikkeibp.co.jp/article/Windows/20051216/226357/?ST=win-client&P=2

昔のDOSプログラムを、CPU使用率を上げないで、Windowsで使うことは
可能でしょうか?(cygwinを使うなど)

環境はMicrosoft Windows XP [Version 5.1.2600] SP2です。


560 :名無し~3.EXE:2006/12/10(日) 13:12:11 ID:3olEl7F7
同等のWin32ネイティブアプリ使え

561 :名無し~3.EXE:2006/12/10(日) 14:08:43 ID:DlucxiVx
そこをなんとか(´・ω・`)

562 :名無し~3.EXE:2006/12/10(日) 14:15:49 ID:aavWYyCD
Vistaからは日本語16bitアプリがサポートされなくなるし、
今の内から移行しておいた方がいいぞ。

563 :名無し~3.EXE:2006/12/10(日) 14:58:41 ID:DlucxiVx
・・・・(´・ω・`)アイ

LANに繋がってる別の古いマシンを16bit専用にします。

564 :名無し~3.EXE:2006/12/10(日) 17:17:26 ID:aid/GaYP
VirtualPC等で仮想マシン上で純粋なDOSかWin9xを動かしたら軽くなるかも

565 :名無し~3.EXE:2006/12/10(日) 19:29:07 ID:NyMIEUsg
>>563
ここで訊く話ではないのだけれど、あえて質問。
そのDOSと他のマシン(Windowsマシン?)とLANの接続方法は?
幾通りものやり方はあるけど、>>563のところでは、どういう接続方法?

566 :名無し~3.EXE:2006/12/10(日) 22:02:12 ID:A1RkA3As
>>559
DOSプログラムへのショートカット (pif)を作って
そのプロパティのその他のタブの「ほかのプログラムの優先度」を高いほうにして実行したらどうか。

567 :名無し~3.EXE:2006/12/10(日) 22:24:50 ID:DlucxiVx
>>566
これで結構緩和されました。ありがとう!

>>565
・・・・・(´・ω・`)クロスシリアル

568 :565:2006/12/10(日) 22:57:18 ID:xLBP+58r
>>567
回答ありがとうございます。
ク、ク、クロウトシコウ(苦労と試行)じゃないや、クロスシリアル。
わかりました、たしかにケーブルさえ用意出来ればそれがいいかも。
(以前、実際やったことあるけど、とんでもなく転送速度が遅かったけど)
RS-232CコネクタがついているPCはよくありますものね。

569 :1/2:2006/12/11(月) 15:32:28 ID:XufxOd7S
コマンドプロンプト上にUTF-8でエンコードされた文字を表示することは可能ですか?

Shift-JISしか表示出来ないと思っていたのですが、SP(an SGML parser : ttp://www.jclark.com/sp/index.htm)の
nsgmls.exeがutf-8で出力し、文字化けせずに表示されています。僕の勘違いでしょうか?


以下が試した内容です。ファイルにリダイレクトした内容、Perlで取得したコマンドライン出力ともにUTF-8でした。

[コマンド実行前に設定した環境変数]
SET SP_CHARSET_FIXED=1
SET SP_ENCODING=utf-8

[実行したコマンド]
nsgmls test.dtd test.sgm


XPPro sp2
SP 1.3.4
ActivePerl 5.8.8

570 :2/2:2006/12/11(月) 15:34:41 ID:XufxOd7S
[test.dtd] UTF-8で保存
<!DOCTYPE test [
<!ENTITYend"終わり">
<!ELEMENTparam - - (#PCDATA) >
<!ELEMENTtest - - (param)+ >
]>

[test.sgm] UTF-8で保存
<test>
<param>あいうえお&end;</param>
</test>


長くなってしまいましたが、よろしくお願いします。

571 :名無し~3.EXE:2006/12/11(月) 15:41:32 ID:XufxOd7S
>>570の訂正です。
<!ENTITY
<!ELEMENT
の後にはスペースが入ります。済みませんでした。

572 :名無し~3.EXE:2006/12/11(月) 18:44:17 ID:ZLM4uKIZ
type test.sgm
は無理でしょ?

よく知らんけど、出力先がファイルかconsoleかで区別してんじゃね〜の?

573 :名無し~3.EXE:2006/12/11(月) 20:26:07 ID:65WhWCqA
ローマ字覚えたてなもんで、作ってみました。

タイプ.CMD ファイル.txt

@if(0)==(0) ECHO OFF
CScript.exe //NoLogo //E:JScript "%~f0" %~f1
GOTO :EOF
@end
var htmlfile=WScript.GetObject(WScript.Arguments.Item(0),'htmlfile');
while(htmlfile.readyState!='complete') WScript.Sleep(100);
WScript.Echo(htmlfile.body.innerText);


574 :名無し~3.EXE:2006/12/11(月) 20:41:52 ID:vjiVGkT0
>>572 ありがとうございます。出力する方法あるのかなぁ。

575 :名無しさん@Vim%Chalice:2006/12/11(月) 21:11:55 ID:oJSjGerR
>>569
 を見て思ったんだけど
 簡単にゆうと
 
 xmlparserと呼ぶんだろうか?covert txt.htmlみたいな処理
 
 xml/atomを処理して用はtag抜きしてテキストで人が可読出きるように処
 理してくれるコマンドラインツールを持ってた。

 perlで処理ってのも(今はそうだけど)あるけど
 単体で簡単に処理できた。 javaで出来てた。
 http://〜で指定、 ローカルから指定
 などができてdescriptionを吐いてくれた。
 titleやlinkは吐いてくれたかどうだったか忘れたけど

 消しちゃったらしく見つからない('A`
 類似してるのでご存知の方いたら教えて下さいorz

576 :名無し~3.EXE:2006/12/11(月) 22:05:28 ID:65WhWCqA
テキストをHTMLに変換.CMD <テキストファイル >HTMLファイル

@if(0)==(0) ECHO OFF
CScript.exe //NoLogo //E:JScript "%~f0"
GOTO :EOF
@end
var htmlfile=new ActiveXObject('htmlfile');
htmlfile.write('<html><body></body></html>');
htmlfile.body.innerText=WScript.StdIn.ReadAll();
//WScript.Echo(htmlfile.body.innerHTML);
WScript.Echo(htmlfile.documentElement.outerHTML);


577 :名無し~3.EXE:2006/12/11(月) 22:41:10 ID:65WhWCqA
HTMLをテキストに変換.CMD <HTMLファイル >テキストファイル

@if(0)==(0) ECHO OFF
CScript.exe //NoLogo //E:JScript "%~f0"
GOTO :EOF
@end
var htmlfile=new ActiveXObject('htmlfile');
htmlfile.write(WScript.StdIn.ReadAll());
WScript.Echo(htmlfile.body.innerText);


578 :名無し~3.EXE:2006/12/11(月) 23:19:15 ID:X2aariIn
一つだけならテクニック披露ってことでいいけど
幾つも書かれるとさすがにうざい。(しかも大文字)
条件コンパイル文は省略してfoo.jsとでもしてくれ。

579 :名無し~3.EXE:2006/12/12(火) 01:59:22 ID:lvbiyYMD
>>1 に「WSHもOK」って書いてあるんだから無理やりbatにせんでもいいわな。

580 :名無し~3.EXE:2006/12/14(木) 09:46:39 ID:C8bcVsGQ
>>574
だから>>573じゃ駄目なん?
UTF-8、EUC、ISO-2022-JP、Unicode Big Endianは読めるけど。

581 :名無し~3.EXE:2006/12/15(金) 15:27:11 ID:S/zivTUD
>>580
ありがとうございます。私の為に書いて下さっていたのですね。レスが遅くなって済みませんでした。

私の説明の仕方が紛らわしかったです。UTF-8でエンコードされた文字列データを
シフトJISに変換せずに出力し、正しく(文字化けせずに)表示することが可能なのか知りたかったのです。

例えば、UTF-8で平仮名の'あ'は16進表記で'E3,81,82'という並びになりますよね?

このようなデータをそのまま標準出力に出力すると、データをシフトJISとして解釈して、
コマンドプロンプト上には'縺・'と表示されてしまうと思っていたのですが、
上記nsgmls.exeの出力では'あ'と表示されているようなので不思議に思い質問させていただきました。


そもそも、リダイレクトしたデータがUTF-8でエンコードされた文字列データだとしても、
標準出力に出力された文字列がUTF-8でエンコードされていたとは限らないのでしょうか?

それとも、>>572さんが仰っているように内部で出力先を判断することが可能なのでしょうか?

>>573を試してみました。WSHはよく分からないのですが、シフトJISに変換して出力されていますよね?
僕の知識不足や勘違いでしたらごめんなさい。






582 :名無し~3.EXE:2006/12/15(金) 17:24:28 ID:WQ0VQ89P
>>581
>>573の末行を以下に変えると、Unicodeで出力します。
new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1,true).Write(htmlfile.body.innerText);

これで、コンソールに出すと、Unicodeがちゃんと表示されます。

でもUTF-8は無理そう。

やり方は知りませんが、コンソールかどうかの判定ができのでは。

583 :名無し~3.EXE:2006/12/15(金) 18:11:02 ID:S/zivTUD
>>582 本当だ、表示されました。きっと何かあるんですね。
ありがとうございました。

584 :名無し~3.EXE:2006/12/16(土) 19:10:41 ID:8R61Kbto
いきなりですみませんが、アドバイスしていただきたいことがあります。

あるバッチファイルを実行したいときに、ファイルアイコンをダブルクリックした場合や、
あらかじめ開いてあるコマンドプロンプトでバッチファイルのフルパスのみを入力した
場合には普通に実行できるのですが、コマンドプロンプトやスタートメニューの
「ファイル名を指定して実行」で"cmd.exe (バッチファイルのフルパス)"と入力しても
"cmd.exe"が起動するだけでバッチファイルの中身がまったく実行されません。
(フルパスを""で囲み忘れているということはありません)

バッチファイルの内容が"@pause"しかない場合でもうまくいかず、原因がまったく
分からず困っています。どなたか思い当たることなどありましたらレスお願いします。

こちらの環境はWinXP Pro SP2です。管理者権限のユーザでログインしています。


585 :名無し~3.EXE:2006/12/16(土) 19:20:49 ID:sMjQ//iN
cmd /c "CALL (バッチファイルのフルパス)"

では駄目?"

586 :名無し~3.EXE:2006/12/16(土) 19:23:31 ID:WY7hZ9i6
callって必要?

587 :名無し~3.EXE:2006/12/16(土) 19:42:41 ID:vxaOUO5b
そもそもcmdから呼ばなければいけないのか?

588 :名無し~3.EXE:2006/12/16(土) 19:58:17 ID:2dLQ97yA
そもそも、なんでcmd/?しないんだ?

589 :584:2006/12/16(土) 21:01:04 ID:8R61Kbto
レスありがとうございます。無事できました。callはあってもなくても大丈
夫でした。

/cをつけなければならないのと、/cの引数に直接パスが指定できるのを
知らなかったため悩んでしまいました。お手数おかけしました。

590 :名無し~3.EXE:2006/12/17(日) 01:04:04 ID:Q+y26mBo
特定の場所にあるファイルを、バッチを呼び出されるたびにFTP先に「移動」したいです。
いきなり移動は出来ないでしょうから、コピーと削除を組み合わせて作りたいと考えています。

フリーソフト「FFFTP」のコマンドラインでアップロード機能を呼び出し、
特定のディレクトリにあるファイルを自動アップロードすることは出来ました。

ところがこの方法では問題があり、転送が成功した・失敗したときの判別が
できないため、転送元のファイルを安全に削除することが出来ません。

また、FTP接続が途中で途切れることが多く、接続先に中途半端な
ファイルサイズの異常ファイルが出来てしまい、目視で確認しながら削除しています。

このような動作を、MS謹製のFTPコマンドで自動化できないでしょうか。

下記の動作をさせたいのですが、これをコマンドorバッチで行うには
どのように記述すればよいでしょうか。

・ディレクトリAにある全ファイルを、FTP接続先のディレクトリBにすべてコピー
・FTP接続先のBに転送したファイルと、転送元のファイルサイズを比較する
・ファイルサイズを元に、正常に移動できたと判断できるファイルは、ディレクトリAから削除
・ファイルサイズが異なっている場合は、異常転送ファイルと見なし、再度転送する。
・全部のファイルを転送したら、バッチを終了。

FTPアドレス C.com
アカウント DDD
パスワード EEE
転送ファイルの種類:テキスト
SSL:なし

OSは2Kです。BATでもwshでもかまいません。どうかよろしくお願いします。


591 :名無し~3.EXE:2006/12/17(日) 16:15:10 ID:+i+SBATY
サウンドとオーディオデバイスのプロパティ>オーディオ>音の再生

を任意のデバイスに切り替えたいのですがそのコマンドはどう書けばいいのでしょうか?
Control.exe Mmsys.cpl,,2
これ以降が分かりません。

592 :名無し~3.EXE:2006/12/17(日) 18:46:32 ID:ahAVL3DJ
えーといろいろ探しててここに流れ着いたんだが、
おまいらコマンドプロンプトの文字色と背景色何にしてる?

MySQLとか叩くので見易さの配色を追求したいのだが、
あっても、背景を明るく、文字を濃い色でっつうヒントしかない。

ヒントください。

593 :名無し~3.EXE:2006/12/17(日) 19:28:06 ID:WscTpZLE
color ce

594 :名無し~3.EXE:2006/12/17(日) 20:24:53 ID:H4aSBfXu
COLOR コマンドは、Windows2000、XPからです。
Win95/98をお使いの方は、例えば「窓の手」などを使えば出来ます。

595 :名無し~3.EXE:2006/12/17(日) 20:55:42 ID:rBykiDhm
95/98ではpromptで設定してたなぁ
prompt $e[;33;1;40m$p$g

596 :名無し~3.EXE:2006/12/19(火) 16:11:42 ID:Iyp0VyJJ
consoleおもすろ

597 :名無し~3.EXE:2006/12/19(火) 17:09:29 ID:1Fdabpp+
>>consoleおもすろ

あれでKDEのkcomsoleとかmacのあれとかscreenばり
に使えるなら最高なのにね

残念で泣けてくる
なんて重いんだ。cygwinがサクサクじゃないか
なぜに.Netのような

もっさーで
凶過負荷な処理なんだ

ほんとwinのコマンドプロントはあれ
処理がもの凄く重い

たまに使うけどね。常用する気になれないよなぁ

素のプロントにもどたよ。

したければcygwin入れるのがいいと思う。
比べてもの凄く軽くて驚愕('A`

598 :名無し~3.EXE:2006/12/19(火) 20:11:59 ID:HVfooesm
なに言いたいのか分かんねーよ。
素のプロントとかコマンドプロントとか何だよ。意味わかんねーから。プロンプトだろ。

要するに『cygwin良いよ』てことだろ?ならそー書けって。無駄多すぎ。95点。


599 :名無し~3.EXE:2006/12/19(火) 20:14:55 ID:dxr5JYH7
>>598
95点もやるのか?
60点あれば充分じゃん。(大甘だけどな)

600 :名無し~3.EXE:2006/12/19(火) 20:21:17 ID:S/+BR6iP
> ほんとwinのコマンドプロントはあれ
> 処理がもの凄く重い

> したければcygwin入れるのがいいと思う。
> 比べてもの凄く軽くて驚愕('A`

矛盾していると思うのは自分だけ?

601 :名無し~3.EXE:2006/12/19(火) 22:55:14 ID:U7ZLqMIR
>>599
小数点付け忘れてねえか?

602 :599:2006/12/20(水) 00:04:47 ID:GNDOcEV8
正直なところ(内心評価)、100点満点で、0.60点ってところかな。
一応合格っていうことにすれば、60点(合格基準)っていっただけ。
本当は合格どころじゃないんだけどな。

603 :名無し~3.EXE:2006/12/20(水) 00:32:01 ID:eaArVi2n
よく分からんが、.NETとか出てるところから推測すると
常用できない重いコマンドプロンプトってのは少し上で出てた例のアレで
それを使うくらいならlinuxの方にしとけってことを言ってるのかな?

604 :名無し~3.EXE:2006/12/20(水) 04:04:40 ID:y3J2eMDr
PowerShellの話か?
あれは確かに初期化で時間食うから使うの止めた

605 :名無し~3.EXE:2006/12/21(木) 01:22:15 ID:og2psukl
管理者権限でログオンしているかどうか調べるにはどうしたらいい?
ローカル・ドメイン両方で使えるやつを頼むよ。

606 :名無し~3.EXE:2006/12/21(木) 02:13:10 ID:n0KXcipt
net user
net group / net localgroup
じゃダメ?

607 :名無し~3.EXE:2006/12/21(木) 22:53:35 ID:og2psukl
バッチでやるなら、こんな感じ?
検証はしてないが・・・

NET LOCALGROUP ADMINISTRATORS | FIND "%USERNAME%" >NUL
IF NOT ERRORLEVEL 1 (
ECHO 管理者権限を持つユーザと認識しました
) ELSE (
NET GROUP ADMINISTRATORS 2>NUL | FIND "%USERNAME%" >NUL
IF NOT ERRORLEVEL 1 (
ECHO NTドメイン環境の管理者権限を持つユーザと認識しました
) ELSE (
echo 管理者権限の無いユーザでログオンしています
)
)


608 :名無し~3.EXE:2006/12/22(金) 04:11:55 ID:Gts2GbNx
そのユーザー名が
ローカルではAdministratorsに、グローバルではDomain Usersに所属してるとすると
(ごく普通のケース)
今そのユーザー名でローカルにログインしてるのか
ドメインサーバーにログインしてるのかをまず切り分けなきゃ。

609 :605:2006/12/22(金) 20:48:14 ID:XuMQmg9z
何だか難しそう・・・orz
調べれば調べるほど敷居が高く感じる・・・(汗)
サンプルがあるといいのだが・・・

610 :名無し~3.EXE:2006/12/22(金) 21:30:25 ID:Cv8wg2nv
コンピュータ名とホスト名の付け方が特殊だと駄目かもしれないけど、
if "%LOGONSERVER%"=="\\%COMPUTERNAME%"で判別可能かも。
もしくはwhoamiコマンドとか。

あと、漏れが昔やったことあるのは、対象のマシンが特定できる環境
だったので、管理共有から中が見れるかどうかで判別したことがある。


>今そのユーザー名でローカルにログインしてるのか
>ドメインサーバーにログインしてるのかをまず切り分けなきゃ。

日本語的にすごく違和感感じた。

「ローカルのユーザーでログオンしてるのか
 ドメインのユーザーでログオンしてるのか」

と書いたほうがいいと思った。

611 :名無し~3.EXE:2006/12/23(土) 00:06:20 ID:TSxTwauU
net gruop
このコマンドは Windows ドメイン コントローラでのみ使用できます。

ダメじゃん。使えね。

612 :名無し~3.EXE:2006/12/24(日) 23:50:47 ID:rAnywQRM
at

613 :名無し~3.EXE:2006/12/25(月) 00:11:41 ID:ChhrdGK3
>>612
AT...O・・・? ATO? 後、10分でイブが終わるとか?

614 :名無し~3.EXE:2006/12/25(月) 03:51:26 ID:VXU/kg7V
>>611
net group /domain

615 :名無し~3.EXE:2006/12/26(火) 12:49:58 ID:y+kCCyOO
チラ裏・・・備忘録
Cドライブ直下に今日の日付のフォルダを作成する。

@echo off
echo チラ裏にでも書いてろ
for /f "tokens=1,2,3* delims=/ " %%i in ('date /t') do (set yyyy=%%i& set mm=%%j& set dd=%%k)
for /f "tokens=1,2* delims=:" %%i in ('time /t') do (set hh=%%i& set nn=%%j)
md "C:\%yyyy%年%mm%月%dd%日%hh%時%nn%分\"
echo>>"C:\%yyyy%年%mm%月%dd%日%hh%時%nn%分\Log.txt"フォルダを作成しました。
pause

616 :名無し~3.EXE:2006/12/28(木) 09:10:35 ID:5F6FvSdu
>615
MKDIR "C:\%DATE:~-10,4%年%DATE:~-5,2%月%DATE:~-2%日"

617 :名無し~3.EXE:2006/12/28(木) 16:01:59 ID:iTWT+95w
>>615
日替わり時の考慮

618 :名無し~3.EXE:2006/12/28(木) 18:40:48 ID:hfOxm6M9
>>616
C:\06/1年/2月 木日

619 :名無し~3.EXE:2006/12/28(木) 22:44:23 ID:iTWT+95w
MD $$$
FOR %%0 IN ($$$) DO FOR /F "tokens=1-5 delims=/: " %%1 IN ("%%~t0") DO REN $$$ %%1年%%2月%%3日%%4時%%5分


620 :名無し~3.EXE:2006/12/29(金) 02:49:52 ID:iPyKEow9
>>615
for /f "tokens=1,2,3* delims=/ " %%i in ('date /t') do (set yyyy=%%i& set mm=%%j& set dd2=%%k)
for /f "tokens=1,2* delims=:" %%i in ('time /t') do (set hh=%%i& set nn=%%j)
for /f "tokens=1,2,3* delims=/ " %%i in ('date /t') do (set yyyy=%%i& set mm=%%j& set dd=%%k)
if not %dd2%==%dd% for /f "tokens=1,2* delims=:" %%i in ('time /t') do (set hh=%%i& set nn=%%j)

>>616
SET DT=%DATE%
MKDIR "C:\%DT:~-10,4%年%DT:~-5,2%月%DT:~-2%日"


621 :615:2006/12/29(金) 15:45:58 ID:cLdyRAMk
>>616-620
いろいろコメント頂き感謝してます。・・・が、当方の理解不足のため返事に困ってます。
>>615は拾ってきたもので、まだ消化不良のネタです。
暫く勉強して、出直します。

174 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)