_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
初心者〜管理者まで必読!コマンドライン(DOS Pt.5)
http://pc8.2ch.net/test/read.cgi/win/1152544955/l50
http://pc10.2ch.net/test/read.cgi/win/1152544955/l50
http://pc11.2ch.net/test/read.cgi/win/1152544955/l50
2ちゃんねる *掲示板に戻る* 全部 1- 最新50
レス数が1000を超えています. 残念ながら全部は表示しません.
初心者〜管理者まで必読!コマンドライン(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
とりあえず置いときますよ.
http://www.seshop.com/book/preview/200309/4798104426-dos.pdf
http://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
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
質疑, 議論とかそんな大そうなスレじゃないし.
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の戻り値 =about= 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
http://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の調整が必要なため, 未だ試していません. ところで.
http://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
x "CommandA && CommandB"
o "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]:2003/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
トンクス.
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
連投すみません. イメージとしてはこれです[下矢印]
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/565comp2file.html
212 :名無し~3.EXE:2006/09/27(水) 01:23:02 ID:9XHxAPx1
http://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
ファイルファイルコピー吹いた. w.
223 :名無し~3.EXE:2006/10/05(木) 21:19:10 ID:saVGMH9k
本当だ! w.
紹介元に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
>http://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
x hogehoge.logはbatファイル起動後生成されるが中身は空です.
o 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
つhttp://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+alpha
これでよさそうです.
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
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
http://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
自己解決しました.
http://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で調べたりしましたがよくわからず, ,
http://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 :
http://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は吐いてくれたかどうだったか忘れたけど.
消しちゃったらしく見つからない.
類似してるのでご存知の方いたら教えて下さい. 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入れるのがいいと思う.
比べてもの凄く軽くて驚愕.
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入れるのがいいと思う.
> 比べてもの凄く軽くて驚愕.
矛盾していると思うのは自分だけ?
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は拾ってきたもので, まだ消化不良のネタです.
暫く勉強して, 出直します.
622 :名無し~3.EXE:2007/01/10(水) 13:31:28 ID:1Ujtu0BX
質問です.
foo.exe の標準出力をプロンプトウィンドウとテキストファイルの両方に出力したいのですが, どうすればいいでしょうか?
ただし, foo.exe は重い処理なので出力されていく様をリアルタイムに確認できるのが条件です.
なので,
foo.exe>log.txt
type log.txt
ではダメです. どうかお知恵をお貸しください.
623 :名無し~3.EXE:2007/01/10(水) 15:47:00 ID:eDrPJ7tb
適当な tee を拾ってくればいい.
624 :名無し~3.EXE:2007/01/12(金) 01:55:50 ID:fkJWsIgg
最小化?というか, DOS窓を開かないで実行する方法は, ないでしょうか.
start /wait notepad
のようにすると, ノートパッドが立ち上がっている間, DOS窓が開き,
タスクバーにも出てしまいます.
バッチファイルじゃなくても可です.
なんとかする方法はないでしょうか?
625 :名無し~3.EXE:2007/01/12(金) 02:28:53 ID:fkJWsIgg
えっと, ショートカットを作って, 最小化で起動すると, ウインドウはでないのですが,
タスクバーに残ってしまいます.
626 :名無し~3.EXE:2007/01/12(金) 02:40:51 ID:fkJWsIgg
shell = WScript.CreateObject("WScript.Shell");
shell.Run("notepad.exe run.js", 1, true);
WScript.Echo("スクリプトを終了します. ");
なんか, 普通にwshでやった方が早そうですね. w.
627 :名無し~3.EXE:2007/01/12(金) 02:40:58 ID:KeWhhVwN
>>624
プロンプトからnotepadを起ち上げて, しかもプロンプトは消したい, ということだろうか?
start notepad
exit
みたいなバッチってことか?
628 :名無し~3.EXE:2007/01/12(金) 02:51:09 ID:fkJWsIgg
>>627
なんですけど, 終了を待ちたいのです.
629 :名無し~3.EXE:2007/01/12(金) 02:52:13 ID:fkJWsIgg
あとついでに質問.
wshを実行ファイル形式にできないでしょうか.
WSH用コンパイラ+ってのを見つけたのですが, 作者のサイトがなくなってました. orz.
ベクターも消えてるし・・・.
630 :名無し~3.EXE:2007/01/12(金) 15:22:13 ID:mqTvRoc6
>>628
cmd /c "notepad.exe"
631 :名無し~3.EXE:2007/01/12(金) 17:54:16 ID:qP/ay6UR
>>629
こっちのヤツじゃダメなん?
http://www.vector.co.jp/soft/win95/prog/se277804.html
632 :名無し~3.EXE:2007/01/12(金) 19:48:57 ID:SSoVDVD9
結局, >>626の方法でやってしまいました.
>>631
エラーが出てまともに使えません.
633 :名無し~3.EXE:2007/01/13(土) 03:47:27 ID:kPVhqETK
>>9
たとえばフォルダ内にパッチが幾つもあって.
dirでそれらをリストにするかして.
それらにコマンドラインをくっつけて一括で実行するにはどうしたらいいの?
種類ごと大雑把だけどこんな感じにリストを吐き出せたけど.
dir Q*.exe /b>Qlist.txt
dir Windows2000*.exe /b>Wlist.txt
そっから先わからんちん.
634 :名無し~3.EXE:2007/01/13(土) 09:18:10 ID:bfcWSwa4
echo @echo off > KBlist.bat
dir Windows*KB*.exe /b >> KBlist.bat
編集で.exeを.exe -n-z-qにすべて置換.
こんなことしか思いつきません・・・.
635 :名無し~3.EXE:2007/01/13(土) 10:03:27 ID:SuZfHdbT
素人ですが教えてください.
あるソフトを起動するbatファイルを作成したのですが,
そのソフトを起動したらbatファイルを勝手に閉じたいのですが.
コマンドがわかりません.
どなたか教えてください.
636 :名無し~3.EXE:2007/01/13(土) 11:56:19 ID:+F6wFcR9
>>635
>>627
637 :名無し~3.EXE:2007/01/13(土) 12:08:16 ID:SuZfHdbT
635です.
637でうまく行きました. ありがとう.
638 :名無し~3.EXE:2007/01/13(土) 23:46:49 ID:BdlKHbf+
詳しい方が多いようなので教えてください.
内容はと言うと, Cドライブに帳票というフォルダがあります.
このフォルダの中には, 080101帳票 080102帳票 ・・・・等.
毎日作成されるエクセルファイルがたまっています.
そして, そのフォルダの中の一番新しいファイルをAドライブの.
フロッピーディスクに, 帳票という名前に変えてファイルをコピーする.
BATファイルを作りたいのです.
どうぞ宜しくお願いします.
639 :名無し~3.EXE:2007/01/14(日) 00:11:43 ID:ML+aCZll
@echo off
for /f %%i in ('dir /o-n /b C:\帳票\*帳票.xls') do (
echo "%%~fi" A:\帳票.xls
goto :eof
)
640 :名無し~3.EXE:2007/01/14(日) 00:13:17 ID:ML+aCZll
echo -> copy /y
641 :名無し~3.EXE:2007/01/14(日) 00:46:26 ID:DGqWZ2TH
>>639 ありがとうございます.
@echo off
for /f %%i in ('dir /o-n /b C:\帳票\*帳票.xls') do (
copy /y "%%~fi" A:\帳票.xls
goto :eof
)
>>640も合わせて [上矢印] こんな感じなのでしょうか?
試してみたのですが, どうもうまく動きません・・OTL...オバカですんません.
642 :名無し~3.EXE:2007/01/14(日) 00:51:31 ID:ML+aCZll
そうですか, それは残念.
643 :名無し~3.EXE:2007/01/14(日) 00:56:23 ID:DGqWZ2TH
見捨てないで・・・OTL
644 :名無し~3.EXE:2007/01/14(日) 01:30:14 ID:4ceN/aT3
@echo off
for /f "usebackq" %%i in (`dir /o-n /b "C:\帳票\*帳票.xls"`) do (
copy /y "%%~fi" A:\帳票.xls
goto :eof
)
:eof
でどうだろう.
645 :638:2007/01/14(日) 01:44:50 ID:DGqWZ2TH
>>644
一瞬コマンドプロンプトの黒い窓が見えるだけで何も起こりません・・・.
私の環境に問題があるのかなぁ・・・・OTL
これからリカバリーディスクぶち込んでみますので, しばらく落ちます.
646 :名無し~3.EXE:2007/01/14(日) 01:45:37 ID:DGqWZ2TH
ホント申し訳ないです. すみません.
647 :名無し~3.EXE:2007/01/14(日) 01:53:00 ID:ZJ4t0Fvk
>>646
>一瞬コマンドプロンプトの黒い窓が見えるだけ.
goto :eofの前に一行pauseって入れてみれば.
ってかA:\の中身を確認してみなよ.
648 :名無し~3.EXE:2007/01/14(日) 15:46:52 ID:JTXqH0CO
fsutil hardlink create 既存のファイル 作成したい新しいファイル.
で, WindowsXPでもハードリンクが作成できますが, これを.
1. 既存のファイルの所に指定したディレクトリ以下の全てのファイルを対象とし.
2. 作成したい新しいファイルを他のディレクトリ内に1. で指定したファイルを全て.
同じファイル名でハードリンクを作成したいのですが, どうしたらいいですか?
fsutil hardlink create "D:\IE_Temp\Temporary Internet Files\*" "D:\集める"
fsutil hardlink create "D:\temp\*" "D:\集める"
D:\IE_Temp\Temporary Internet Files\ フォルダの中の全てのファイルを.
D:\集める\ フォルダの中に同じファイル名でハードリンクを張りたいのです.
D:\temp\ フォルダの中の全てのファイルを.
D:\集める\ フォルダの中に同じファイル名でハードリンクを張りたいのです.
これを複数のフォルダ登録してbatファイルで処理したいのですが, うまくいきません.
C:\test>fsutil hardlink create "D:\temp\*" "D:\集める"
エラー: ファイル名, ディレクトリ名, またはボリューム ラベルの構文が間違っていま.
す.
C:\test>fsutil hardlink create "D:\IE_Temp\Temporary Internet Files\*" "D:\集め.
る"
エラー: ファイル名, ディレクトリ名, またはボリューム ラベルの構文が間違っていま.
す.
このようになってしまいます. 指定の仕方がおかしいんだと思いますが, どうすれば.
いいのでしょうか? delコマンドとかだと.
echo Y | del \temp\*
とかでOKなのですが・・・.
649 :名無し~3.EXE:2007/01/14(日) 15:52:49 ID:ML+aCZll
for %i in (D:\TEMP\*) do fsutil hardlink create %i D:\集める\%~ni
650 :名無し~3.EXE:2007/01/14(日) 15:59:35 ID:JTXqH0CO
>>649
上手くいきませんねぇ・・・.
ラストの %~ni
ってなんですか?
651 :名無し~3.EXE:2007/01/14(日) 16:01:04 ID:bJYSSOCA
for /?
652 :名無し~3.EXE:2007/01/14(日) 16:10:41 ID:JTXqH0CO
>>651
grepもlessも無いのにコマンドプロンプトのヘルプとか読む気がしないOTL
653 :名無し~3.EXE:2007/01/14(日) 16:12:38 ID:JTXqH0CO
いや, ごめんね.
for /? > for.txt
してメモ帳で見た.
%~nI - %I をファイル名だけに展開します.
これだけじゃよくわからんよ・・・・.
654 :名無し~3.EXE:2007/01/14(日) 16:13:20 ID:KhCYvvtR
パイプを知っているのにリダイレクトを知らんとな.
655 :名無し~3.EXE:2007/01/14(日) 16:15:47 ID:ZJ4t0Fvk
他OSアレルギーてやつですな.
645のその後が気になるがふっとんじゃったんだろか.
656 :名無し~3.EXE:2007/01/14(日) 16:16:45 ID:ML+aCZll
>>650
BATの中に書くのなら % -> %% に.
657 :名無し~3.EXE:2007/01/14(日) 16:18:53 ID:ML+aCZll
つーか %~nxi だな.
658 :名無し~3.EXE:2007/01/14(日) 16:30:47 ID:JTXqH0CO
じゃあbatの中に書くので.
for %%i in (D:\TEMP\*) do fsutil hardlink create D:\集める\%%~ni %%i
って事?
659 :名無し~3.EXE:2007/01/14(日) 16:39:14 ID:iKJbxj82
do echo fsutil ・・・.
にして実行してみりゃいいじゃん.
660 :645:2007/01/14(日) 18:16:25 ID:DGqWZ2TH
>>647
645です.
復活に手間取っておりました・・・ノートンノバカ...いや私ですね・・・OTL
アドバイス通りに試してみました. すると, 「指定したファイルが.
みつかりません」と表示されて, エンターキー連打で終了します.
Aドライブには何も入りません・・・・.
いろいろ面倒かけちゃって済みません. ペコリ.
661 :名無し~3.EXE:2007/01/14(日) 18:39:17 ID:4ceN/aT3
>>660
@echo off
for /f "usebackq" %%i in (`dir /o-n /b "C:\帳票\*帳票.xls"`) do (
copy /y "%%~fdpnxi" A:\帳票.xls
goto :eof
)
:eof
ならどうだろう?(未検証だが)
662 :名無し~3.EXE:2007/01/14(日) 18:49:53 ID:ZJ4t0Fvk
目当てのフォルダ以外で実行すると失敗するっぽい.
原因究明めんどくさいので>>644.batをC:\帳票に放り込んでおいて.
もう一つ任意のフォルダにバッチファイル作ってcall ">>644.bat" で.
663 :645です:2007/01/14(日) 19:19:05 ID:DGqWZ2TH
>>662
うぉお〜動いたーと思ったのですが, 動いたんです確かに.
しかしながら, C:\帳票に入ってる帳票のファイルの数だけ.
Aドライブの帳票.xlsを上書きしようとします. 一番新しいヤツだけ.
コピーできたら完璧なんですが・・・・わがまま言って申し訳ないです.
664 :名無し~3.EXE:2007/01/14(日) 19:25:59 ID:DGqWZ2TH
うわぁぁ!すみません. >>644.batの記述を.
見逃していました!! うまく動きました〜!!
完璧です. . うれしいです. .
またなにかお世話になるかも・・・・って少しは勉強します.
本当にありがとうございました. . .
665 :名無し~3.EXE:2007/01/14(日) 19:39:53 ID:ZJ4t0Fvk
>>664
おめでと.
>>644でも"%%~fi"じゃなくて"C:\帳票\%%i"だとうまく行くから何か悪さしてるかね.
666 :名無し~3.EXE:2007/01/14(日) 20:37:06 ID:JTXqH0CO
本当にわけがわからなくなってきました.
D:\a以下のファイル及びフォルダをD:\b以下に全コピー, しかしハードリンクでやるので容量は.
全く食わない. そういうことをやりたいんですが, , , 結局どうしたら?
for %i in (D:\a\*) do fsutil hardlink create d:\b\%~nxI %i
って事なの?モニュ・・・.
667 :名無し~3.EXE:2007/01/14(日) 20:37:28 ID:ML+aCZll
サブフォルダが無いなら.
dir /o-n /b /s C:\帳票\*帳票.xls
にすればフルパスになるけど・・・.
668 :名無し~3.EXE:2007/01/14(日) 21:02:41 ID:JTXqH0CO
for %i in (D:\a\*) do fsutil hardlink create d:\b\%~nxi %i
これだと1つの階層内のファイルに対してしか出来ないね.
再帰的にその下のフォルダにもかけていきたいんだけど, どうすりゃいいの?モニュ・・・.
669 :名無し~3.EXE:2007/01/14(日) 21:07:37 ID:ML+aCZll
>>668
こんなんでどう?
もっと簡単にできるかな?
@echo off
setlocal enableextensions enabledelayedexpansion
set SRC=D:\a
set DEST=D:\b
xcopy /t /e /y "%SRC%" "%DEST%"
for /f "delims=" %%I in ('dir /s/b/a-d "%SRC%\*"') do (
set FILE=%%I
set FILE=!FILE:%SRC%=%DEST%!
FSUTIL hardlink create "!FILE!" "%%~I"
)
670 :名無し~3.EXE:2007/01/14(日) 21:15:09 ID:JTXqH0CO
>>669
い, , , 意味がわからんぜよ・・・.
そのスクリプト何してるか全然分からない・・・解説キボンヌ・・・.
671 :名無し~3.EXE:2007/01/14(日) 21:15:23 ID:ML+aCZll
for /r "%SRC%" %%I in (*) do (
のほうが素直だね.
672 :名無し~3.EXE:2007/01/14(日) 21:24:43 ID:ML+aCZll
@echo off
: 拡張機能と環境変数の遅延展開を有効に.
setlocal enableextensions enabledelayedexpansion
: フォルダを変数にセット.
set SRC=D:\a
set DEST=D:\b
: フォルダ構造だけコピー.
xcopy /t /e /y "%SRC%" "%DEST%"
: サブフォルダも再帰的にfor
for /r "%SRC%" %%I in (*) do (
set FILE=%%I
: ファイルパスの中のSRCをDESTに置換.
set FILE=!FILE:%SRC%=%DEST%!
FSUTIL hardlink create "!FILE!" "%%~I"
)
673 :名無し~3.EXE:2007/01/14(日) 21:35:27 ID:ZJ4t0Fvk
>>667
ぐは, パスの深いそうで試してて気付かなかった自分アホス・・・ごめんよID:DGqWZ2TH
>>670
確かXP標準のハードリンク作成機能じゃフォルダには適用できなかったような.
こんなのはあるけれど.
http://www.vector.co.jp/soft/winnt/util/se184746.html
674 :名無し~3.EXE:2007/01/14(日) 21:36:59 ID:/esMqGsV
>>673
リンクにしたいのはファイルだけでフォルダは普通に作るんでしょ.
675 :名無し~3.EXE:2007/01/14(日) 21:40:46 ID:JTXqH0CO
>>672
ご丁寧にありがとうございます.
Linuxのシェルスクリプトとはだいぶ勝手が違って戸惑っています.
: でコメントにもなるんですね, コピペしても動作します.
変数の中身を参照するにはLinuxだと${SRC}ですが, batファイルだと.
"%SRC%"なんですね.
とりあえずこれで, 自分が同期したいフォルダに.
set SRC=D:\a
set DEST=D:\b
の二行を書き換える事でやりたい事が実現できます. 本当にありがとうございます.
しかしソース自体に手を加えるのは正直ちょっと怖かったりもします.
日本語のフォルダ名とか大丈夫かなぁ・・・.
なので, もし可能ならで構いませんので,
hardlink.bat SRC DEST
というように引数を2つ与えて目的のフォルダを同期できないでしょうか?
それならソースをいじって書き直す必要がなくなるんですが・・・難しいかな?
DOSのbatがどれほどの事が出来るのか知りませんが, LinuxのCUIよりはるかに.
低機能だと聞いたもので・・・.
676 :名無し~3.EXE:2007/01/14(日) 21:42:20 ID:ZJ4t0Fvk
>>674
あーよく読んでなかった, 馬鹿は退散しよう.
677 :名無し~3.EXE:2007/01/14(日) 21:43:18 ID:JTXqH0CO
>>673
そのソフトはハードリンクについて調べているときに既に見つけてますが.
私がやりたい事は, この作成して頂いたbatファイルをWindowsXP標準の.
タスクスケジューラにかけて, 3時間に1回実行とか, 1日に1回実行とか.
そういう風にやりたいんです. これで定期的にバックアップが取れるので.
>>674
その通りです.
678 :名無し~3.EXE:2007/01/14(日) 21:45:40 ID:ML+aCZll
>>675
if "%~2"=="" goto :eof
set SRC=%~1
set DEST=%~2
日本語までは知らん.
それとbatからbat呼ぶ時はcallしろよ.
679 :名無し~3.EXE:2007/01/14(日) 21:50:33 ID:ML+aCZll
それと「 : 」はコメントじゃなくてラベルだ.
コメント書くのは反則技だからちゃんと rem 使った方がいいぞ.
つか, バックアップの意味あるのか?
680 :名無し~3.EXE:2007/01/14(日) 21:52:17 ID:bJYSSOCA
cp -R -d -l
ってやっちゃいたいところだ.
681 :名無し~3.EXE:2007/01/14(日) 21:55:04 ID:/esMqGsV
> それと「 : 」はコメントじゃなくてラベルだ.
> コメント書くのは反則技だからちゃんと rem 使った方がいいぞ.
えー結構使ってるのに.
「 : 」の後に空白入れておけば間違ってジャンプする危険もないし.
> つか, バックアップの意味あるのか?
ハードリンクは同じドライブにしか作れないし実体が壊れたら.
「バックアップ」も壊れるしどう考えても意味ありません.
682 :名無し~3.EXE:2007/01/14(日) 21:56:30 ID:JTXqH0CO
>>678
その3行をさっき作って頂いた.batファイルの先頭に記述したら良いという事では.
無いのですか?そのファイルを別個.batに保存して, そのファイルからcallで呼び出して.
やらないとだめですか?もしそうならファイルが2つになるのは嫌なので.
ソースをいじった方が楽になっちゃいますけど, , , 1つのファイルで引数ってムリデスカ?
日本語通りました. 「んっふっふーw」とか「これはききましたよぅ〜」とか変な日本語の.
フォルダ作って実行してみたらきちんといけてます. w.
Windowsは日本語に強いなぁ・・・.
>>679
>つか, バックアップの意味あるのか?
これだけだと意味がないですが, そこはそれ, LinuxのBackupシステムが待ち受けています.
それと連動させれば素晴らしいバックアップシステムが出来上がります.
@echo off
rem 拡張機能と環境変数の遅延展開を有効に.
setlocal enableextensions enabledelayedexpansion
rem フォルダを変数にセット.
set SRC=D:\a
set DEST=D:\b
rem フォルダ構造だけコピー.
xcopy /t /e /y "%SRC%" "%DEST%"
rem サブフォルダも再帰的にfor
for /r "%SRC%" %%I in (*) do (
set FILE=%%I
rem ファイルパスの中のSRCをDESTに置換.
set FILE=!FILE:%SRC%=%DEST%!
FSUTIL hardlink create "!FILE!" "%%~I"
)
rem使えってこういうことですかね.
683 :名無し~3.EXE:2007/01/14(日) 22:00:29 ID:JTXqH0CO
>>680
.batファイルだとこれだけ苦労していますが, 確かにLinuxなら.
$ cp -Rl /a /b /* -dは要るかな? */
で一発で出来ますね. それをcronで回すだけw.
ヤバイ!本当にLinuxのCUIって素晴らしいんだと今実感した瞬間. w.
DOSのCUIしょぼす. w.
参考:-dオプションの解説.
-d, --no-dereference
シンボリックリンクをコピーする場合, シンボリック リ.
ン クが指しているファイルをコピーするのではなく, シ.
ンボリックリンクとしてコピーする. また, コピー元 で.
の ハードリンクはコピー先でもハードリンクとして保持.
される.
684 :名無し~3.EXE:2007/01/14(日) 22:06:33 ID:ML+aCZll
>>682
set SRC=D:\a
set DEST=D:\b
の2行を次の3行に痴漢するだけでいいよ.
if "%~2"=="" goto :eof
set SRC=%~1
set DEST=%~2
callしるといったのは, たとえば3つコピーしたいなら次のようなbatかけって事.
call 省略するとひとつめしか実行されないからね.
@echo off
call hardlink.bat "D:\aaa" "D:\back\aaa"
call hardlink.bat "D:\bbb" "D:\back\bbb"
call hardlink.bat "D:\ccc" "D:\back\ccc"
685 :名無し~3.EXE:2007/01/14(日) 22:42:24 ID:ML+aCZll
これちゃんとハードリンクもサポートしてるな.
http://www.ossh.com/gnu-win32/cp.exe
686 :名無し~3.EXE:2007/01/14(日) 22:44:08 ID:/esMqGsV
つーかCygwinでいいじゃん.
もはやスレ違いだけど.
687 :名無し~3.EXE:2007/01/15(月) 12:50:47 ID:JZ8tDTCV
コマンドライナーは, cygwin入れるのは必須だと思ってたが・・・.
688 :名無し~3.EXE:2007/01/15(月) 20:35:49 ID:sOENVtLv
>>687
業務だとそうもいかんでしょ.
689 :名無し~3.EXE:2007/01/15(月) 21:09:11 ID:O2bsbprp
だから標準のコマンドだけでなんとかまかなう技が重宝されるわけで.
もっとも>>1をよく見直したら.
> wsh(cscript), cygwin, Resource Kit, Support Tools, その他のフリーソフト等ふくめ.
> コマンドラインインタフェースに関するネタならなんでもOK.
スレ違いでもなかったのか.
690 :名無し~3.EXE:2007/01/15(月) 21:56:18 ID:LA72L3Es
そもそもLinuxなBackupSystemなるものがあるのなら.
市販バックアップソフトでも買ってSamba領域へ放り込む.
けどな. 手段と目的が錯綜してるべ.
691 :名無し~3.EXE:2007/01/21(日) 16:36:33 ID:Fh16rOUX
誘導されてきました.
WinXPのDOS窓で壁紙の変更したいので.
regedit /E \\HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper D:\abc.bmp
としたのですが, 変化ありません.
やりかた教えてください.
692 :名無し~3.EXE:2007/01/21(日) 17:21:49 ID:amfxJQxk
レジストリ書き換えてもそのレジストリを誰が読むか考えれ.
普通はAPIで壁紙を変更する.
693 :名無し~3.EXE:2007/01/21(日) 17:27:34 ID:HIyMH95U
>>691
レジストリを変更するだけなら, これで変更できるよ. ただ, 画面には反映されない.
画面のプロパティ>デスクトップ には反映される.
REG ADD "HKCU\Control Panel\Desktop" /f /v ConvertedWallpaper /t REG_SZ /d
"C:\砂浜.JPG"
694 :名無し~3.EXE:2007/01/21(日) 18:30:16 ID:eMwqitJ2
レジストリを変更した後, これすれば.
RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters
695 :名無し~3.EXE:2007/01/21(日) 18:40:15 ID:HIyMH95U
>>694
ここを見て, そのコマンドを使ってみたけど,
http://www.jsifaq.com/SF/Tips/Tip.aspx?id=10732
うちの環境では変更できなかったよ. そちらはどう?
696 :名無し~3.EXE:2007/01/21(日) 18:53:24 ID:Fh16rOUX
>>694
レスありがとうございます.
うまくいきました.
697 :名無し~3.EXE:2007/01/21(日) 18:58:20 ID:0GAiR7Wm
DaemonToolsスレ過疎ってるのでここで質問させてください.
ふとプロンプトでnetstat -anbv打ったら, daemon(ver3.47)の仮想ドライブが「ディスクがありません」と怒られまくりました.
どうやらイメージをマウント->アンマウント後にプロンプトでcpu100%になるような負荷が大きい作業すると起こるみたいです・・・.
PC再起動すれば直るんだけど一度でも何かをマウントすると再発します.
原因はなんでしょう?実害は無いし, スレ違い気味ですがよろしくお願いします.
698 :名無し~3.EXE:2007/01/21(日) 22:26:54 ID:fXHv4RQu
スレ違い承知な馬鹿は死んでいいよ.
699 :名無し~3.EXE:2007/01/21(日) 23:58:04 ID:0GAiR7Wm
すいません. 一応netstatのエラーでもあるようなので質問させてもらいました.
コマンドプロンプトの質問はどこですればいいですか?
700 :名無し~3.EXE:2007/01/22(月) 00:47:54 ID:EWkB3kFF
>>700
コマンド・プロンプトの質問ではないよ.
701 :700:2007/01/22(月) 00:48:47 ID:EWkB3kFF
>>699
の間違いですた. すみませぬ.
702 :名無し~3.EXE:2007/01/22(月) 03:01:10 ID:lHhcp0GG
うはwwほんとだ.
netstat.exeがエラーメッセージ吐きまくりキャンセル押しまくりだわ. w.
703 :名無し~3.EXE:2007/01/22(月) 12:42:19 ID:jJx2R64E
>>697
そういうバグっぽいのはここじゃ解決できんよ.
デーモン側な気もするし.
704 :名無し~3.EXE:2007/01/22(月) 22:57:33 ID:8ACQJu4z
ちょっときになった俺が着ましたよ.
705 :名無し~3.EXE:2007/01/23(火) 13:38:10 ID:peYBszvv
BAT初挑戦で途中で詰まってしまったので力を借りにきますた.
FTPで指定したファイルを自動的に取りに行くバッチを拵えてるんだけど.
getしに行く先のディレクトリが可変の通日で, その中から特定のファイルだけ取得っていう流れ.
asc
cd /data/2007
cd 023 #例えば今日の通日だと023
lcd C:\download
prompt
mget afilelog023*
mget bfilelog023* #ファイル名の023の部分が通日, その後ろは色んな拡張子.
毎回エディタで通日だけ置換してやってるんだけど.
通日を変数に割り当てて置換箇所を1箇所だけに済ませる方法って無いんですかね?
706 :名無し~3.EXE:2007/01/23(火) 14:04:36 ID:dt3S76pM
type makeget.bat
echo asc
echo cd /data/2007
echo cd %1
echo lcd C:\download
echo prompt
echo mget afilelog%1*
echo mget bfilelog%1*
makeget.bat 023 > get023.bat
707 :名無し~3.EXE:2007/01/23(火) 14:33:35 ID:peYBszvv
>>706
即レスサンクス.
処理テンプレ作って, %1のパラメータにコマンドラインから直接通日を投げてバッチを作成するバッチ.
でいいのかしら.
708 :名無し~3.EXE:2007/01/23(火) 14:40:34 ID:+1q+g6Qo
通日の意味がよくわからんけど, 日付に0を付けて三桁にしたいのであれば,
set d= %date%
echo 0%d:~-2, 2%
これでいけると思うが, どうだろう.
709 :名無し~3.EXE:2007/01/23(火) 15:33:04 ID:peYBszvv
>>708
サンクスコ.
参考にする.
通日は1月1日が001, 12月31日が365 月の概念無くした1年の数え方みたいな感じ.
710 :名無し~3.EXE:2007/01/23(火) 22:01:24 ID:+1q+g6Qo
ついでにこんなのもいける. 通日の代わりになるかも.
set d= %date%
set t= %time%
echo %d:~-10, 4%年%d:~-5, 2%月%d:~-2, 2%日%t:~-11, 2%時%t:~-8, 2%分.
711 :名無し~3.EXE:2007/01/23(火) 23:12:48 ID:ksHGSsOt
@echo off
setlocal
set YYYYMMDD=%DATE%
set YYYY=%YYYYMMDD:~, 4%
set MM=%YYYYMMDD:~4, 3%
set MM=%MM:/0=%
set MM=%MM:/=%
set DD=%YYYYMMDD:~7, 3%
set DD=%DD:/0=%
set DD=%DD:/=%
set /a YYYY_A1 = YYYY / 4
set /a YYYY_A2 = YYYY_A1 * 4
set /a YYYY_B1 = YYYY / 100
set /a YYYY_B2 = YYYY_B1 * 100
set /a YYYY_C1 = YYYY / 400
set /a YYYY_C2 = YYYY_C1 * 400
712 :名無し~3.EXE:2007/01/23(火) 23:13:24 ID:ksHGSsOt
>>711からの続き.
set /a URUU = 0
if /i %YYYY_A2% EQU %YYYY% set /a URUU = 1
if /i %YYYY_A2% EQU %YYYY% if /i %YYYY_B2% EQU %YYYY% set /a URUU = 0
if /i %YYYY_A2% EQU %YYYY% if /i %YYYY_B2% EQU %YYYY% if /i %YYYY_C2% EQU
%YYYY% set /a URUU = 1
if /i %MM% GEQ 1 set /a TSUJITSU = 0
if /i %MM% GEQ 2 set /a TSUJITSU = TSUJITSU + 31
if /i %MM% GEQ 3 set /a TSUJITSU = TSUJITSU + 28
if /i %MM% GEQ 4 set /a TSUJITSU = TSUJITSU + 31
if /i %MM% GEQ 5 set /a TSUJITSU = TSUJITSU + 30
if /i %MM% GEQ 6 set /a TSUJITSU = TSUJITSU + 31
if /i %MM% GEQ 7 set /a TSUJITSU = TSUJITSU + 30
if /i %MM% GEQ 8 set /a TSUJITSU = TSUJITSU + 31
if /i %MM% GEQ 9 set /a TSUJITSU = TSUJITSU + 30
if /i %MM% GEQ 10 set /a TSUJITSU = TSUJITSU + 31
if /i %MM% GEQ 11 set /a TSUJITSU = TSUJITSU + 30
if /i %MM% GEQ 12 set /a TSUJITSU = TSUJITSU + 31
if /i %URUU% EQU 1 set /a TSUJITSU = TSUJITSU + 1
set /a TSUJITSU = TSUJITSU + %DD%
echo %TSUJITSU%
endlocal
713 :名無し~3.EXE:2007/01/23(火) 23:17:23 ID:ksHGSsOt
うわ早速バグ発見. orz.
39c39
< if /i %URUU% EQU 1 set /a TSUJITSU = TSUJITSU + 1
---
> if /i %MM% GEQ 3 if /i %URUU% EQU 1 set /a TSUJITSU = TSUJITSU + 1
714 :名無し~3.EXE:2007/01/24(水) 03:47:22 ID:eGutPL5I
無理せずWSHを使う.
WScript.Echo DatePart("y", Date())
715 :名無し~3.EXE:2007/01/24(水) 12:35:20 ID:7wyp3Eju
CMD /C D:\XXX.batで.
呼び出されたD:\XXX.bat内の先頭行で自身(DOS窓)を最小化させる.
方法ありますか?
716 :名無し~3.EXE:2007/01/24(水) 12:44:01 ID:NuKUyzmi
>>715
>>293
717 :名無し~3.EXE:2007/01/24(水) 12:44:36 ID:dHR/g94Y
XPのコマンドプロンプトで [mkdir konpaira]と書いてkonpairaってディレクトリー.
作ったんですけど どこにあるかみつかりません・・・・くだらない質問で本当に悪いのですが.
[mkdir konpaira]とかいて作ったディレクトリーはいったいどこに制作されるのかわかりますか?
718 :名無し~3.EXE:2007/01/24(水) 12:52:05 ID:xYc85Zkg
>>717
わかりません.
719 :名無し~3.EXE:2007/01/24(水) 13:00:09 ID:bBeGunZI
>>717
explorer.exe /n, %userprofile%
と打ち込む.
720 :名無し~3.EXE:2007/01/24(水) 13:20:03 ID:h1Q75nUe
>>716
うぅ. . . わからない. . .
721 :名無し~3.EXE:2007/01/24(水) 13:22:13 ID:i0fQettm
呆れるほどスペルマミス.
722 :名無し~3.EXE:2007/01/24(水) 13:38:23 ID:bBeGunZI
>>721
721のことか?
723 :名無し~3.EXE:2007/01/24(水) 14:06:35 ID:h1Q75nUe
>>716
VBSではなくBATファイルなんです. . .
724 :名無し~3.EXE:2007/01/24(水) 14:27:49 ID:NuKUyzmi
BATファイル内から使用できる, 窓を最小化するコマンドは標準ではない.
標準ではないので窓を最小化するスクリプトを作ってBATファイル内から呼んでいる.
BAT内という縛りがなければ, ショートカットやstartとかあるけど.
725 :名無し~3.EXE:2007/01/24(水) 15:03:05 ID:hm3trhnJ
>>715
START /WAIT /MIN "" CMD /C D:\XXX.BAT
あるいは, CMDOW.EXEを使うとか.
726 :名無し~3.EXE:2007/01/24(水) 15:13:11 ID:eGutPL5I
なにかリカージョン対策の工夫が必要だけど,
start /min %~fs0 %*
727 :名無し~3.EXE:2007/01/24(水) 17:02:01 ID:phendHsN
>>717
cd
と打ち込む.
728 :名無し~3.EXE:2007/01/24(水) 17:05:13 ID:Ur+QuDS3
>>726
こんな感じ?
setlocal
if "%リカージョン対策の工夫%"=="" (
set リカージョン対策の工夫=1
start /min %~fs0 %*
exit /b
)
REM 実際のバッチの中身.
exit
729 :名無し~3.EXE:2007/01/24(水) 17:05:40 ID:imNZyNvB
>>717
ベタベタの初期状態なら多分 C:\Documents and Settings\Owner の下だろ.
つーか「konpaira」にはちょっと萎えたぞ. w.
730 :名無し~3.EXE:2007/01/24(水) 19:40:02 ID:ui4jdsDL
すこし質問させてください.
毎回OSを入れなおす度にファイルの関連付けを変えたり, 設定を変えたりするのが非常に煩わしいです.
そこでどなたかファイルの関連付けを一括して変えるBATファイルの組み方をご存知でしたら教えてください.
ソフトウェアでも可ですが, 一括して複数の形式を変えられることを前提としてお願いします.
731 :名無し~3.EXE:2007/01/24(水) 19:42:33 ID:xYc85Zkg
>>730
レジストリ書き出しときゃいいだろ.
732 :名無し~3.EXE:2007/01/24(水) 19:56:10 ID:ui4jdsDL
そうすると目的のやつ以外も元に戻っちゃって入ってないソフトとか変になりませんか?
733 :名無し~3.EXE:2007/01/24(水) 20:09:12 ID:xYc85Zkg
>>732
目的のやつ以外消せばいいだろ.
メモ帳で編集できるの知らないの?
734 :名無し~3.EXE:2007/01/24(水) 20:16:40 ID:1ye7da8u
全部書き出さずに目的の物だけ書き出して結合しときゃいいじゃん.
735 :名無し~3.EXE:2007/01/24(水) 20:16:59 ID:bBeGunZI
>>730
HKEY_CLASSES_ROOTだけエクスポートしたらいいじゃん.
で, 再インスコ後に.regをダブルクリックすりゃOK.
それが嫌ならASSOCコマンドを駆使してくれろ.
736 :名無し~3.EXE:2007/01/24(水) 20:20:03 ID:ui4jdsDL
PC知識がすくなくてよくわからないので検索と知り合いを駆使して勉強してきます.
お邪魔してすいませんでした.
737 :名無し~3.EXE:2007/01/24(水) 22:35:13 ID:Z29D46sA
ちょっと脱線だけど, 自分が戻したいと思ってる設定が何なのか?どこまでなのか?というのも悩ましいとこなんだよな.
「OSインスコして一通りのソフト入れて設定終わった段階のクリーンな状態をイメージバックアップしておく」
なんて考えたときに, いったいどの時点まで戻るのが余計な設定がなく, 且つ再度度設定する手間が省けるのか迷ったりして.
738 :名無し~3.EXE:2007/01/28(日) 22:03:33 ID:GnfJyVWz
WindowsXP Professional SP2使っているのですが.
コントロールパネルのタスクから毎日10時にD:\backup.batファイルを実行するように.
スケジューリングしています.
そのファイルの内容はこちら.
copy /Y D:\image\scheduler.tib \\vine\data\backup\
の1行のみです. D:\image\の中に入っているファイルをVineサーバにバックアップ.
しているのですが, このファイルを単純にタスクに登録していると, 10時になると.
いきなり黒い画面が立ち上がってきてコマンドが実行されたら終了するのですが.
その黒い画面が立ち上がるのがビックリします. もしフルスクリーンで作業してたら.
おそらくフォーカス奪われてフルスクリーンが解除されるとかバグるとか.
そういう不具合がありそうなので, 最小化状態で実行させる, もしくは見えない状態で.
バックグラウンドで実行させる方法は無いでしょうか?
ちなみにbackup.batファイルへのショートカットを作成して, そのショートカットの中から.
最小化して起動するように設定してタスクにショートカットファイルを指定しても.
ダメでした. 良い手はありませんか?
739 :名無し~3.EXE:2007/01/28(日) 22:33:19 ID:Vg16WaYG
フォルダの中にある特定の拡張子のファイルをこちらから用意したa.exeに通したいんですが.
フォルダの中にフォルダがあったりする状況です.
よろしければ教えてください.
740 :名無し~3.EXE:2007/01/28(日) 22:39:34 ID:Vg16WaYG
for /R %f in (*.doc *.txt) do a.exe %f
741 :名無し~3.EXE:2007/01/28(日) 22:41:35 ID:Ab9Pd7B9
>>739-740
自演乙.
742 :名無し~3.EXE:2007/01/28(日) 23:10:30 ID:rah4ivDa
自演じゃなくって病気だとおもう.
743 :名無し~3.EXE:2007/01/28(日) 23:41:21 ID:bulVaiB4
>>738
RunDLL32.EXE Shell32.DLL, ShellExec_RunDLL C:\backup.bat.lnk
744 :名無し~3.EXE:2007/01/28(日) 23:45:36 ID:bulVaiB4
または,
rundll32.exe url.dll, FileProtocolHandler C:\backup.bat.lnk
745 :名無し~3.EXE:2007/01/29(月) 01:24:47 ID:0gczOvYI
>>743-744
レスありがとうございます.
そりゃよくわからないですね・・・.
とりあえず自分で解決できました.
start /min cmd /c copy /Y D:\image\scheduler.tib \\vine\data\backup\
っていう1行書いたバッチファイルを使えば成功しました.
こちらの方が簡単そうでしょ?
746 :名無し~3.EXE:2007/01/29(月) 02:22:52 ID:CHg28K83
>>738
wshでかけばいいと思うよ.
747 :名無し~3.EXE:2007/01/29(月) 02:23:24 ID:CHg28K83
って, えーそんな簡単な方法あるんだ. w.
748 :名無し~3.EXE:2007/01/29(月) 02:41:28 ID:CHg28K83
wshで一時的に環境変数を設定する方法はありませんでしょうか?
バッチファイルで言う,
set HOME=./
みたいなことを指定のですが.
749 :名無し~3.EXE:2007/01/29(月) 02:51:44 ID:CHg28K83
WshShell = WScript.CreateObject("WScript.Shell");
WshEnv = WshShell.Environment("USER");
WshEnv("HOME") = "c:\home";
これでは, 全部の環境が変わってしまいます・・・.
750 :名無し~3.EXE:2007/01/29(月) 02:56:08 ID:CHg28K83
あ,
WshEnv = WshShell.Environment("PROCESS");
にすればいいのか・・・.
751 :名無し~3.EXE:2007/01/30(火) 01:41:44 ID:skiU3c8V
超初心者です.
コマンドプロンプトの.
C:\WINDOWS>
のWINDOWSのところを消して,
C:\>
にしたいのですが, どうしたらいいのでしょうか?
Me使ってます. お願いします.
752 :名無し~3.EXE:2007/01/30(火) 01:44:58 ID:xu1S81WI
cd.. と打ち込むとそうなるはず・・・.
753 :名無し~3.EXE:2007/01/30(火) 01:56:27 ID:skiU3c8V
ありがとうございました.
754 :名無し~3.EXE:2007/01/30(火) 02:07:46 ID:xu1S81WI
>>753
あと, OSにもよると思うんだけど,
エクスプローラから, c:\のアイコンをマウスでcmdの窓に引っ張ってっても.
変わるはず. まあ, これじゃ, せっかくコマンド打つ意味はなさそうだけどね.
慣れるまでは, それもありかな.
あと詳しい使い方は, DOS コマンド あたりでグーグル先生に聞くか,
このスレの他の識者に聞いてくだされ.
ノシ.
755 :名無し~3.EXE:2007/01/30(火) 14:55:12 ID:8oWdEpCN
>>751
ちなみに, 2階層登るときは,
cd..\..
756 :名無し~3.EXE:2007/01/30(火) 16:52:25 ID:6T1j6bWf
まさかとは思うが, >>751は「どこの階層にいても C:\> と表示したい」のか?
だったら, set prompt=C:\$g
・・・んなワケねーか. w.
757 :名無し~3.EXE:2007/01/30(火) 17:41:16 ID:EXkNQsWs
鬼才現る.
758 :名無し~3.EXE:2007/01/30(火) 20:42:39 ID:RppqVEDs
>756
ちょっとワロタ.
759 :名無し~3.EXE:2007/02/02(金) 18:13:43 ID:7lW2zV4+
昔はカレントドライブだけの表示($N$G相当)がデフォルトだったような.
760 :名無し~3.EXE:2007/02/03(土) 21:49:56 ID:Y8FtUM7g
@echo off
"C:\Program Files\ABC.exe"
exit
これでアプリは起動するのですが, コマンドプロンプトも開いたままになります.
アプリが起動したらコマンドプロンプトは自動で閉じることは出来ないのでしょうか?
761 :名無し~3.EXE:2007/02/03(土) 22:11:10 ID:jjvZQHSi
ありきたりじゃつまんないので.
@echo off
(
echo "C:\Program Files\ABC.exe"
echo exit
)|cmd.exe
exit
とか?
762 :名無し~3.EXE:2007/02/03(土) 22:56:54 ID:Y8FtUM7g
>>761
閉じることが出来ました.
ありがとうございました.
763 :名無し~3.EXE:2007/02/04(日) 04:52:24 ID:Gpw040Ym
パス指定にホスト名を使いたいんですが,
例えばユーザ名を使うなら.
%username% でユーザ名が取り出せますがホスト名を使うならどうしたらいいんですか?
hostname コマンドでホスト名が出力されるのは知っているのですが, それを変数として.
使うにはどうしたらいいんでしょうか?
echo %hostname%
%hostname%
となって取得できません.
それから, setコマンドで set HOME=%userprofile% とか出来ますが, これは.
そのbatファイルを終了した時点で消えますよね.
それを, batファイルを終了した後であろうがシステムを再起動した後であろうが.
常にずっと有効にしておく(システムのプロパティの環境変数のところに書いたのと同じ)
状態にするにはどういうコマンドを打てばよいのでしょうか?
よろしくお願いします.
764 :名無し~3.EXE:2007/02/04(日) 05:50:52 ID:UCUQL6Cs
>>763
for /f "usebackq" %h in (`hostname`) do @set hostname=%h
765 :名無し~3.EXE:2007/02/04(日) 13:00:50 ID:Gpw040Ym
>>764
おお, 凄い凄い!ありがとうございます.
でもこれ再起動とかコマンドプロンプト閉じたりすると切れちゃいますね.
その都度実行って奴ですか.
ええっと, do @set とあるように, setの前に@をつけるとどういう意味があるのでしょうか?
766 :名無し~3.EXE:2007/02/04(日) 13:22:17 ID:NBbEuIkl
>パス指定にホスト名を使いたいんですが,
%COMPUTERNAME% じゃだめなん?
>常にずっと有効にしておく(システムのプロパティの環境変数のところに書いたのと同じ)
>状態にするにはどういうコマンドを打てばよいのでしょうか?
>>176
>setの前に@をつけるとどういう意味があるのでしょうか?
エコーを無効にする(for文実行時に一々「set 〜」と表示させない)
767 :名無し~3.EXE:2007/02/04(日) 14:37:43 ID:Gpw040Ym
>>766
ちょおおおおおおーサンクス!ありがとうございます!
%computername% ってあったのかああ! こういう環境変数の一覧みたいなのって.
どういうところに載っています?コレが知りたかったんですよ!
setx.exeを拾ってこないといけないんですねぇ・・ふむぅ. .
@set の意味も分かりました. 本当にどうもありがとうございます.
768 :名無し~3.EXE:2007/02/04(日) 15:13:43 ID:upfVRns6
set | more
769 :名無し~3.EXE:2007/02/04(日) 15:44:31 ID:Gpw040Ym
>>768
おお〜, なるほど. こういう風に調べる事ができるんですねぇ. ありがとうございました!
770 :名無し~3.EXE:2007/02/04(日) 16:43:04 ID:aXVvEPc1
http://pc10.2ch.net/test/read.cgi/tech/1148485555/345 から来ました.
フォルダ内にある.exeファイル全てに/q引数を付けて実行するバッチを教えてください.
具体的にはWindowsのHotfixをCDに貯めて, OS再インストール後にバッチからHotfixを自動でインストールさせたいのですが.
/q引数をつけないでインストールすると, 次々と確認メッセージが出てきて大変なので.
あと, 新しいHotfixが出るたびにCDに追加していくのでフォルダ内のファイル数は不定です.
771 :名無し~3.EXE:2007/02/04(日) 17:07:50 ID:uzS1dqPI
>>770
>>4
772 :名無し~3.EXE:2007/02/04(日) 17:40:47 ID:upfVRns6
教えてクソ五大要素.
1 読まない.
2 調べない.
3 試さない.
4 理解力が足りない.
5 人を利用することしか頭にない.
773 :名無し~3.EXE:2007/02/04(日) 21:42:06 ID:XVlaP+ck
そのコピペ久しぶりに見た.
774 :名無し~3.EXE:2007/02/05(月) 08:59:35 ID:5uo+Y0/o
>>770
set hoge=D:\hoge
for /f "usebackq" %%A in (`dir/b/s "%hoge%\*.exe"`) do "%%A" /q
SP+メーカーでHotfix専用インストールCD作る手もあり.
775 :名無し~3.EXE:2007/02/07(水) 18:22:35 ID:HkmhaXR6
どなたかご教授お願いします.
CD又はDVDに入れた「setup.bat」を起動すると同CD内のZIPファイルが.
デスクトップにコピーされ, 尚且つ自動解凍する方法があったら教えて下さい.
お願いしますm(_ _ )m
776 :名無し~3.EXE:2007/02/07(水) 18:41:51 ID:GrlV5MMw
デスクトップのパスの取得は内部コマンドだけじゃ無理だな.
777 :名無し~3.EXE:2007/02/07(水) 18:48:33 ID:LtTsJ5NX
>>775
copy /Y *.zip
c:
cd %userprofile%\デスクトップ.
md files
expand *.zip files
echo finished!! & pause
こんなのでいけるのかしら?動作確認1回もやってないからわからない.
ちなみに当方シロウトです.
778 :名無し~3.EXE:2007/02/07(水) 18:49:40 ID:LtTsJ5NX
ミスった! w.
copy /Y *.zip %userprofile%\デスクトップ\
c:
cd %userprofile%\デスクトップ.
md files
expand *.zip files
echo finished!! & pause
に修正.
779 :名無し~3.EXE:2007/02/07(水) 18:51:49 ID:LtTsJ5NX
だめっぽいなぁ・・・.
expandじゃ.zipを解凍出来てない気がする・・.
どうすりゃいいんだろ.
780 :名無し~3.EXE:2007/02/07(水) 18:56:41 ID:XAyl8R3D
素直にCDにunzip.exeも入れておいたほうが楽かと.
あとVistaだとデスクトップは %userprofile%\Desktop\ になる.
781 :名無し~3.EXE:2007/02/07(水) 19:08:15 ID:LtTsJ5NX
>>780
unzip.exeって何に含まれているの?私の環境だとそんなコマンドはないと言われるから.
ネットから落としてくるフリーソフト?
それから, Vistaの事は全く知らないw 使えるのかなぁVista・・・.
782 :775:2007/02/08(木) 21:20:11 ID:mVdDQt9f
>>776-781
亀レスですが, とても参考になりました.
後は自分でがんばってみます.
783 :名無し~3.EXE:2007/02/09(金) 00:50:15 ID:Sp5PB1om
>>775
WSHならこんな感じで,
デスクトップに展開.VBS ZIPファイル.
Set ie=CreateObject("InternetExplorer.Application")
ie.Navigate2 WScript.Arguments.Item(0)
Do While ie.Busy Or ie.ReadyState<>4
WScript.Sleep 100
Loop
Set Shell=ie.Document.Application
Set sFolder=ie.Document.Folder
Set dFolder=Shell.NameSpace(16)
dFolder.CopyHere sFolder.Items()
ie.Quit
784 :名無し~3.EXE:2007/02/10(土) 20:30:48 ID:3Ev8EayX
Web上からWebサーバー上のバッチファイル動かすのとか出来んかな.
ちなみにクライアントとWebサーバ間はTelnetの通らないFW挟んでます.
785 :名無し~3.EXE:2007/02/10(土) 20:42:03 ID:+HezOLaE
>>784
ひんと: Common Gateway Interface
786 :名無し~3.EXE:2007/02/11(日) 03:36:40 ID:CHEcrX//
>>785
CGIかよ. w.
787 :名無し~3.EXE:2007/02/11(日) 21:45:48 ID:M4xM6Mxy
にわかUNIx プログラマーです.
foreach i ( 1 2 3 .... 15)
cp input.{$i} output.{$i}
end
コマンドを一括して実行するには,
csh ではforeach を使えば簡単ですが,
dos上のbat ファイルでこのようなスクリプトを作りたいのですが,
何か方法はありますか?
788 :名無し~3.EXE:2007/02/11(日) 21:53:01 ID:IDO4ruyo
for %i in (1 2 3 .... 15) do copy input.%i output.%i
789 :名無し~3.EXE:2007/02/11(日) 21:55:35 ID:VkfuRwSL
@echo off
for /L %%i in (1, 1, 15) do (
copy input.%%i output.%%i
)
790 :787:2007/02/11(日) 22:00:43 ID:M4xM6Mxy
>>788 789
ありがとうございます.
早速やってみます.
791 :名無し~3.EXE:2007/02/18(日) 14:36:27 ID:p11D76E7
すみません. CHKDSKコマンドについて教えてください.
80GBのHDDにCHKDSKを実行してみたところ,
80405293 KB : 全ディスク領域 と表示されます.
WindowsXP上でドライブを右クリックしてプロパティを見てみると,
80, 858, 566, 656バイトと表示されています.
CHKDSKコマンドでは, KB表示なのでバイト表示にする為に,
1024を掛けて見ましたが,
80405293 x 1024=82, 335, 020, 032となり,
Windows上の表示と一致しません.
もしかして, Win上では1000を掛けるのかと思いましたが,
80405293 x 1000=80, 405, 293, 000となり,
こちらでも一致しません.
どう計算すると, CHKDSKコマンドの結果が, Win上と一致するように.
なるのでしょうか. よろしくお願いします.
792 :名無し~3.EXE:2007/02/18(日) 15:09:42 ID:XGXlaIu8
俺んとこは1024掛けで一致するなぁ.
793 :名無し~3.EXE:2007/02/18(日) 15:11:22 ID:ktHDelKs
>>791
1024を掛けるのでOK.
別の数値を見てるか, ディスクがおかしいんじゃね?
794 :名無し~3.EXE:2007/02/18(日) 21:02:12 ID:k0xWSI9G
net start service_name
や.
net stop service_name
を実行するとWindowsのサービスを起動したり停止したり出来ますよね.
net pause service_name
で一時停止も可能です.
しかしサービスのスタートアップの種類が「無効」になっているものについては一切.
制御が出来ません.
スタート>ファイル名を指定して実行>services.msc
でサービス画面(GUI)が開けますが, そこからならこの「無効」の状態を「自動」もしくは「手動」
に変更できますが, これをコマンドプロンプトから変更する方法はありませんか?
そういうコマンドがないかと調べてみたのですが, 見つけられません.
もしかしてこの操作はコマンドでは不可能で, GUIで実行するしかないのでしょうか?
795 :名無し~3.EXE:2007/02/18(日) 21:05:22 ID:tt13nMj4
sc
796 :名無し~3.EXE:2007/02/18(日) 23:33:45 ID:k0xWSI9G
>>795
詳細キボン.
797 :名無し~3.EXE:2007/02/18(日) 23:38:09 ID:tt13nMj4
つ.
http://www.google.co.jp/search?hl=ja&q=sc.exe&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
798 :名無し~3.EXE:2007/02/19(月) 00:05:42 ID:k0xWSI9G
sc config service_name start= auto
したら「スタートアップの種類」を「自動」に設定する事が出来ました.
どうもありがとうございました.
799 :名無し~3.EXE:2007/02/21(水) 11:10:08 ID:tcKwzygL
親切に書いてくれてるけどワカンネ 誰か助けて.
http://0server.ddo.jp/~dougakun/upload2/src/up1219.zip
800 :名無し~3.EXE:2007/02/21(水) 11:29:50 ID:ux1ZZgWt
それで判らなきゃどうしようもないわ.
801 :名無し~3.EXE:2007/02/21(水) 11:32:52 ID:Igq/YDl3
ファイルを一通り揃えないとな.
802 :名無し~3.EXE:2007/02/21(水) 12:23:32 ID:tcKwzygL
事故解決スマソ ファイルパスの.
O<- これ零だと勘違いしてた模様. オーで通った.
803 :名無し~3.EXE:2007/02/21(水) 19:51:29 ID:mWNkuj/B
>>802
大昔のDOSなら「0」なら, 斜め線が入ってたのにね.
804 :名無し~3.EXE:2007/02/21(水) 22:32:32 ID:dSTd36jK
いまだに手書きだとゼロに斜線, オーに上線書くクセが抜けません.
805 :名無し~3.EXE:2007/02/22(木) 01:26:37 ID:dcYh/2pS
>>804
Zにも, [ちょん]って, いれるでしょ?
PCの話題からずれてるけどね.
806 :名無し~3.EXE:2007/02/25(日) 07:11:24 ID:M8SUDOy/
任意の数与えられた引数をechoする方法を教えてください.
807 :名無し~3.EXE:2007/02/25(日) 07:19:34 ID:XbqoSwX3
echo %*
808 :名無し~3.EXE:2007/02/25(日) 10:47:06 ID:M8SUDOy/
スマン寝ぼけてたわ.
809 :名無し~3.EXE:2007/02/25(日) 10:54:30 ID:lALGsEBc
同一バッチ内で, サブルーチンCALL〜RETURNの動作をさせることは可能ですか?
GOTOで飛ばしても, 元に戻す方法がワカリマセン・・・オワタ\(^o^)/
810 :名無し~3.EXE:2007/02/25(日) 11:03:22 ID:jIpm/zzU
>>809
2000/XPなら.
call /?
9x/Meなら.
call %0
でパラメータでもつけて振り分けろ.
811 :名無し~3.EXE:2007/02/25(日) 21:34:08 ID:FcYHarj1
すみません, DOS初心者です.
質問させてください.
test.txtの内容.
--------------------
aaa(111) bbb(222)
ccc(333) ddd(444)
--------------------
というのを.
test2.txt
--------------------
aaa(111)
bbb(222)
ccc(333)
ddd(444)
--------------------
というように並べて出力させたいのです.
aaa(111) bbb(222)<-文字列の間にはtabで区切られています.
for文でできそうな感じですが, ド素人なものでよくわかりません(>_<)
どなたか教えてください, お願いします!
812 :811:2007/02/25(日) 21:35:46 ID:FcYHarj1
すみません, 使ってるOSはWindowsXP home editionです.
813 :名無し~3.EXE:2007/02/25(日) 21:57:08 ID:+SGe6t45
>>811
gawk "{for(i=1;i<=NF;i++)a[n++]=$i} END{for(i=0;i<4;i++)print a[i]}" test.txt
> test2.txt
814 :名無し~3.EXE:2007/02/26(月) 04:07:53 ID:9JamE3oB
単純にタブを改行に置換した方が早くない甲斐.
815 :名無し~3.EXE:2007/02/26(月) 04:09:53 ID:9JamE3oB
誤変換した上に微妙に途中で書き込んじまった・・・callって10個までしか引数渡せないのね.
816 :809:2007/02/26(月) 04:41:56 ID:TZQkmwZQ
>>810
とんくす. 無事に解決しますた.
参考:
メイン処理.
メイン処理.
CALL :LABEL
メイン処理.
メイン処理.
・・・.
:LABEL
サブ処理.
goto :eof
817 :名無し~3.EXE:2007/02/26(月) 06:45:30 ID:kBM+PAiP
>816
メイン処理の最後にも goto :EOF
818 :名無し~3.EXE:2007/02/26(月) 17:29:47 ID:TZQkmwZQ
テキスト形式でどんどん下に増えていくログファイルで,
新旧2ファイル A.TXT B.TXT があるとします.
FC で比較すると, カブった部分だけは抽出できますが,
増えた分だけ抽出する, うまいやりかた, ないでしょうか.
819 :名無し~3.EXE:2007/02/26(月) 18:49:58 ID:fAq2TeR4
>>815
>> callって10個までしか引数渡せないのね.
shift
820 :名無し~3.EXE:2007/02/26(月) 18:51:29 ID:9JamE3oB
>>818
追加部分に全く変更がないことを仮定するなら.
Aの行数分+nしてmore
821 :名無し~3.EXE:2007/02/26(月) 19:07:16 ID:9JamE3oB
>>819
---main.bat---
for /f "usebackq" %i in(`call hoge.bat`) call sub.bat %i
---sub.bat---
:loop
echo %1 >>test2.txt
shift
IF %1 GTR "" (goto eof) else goto loop
こんな感じで>>811について一行に10個以上データがある場合を考えてたんだけど, できる?
822 :名無し~3.EXE:2007/02/26(月) 19:09:14 ID:9JamE3oB
すまんhoge.batじゃない, test.txt
これを試したら10個以上は駄目だったので>>815
shift自体は知ってるんだけどね, 言葉足らずごめん.
823 :名無し~3.EXE:2007/02/26(月) 19:11:12 ID:9JamE3oB
うあー, そこ以外に間違いが多すぎる・・・まあ>>814で済む話だと思うからどうでもいいっちゃどうでもいいんだ.
824 :名無し~3.EXE:2007/02/26(月) 19:23:51 ID:9JamE3oB
連投すまん普通に出来た, 昨夜はどっか間違えてただけみたいだ・・・.
825 :名無し~3.EXE:2007/02/26(月) 23:16:24 ID:RAmgQBxU
テキストの中身, 例えば.
abc( ) cde(f g h i)
っていう行を, スペース分だけ縮めて.
abc()cde(fghi)
っていう風にってできますか?
教えてエロイ人.
826 :名無し~3.EXE:2007/02/26(月) 23:19:26 ID:W0f2oIjo
for /f "delims=" %%1 in (file) do for %%2 in (%%1) do echo %%2
shift使うなら.
set x=%1
if defined x ...
827 :名無し~3.EXE:2007/02/26(月) 23:41:36 ID:W0f2oIjo
>>825
set /?
828 :名無し~3.EXE:2007/02/27(火) 00:14:03 ID:ssftNQ/p
/f抜きのfor文か, 盲点だった.
829 :名無し~3.EXE:2007/02/27(火) 14:06:43 ID:Wu6N02ak
>>818
find /c /v "" <a.txt
で行数.
830 :名無し~3.EXE:2007/03/04(日) 13:20:01 ID:iL3fJNBF
txtsetup.sifの終端起動(?)をバッチファイルで処理することは可能ですか?
831 :名無し~3.EXE:2007/03/04(日) 13:56:45 ID:dStcZEp+
>>820 トンクス. 第一フェーズはクリアできました.
このmoreを使う方法で, +nの開始行だけじゃなく,
終端行も指定できるコマンドはありますか?
832 :名無し~3.EXE:2007/03/04(日) 17:26:14 ID:Qie4CUoZ
>>831
バッチファイルでこんなのとか・・・.
@echo off
rem hoge.bat 飛ばす行数(+n) 終端行番号.
rem の形で実行.
setlocal enabledelayedexpansion
set count=%1
for /f "usebackq delims=" %%a in (`more +%1 "C:\hoge.txt"`) do (
if !count! LSS %2 (
set string=%%a
echo !string! >>C:\log.txt
set /a count+=1
) else goto :eof
)
)
goto :eof
どうみても空白行カウントしてません. 本当にありがとうございました.
833 :名無し~3.EXE:2007/03/04(日) 17:50:15 ID:Jl1jH6od
@echo off
rem usage: hoge.cmd 開始行 終了行 ファイル.
(for /f "delims=[] tokens=1*" %%0 in ('find /n /v ""') do (
if %%0 gtr %2 goto :eof
if %%0 geq %1 echo;%%1
)
)<%3
834 :名無し~3.EXE:2007/03/05(月) 02:54:04 ID:MOjVAAUk
>>833
綺麗だなー横から頂いておこう.
835 :名無し~3.EXE:2007/03/05(月) 19:32:27 ID:LVHf9Ynh
礼儀を知らん奴だな.
836 :名無し~3.EXE:2007/03/05(月) 21:33:53 ID:MOjVAAUk
すまん, 833ありがとう831じゃないが勉強になった.
837 :名無し~3.EXE:2007/03/06(火) 21:10:05 ID:xCM/ihCx
@ECHo OFF
rem usage: hoge.cmd 開始行 終了行 ファイル.
SETLOCAL
(FOR /F %%n IN ('FIND /C /V ""') Do SET /A n=%%n-%2)<%3
SORT /+10000 %3 | MORE +%n% | SORT /+10000 | MORE +%1
838 :831:2007/03/08(木) 20:41:30 ID:ya3PyY8a
>>832
>>833
>>837
遅くなりましたが, おかげさまで無事に任務完了しました.
お三方ともそれぞれ工夫が入っていて大変勉強になりました.
ありがとーございますっ!
839 :名無し~3.EXE:2007/03/09(金) 04:39:09 ID:DG7HO96U
>>838
遅すぎる! 質問したんなら毎日チェックせんか!
840 :名無し~3.EXE:2007/03/09(金) 06:39:26 ID:2rOa6XJ7
>839
まーまー, 遅レスでも質問投げてハイ終わりより全然マシだし.
841 :名無し~3.EXE:2007/03/09(金) 07:00:29 ID:DG7HO96U
いや, 俺も本気で言ってるわけじゃあない.
842 :名無し~3.EXE:2007/03/09(金) 21:15:54 ID:0y7g4CVL
自分で作成した.batファイルをパソコン起動から.
30秒後に実効させたいのですが(起動直後だと色々なソフトが立ち上がったりしている段階.
だから, かなり処理が重くて, 実行タイミングをずらしたい)
.batファイルの一番上に sleep 30秒 みたいな1行を入れれば解決すると思っていますが.
(それをスタートアップに突っ込む)
sleepコマンドは存在しません. 代わりになるコマンドはありませんか?
OSはWindows2000 Professional SP4です.
宜しくお願いします.
843 :名無し~3.EXE:2007/03/09(金) 21:24:53 ID:tEFMuHkw
ping 0 -n 31 > nul
844 :名無し~3.EXE:2007/03/09(金) 21:32:29 ID:YTztBu5T
>>842
>>131-141
845 :名無し~3.EXE:2007/03/09(金) 21:39:04 ID:0y7g4CVL
スマン, 既出だった.
>>843
このアイディアは面白いですね. でもこれだと正確に30秒数えてるわけじゃないですよね?
pingの感覚は1秒に1回実行しているのですかあれは?
もしそうなら30秒数えてる事になりますけど・・.
それから, nul なんですね, Windowsの場合は.
Linuxだと /dev/null だから nullの間違いじゃないかと実行してみたら.
nullってファイルが出来上がってしまいました.
846 :名無し~3.EXE:2007/03/09(金) 21:42:34 ID:SEOi/TOI
>>845
欧米かっ!
847 :名無し~3.EXE:2007/03/09(金) 22:00:42 ID:0y7g4CVL
>>846
?
848 :名無し~3.EXE:2007/03/10(土) 21:35:30 ID:kX5CKF14
>>845
俺もnulをとnullを書くことがある.
DOSの頃から使ってるのにいまだになんだよな.
DOSデバイス名は3文字だって思ってりゃ大丈夫なはずなんだがねぇ.
849 :名無し~3.EXE:2007/03/11(日) 10:32:39 ID:BSbqetgn
>>842
cygwinという手もあるよ.
850 :名無し~3.EXE:2007/03/11(日) 13:24:44 ID:bIr2biXV
expandコマンドの使い方が分からず悩んでいます.
cab形式で, 複数のサブフォルダやファイルを含んだ親フォルダを圧縮後,
expandコマンドで新しいフォルダに解凍すると, サブフォルダが無くなり,
全てのファイルが解凍先のフォルダ内に展開されてしまいます.
解凍後も, 解凍前と同じフォルダ構成で展開させるにはどうすれはいいのでしょうか?
どなたかお分かりになる方がいらっしゃいましたら, 教えて下さい.
851 :名無し~3.EXE:2007/03/11(日) 13:38:54 ID:wv7B4rxH
無理.
852 :>>850:2007/03/11(日) 13:41:24 ID:bIr2biXV
>>851
無理ですか・・・.
853 :名無し~3.EXE:2007/03/11(日) 14:24:55 ID:dNmcphlD
expandコマンドではなくextractコマンド使えばOK.
入ってなかったらWindowsインストールCD内のSupportToolsインストーラ.
かMicrosoftから落とせばいい.
854 :名無し~3.EXE:2007/03/13(火) 14:10:50 ID:OzuEmcRk
システムの日付を1日進める事は出来ないでしょうか?
C:\>date /?
とか.
C:\>help date
とかやってマニュアルを見たりネットで調べたのですが,
Linuxで言うところの.
# date -s '1days'
でシステム日付を1日進める事が出来ます.
このコマンドをfor文の中に埋め込んで, 1日ずつずらしながら100回ぐらい特定のコマンドを.
打ち続けたいのですが, 人力でやると100回同じような作業をしないとならないので.
ぜひbatファイルのfor文と日付を1日進めるコマンドで自動化したいのですが.
DOSには1日進めるコマンドは無いのでしょうか?
もしあるならば教えてください. よろしくおねがいします.
855 :名無し~3.EXE:2007/03/13(火) 15:52:17 ID:SL0cw+2s
>>854
このスレをdateで検索すれば.
856 :名無し~3.EXE:2007/03/15(木) 01:24:25 ID:rGCP6xCe
WindowsME -> Vista へ移行しました.
コマンドプロンプトで以下を実行します.
c:\somewhere>explorer /e, .
制御が戻ってきます. ( プロンプトが有効になる )
いつも "explorer /e, ." を入力するのは面倒なので,
"explorer /e, ." だけを書いた exp.bat を, パスの通った場所に,
置いておきます.
c:\somewhere>exp
実行しても制御が戻ってきません.
Windows9x 系だと, 制御が戻ってきます.
どうしたらいいのでしょうか?
cmd /c や & など試したのですが, 思った通りになりません.
857 :名無し~3.EXE:2007/03/15(木) 01:28:57 ID:gd0AF5kn
start
858 :名無し~3.EXE:2007/03/15(木) 01:32:47 ID:mA1C3Gzd
start .
859 :名無し~3.EXE:2007/03/15(木) 02:26:14 ID:rGCP6xCe
>>857-858
解決しました. ありがとうございました.
860 :名無し~3.EXE:2007/03/15(木) 13:22:09 ID:3xRw8xOw
830がスルーされてる件.
861 :名無し~3.EXE:2007/03/15(木) 13:26:52 ID:V4qzqJbA
>>860
レスがほしければ, もっと細かく書けば.
あの1行じゃ, なにで困ってなにがしたいのかわからん.
862 :名無し~3.EXE:2007/03/15(木) 14:14:55 ID:Lj7DI4SG
Windowsで実行中のアプリ(EXE)が稼動しているか.
定期的(1分ぐらい)で確認し, 落ちていたら再度自動起動する.
バッチはどのように書けばいいのでしょうか?悩んでいます.
ご教授いただければ幸いです.
863 :名無し~3.EXE:2007/03/15(木) 15:15:21 ID:3sqNewWT
空ディレクトリだけ削除するコマンド教えろ.
864 :名無し~3.EXE:2007/03/15(木) 15:38:02 ID:mA1C3Gzd
>>862
つ.
sleep.exe
tasklist.exe
find か findstr
start
865 :名無し~3.EXE:2007/03/15(木) 15:51:23 ID:V4qzqJbA
>>863
format D: /Q
866 :名無し~3.EXE:2007/03/15(木) 21:47:41 ID:3sqNewWT
>>865
大事な個人情報データの入った全てのフォルダが見つからなくなってしまいました.
やばいのでちゃんと教えてください.
ていうかその前にどうやったらみえるようになるのか教えろ.
867 :名無し~3.EXE:2007/03/15(木) 22:02:15 ID:B8dEOk5m
>>866
バカかお前?コマンドの意味ぐらい調べて実行しろよ.
お前のDドライブはクイックフォーマットされてしまったんだよ.
データ復旧がんばれ. 最悪復旧できないぜ.
868 :名無し~3.EXE:2007/03/15(木) 23:32:54 ID:WQboaxAI
プロセスの優先度(リアルタイム, 高, 通常以上, 通常, 通常以下, 低)を変更するコマンドって.
ないですか?
ウィルス検索用のサービスのプロセスが「通常」で動いてて, 全件検索のスケジュール検索が.
始まったりすると非常に操作が遅くなってウザいので, いまは手動でタスクマネージャから.
「低」に変えてるんだけど, これを自動化したいのですが.
つーか, 遅くてもいいようなバックグラウンドの処理やるのに堂々と「通常」のプロセスで実行して,
フォアグラウンドのユーザーの操作性が悪くなるって, ソフト造ってる人にセンスがないというか.
馬鹿ジャネーノと思うんだけどさ. >某有名ウィルス検索ソフト.
869 :名無し~3.EXE:2007/03/15(木) 23:33:17 ID:V4qzqJbA
>>866
質問の仕方を勉強してから出直せ.
870 :名無し~3.EXE:2007/03/16(金) 00:48:48 ID:i6fct+GD
age失礼します.
ftp転送をテキストから実行するのですが,
実行を*秒間待ち, 失敗した場合はリトライしようと考えています.
*秒間待つ, というコマンドは調べた限り, ping localhost〜というので.
できそうなのですが, 他に方法はありますでしょうか?
また, リトライするにあたりCPUをあまり食わない方法を.
とりたいと考えています.
FOR〜で回すのと, 実行回数を変数にセットしてIF GOTOで回すのは,
どちらがCPU負荷が低いのでしょうか?
ご教示ください.
871 :名無し~3.EXE:2007/03/16(金) 00:56:28 ID:eakn+5F7
両方作って試してみれば?なにをどうループしたいのかよくわからないけど.
ループ回数多ければコマンド数が少ないほうが軽いと思う.
872 :名無し~3.EXE:2007/03/16(金) 00:58:54 ID:i6fct+GD
age失礼します.
ftp転送をテキストから実行するのですが,
実行を*秒間待ち, 失敗した場合はリトライしようと考えています.
*秒間待つ, というコマンドは調べた限り, ping localhost〜というので.
できそうなのですが, 他に方法はありますでしょうか?
また, リトライするにあたりCPUをあまり食わない方法を.
とりたいと考えています.
FOR〜で回すのと, 実行回数を変数にセットしてIF GOTOで回すのは,
どちらがCPU負荷が低いのでしょうか?
ご教示ください.
873 :名無し~3.EXE:2007/03/16(金) 01:03:07 ID:i6fct+GD
ん・・連書きになってる. . すいません.
>>871さん.
ありがとうございます.
やろうとしていることは.
ftp -s:実行コマンド.txt で,
ファイル転送が問題なく実行されればループを抜け.
エラーでファイル転送ができなかった場合は, もう一度ftpを実行しようとしてます.
最終的に3回ほど実行してもエラーが発生した場合は, exitしようとしてます.
とりあえず両方実行してみます.
874 :名無し~3.EXE:2007/03/16(金) 06:08:01 ID:FvBgO7zq
マジで format 実行した奴いるのか・・・?
875 :名無し~3.EXE:2007/03/16(金) 06:15:11 ID:MR2N6HOP
どうみてもネタです. お疲れ様.
876 :名無し~3.EXE:2007/03/16(金) 09:39:54 ID:rNEmEled
今日休んで必死で復旧してます.
少し前のがCDRにバックアップしてあったので何とかなりそうです.
正直参りました.
877 :名無し~3.EXE:2007/03/16(金) 17:42:34 ID:Wa3JiUCf
>>868
つ sleep.exe >>315
878 :名無し~3.EXE:2007/03/17(土) 08:12:20 ID:jB6psE8I
質問です.
dirでファイルのサイズは表示できるのですが,
同じようにディレクトリのサイズを表示するにはどうしたらいいのでしょうか.
879 :名無し~3.EXE:2007/03/17(土) 10:58:08 ID:15BYO+Ro
>868
常時CPUを独占するプロセスが動いてるような環境で,
ロクに動かなくてクレーム付ける奴がいたりもするからな.
そういう奴に限って声高な罠.
まぁ, 理想的には自身で設定出来りゃいいんだけど.
880 :名無し~3.EXE:2007/03/17(土) 13:30:32 ID:zglMRs4v
>>878
WSH使え.cmd ディレクトリ名.
@if(0)==(0) ECHo OFF
CScript.exe //NoLogo //E:JScript "%~f0" %1
GOTo :EOF
@end
var fso=new ActiveXObject('Scripting.FileSystemObject');
var folder=fso.GetFolder(WScript.Arguments.Item(0));
WScript.Echo(folder.Size);
881 :名無し~3.EXE:2007/03/17(土) 15:47:21 ID:2afvpT9P
>>878
@echo off
setlocal enableextensions enabledelayedexpansion
set s=
for /F "usebackq delims=" %%i in (`dir /n /s /4 /-c %1 ^| findstr /r /x
"^[^0-9].*バイト$"`) do set s=%%i
echo %s:~-24, 20%
882 :名無し~3.EXE:2007/03/17(土) 19:10:41 ID:zglMRs4v
>>868
startで起動する, 起動し直すか,
@ECHo OFF
SETLOCAL
MORE +10 "%~f0" >"%~f0.js"
SET DOTNET=%SystemRoot%\Microsoft.NET\Framework
FOR /F "delims=" %%1 IN ('DIR /AD /B /ON "%DOTNET%\v*"') Do IF EXIST
"%DOTNET%\%%~1\jsc.exe" SET DOTNET=%DOTNET%\%%~1\jsc.exe
"%DOTNET%" "%~f0.js"
DEL "%~f0.js"
"%~f0.exe"
DEL "%~f0.exe"
GOTo :EOF
import System.Diagnostics;
Process.GetProcessesByName('notepad')[0].PriorityClass=ProcessPriorityClass.Idle;
883 :名無し~3.EXE:2007/03/17(土) 19:32:20 ID:8kc20ls3
>>868
OS側から優先度を下げられるといざって時に困るからな.
ウイルスがCPU使いまくってアンチウイルスが動かんとか話にならんから.
884 :名無し~3.EXE:2007/03/19(月) 23:55:14 ID:5aRr+Po8
port21を即座に開放させるDOSコマンドというか,
バッチを作りたいのですが, お知恵を拝借させてください. . .
885 :名無し~3.EXE:2007/03/19(月) 23:56:51 ID:b2BtHKZ8
shutdown -r
886 :名無し~3.EXE:2007/03/20(火) 00:09:13 ID:xx1ZwL9C
質問です.
osを書き換えるにはどうすればいいのですか?
887 :名無し~3.EXE:2007/03/20(火) 00:22:24 ID:QIKsOeLP
春休みっていいなぁ.
888 :名無し~3.EXE:2007/03/20(火) 01:58:07 ID:MaGLsXFC
ポートの開放かぁ・・・DOSコマンドでできるのか?
889 :名無し~3.EXE:2007/03/20(火) 02:18:06 ID:cQmujOv+
portを何で塞いでるのかで異なってくるのかな.
何にしろ, ファイアーウォールソフトのチェックを横取りしないといけないので.
winsocksあたりをフックして, あとは自前でLANドライバを制御しないといけなくなるかも.
またルーター側で塞いでたら, 上記作業はまったくの無駄でルーターに設定変更コマンドを投げないといけない.
環境依存しそうだね.
890 :878:2007/03/22(木) 11:42:09 ID:QXDhhVnH
>>880-881
返信遅れました.
回答ありがとうございます.
891 :名無し~3.EXE:2007/03/25(日) 01:31:34 ID:Z8Z2MSF1
コマンドプロンプトから.
net use
を実行すると今現在接続しているネットワークドライブが見えますが,
net use /delete z:
とかやるとZ:ドライブを切り離す事が出来ますよね.
それを,
z:やy:等割り当てられていない接続があるんですが.
(OK \\192.168.30.4\IPC$ Microsoft Windows Network)<-こんな感じ.
これを切断する時はどうすればいいですか?
net use /delete *
ってやるとコレを含めて全て(y:やz:も)切断されるので, 確かに切断は出来ますが.
y:やz:や切断したくありません. あくまでもコレ1個だけを切断したいです.
で, 私なりに考えて.
net use /delete * -Y: -Z:
って実行してみたのですが, エラーが帰ってきました.
どうすればいいんですかねぇ?
892 :名無し~3.EXE:2007/03/25(日) 14:02:23 ID:BdqnSJwQ
net use /d \\192.168.30.4\IPC$
893 :名無し~3.EXE:2007/03/25(日) 14:06:01 ID:Z8Z2MSF1
>>892
なるほど, どうもありがとうございました.
894 :名無し~3.EXE:2007/03/27(火) 16:38:07 ID:qIrWV5Kb
コマンドが出力した1回の処理結果を, ファイルにもコンソールにも同時に.
出力するには, どうしたらいいでしょうか?
現状の苦肉の策.
C:\AAA.com > file.txt
type file.txt
しかしこれだと処理が終わった後にまとめて出てしまい, マズーです.
895 :名無し~3.EXE:2007/03/27(火) 16:40:20 ID:xDww6Bzr
>>894
teeをそのへんのUNIXライクから抜けば?
896 :名無し~3.EXE:2007/03/27(火) 16:52:19 ID:NEVfh2eP
Universal Extractorとかにも入ってるね>tee
897 :名無し~3.EXE:2007/03/27(火) 17:26:53 ID:qIrWV5Kb
>>895
>>896
ありがとうございます. これですね.
[ tee ] 標準入力を標準出力とファイルに出力する.
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230898/
Universal Extractorから抜き出せました. のちほど挑戦してみます.
898 :名無し~3.EXE:2007/03/27(火) 17:29:56 ID:qIrWV5Kb
無事にできました. サンクスです.
書式.
C:\AAA.com | tee file.txt
899 :名無し~3.EXE:2007/03/27(火) 18:47:54 ID:RZBVcDUi
start cmd /s /c "AAA.com>file.txt"
tail -f file.txt
900 :名無し~3.EXE:2007/03/27(火) 21:01:03 ID:Eys8t+u0
>>899
無理矢理すぎ. . .
901 :名無し~3.EXE:2007/03/28(水) 04:24:30 ID:XzHvYeCK
tailはどうせ標準じゃないからそれだったらteeのほうが素直だ.
標準のコマンドだけでできるならそれなりに意味あるけど.
902 :名無し~3.EXE:2007/03/28(水) 18:36:43 ID:ZArQcXNe
teeぐらいバッチで作ればよいのに...
903 :名無し~3.EXE:2007/03/28(水) 19:56:48 ID:OxDbgcBz
つーか>>899じゃあ, AAA.com終わっても終わらないじゃん.
>>902
ここでスーパーハカー登場しますた. 実際やってみせてくれ.
904 :名無し~3.EXE:2007/03/29(木) 13:56:33 ID:bxA5c+sb
rmdirってERRORLEVEL 0固定なの?
905 :名無し~3.EXE:2007/03/29(木) 14:04:41 ID:bxA5c+sb
あ, 違う,
rmdirは成功しても失敗捨てもERRORLEVEL変化しないの?
が質問です.
906 :名無し~3.EXE:2007/03/30(金) 13:27:08 ID:iOVPJEok
>>905
@echo off
rmdir %1 2>&1 | findstr ".*" >nul
if errorlevel 1 (echo normal) else echo error: hit!! - findstr errmsg
907 :名無し~3.EXE:2007/03/30(金) 17:23:05 ID:3XMxBJ5w
rmdir "%1"
if exist "%1" (略)
908 :名無し~3.EXE:2007/03/31(土) 15:40:57 ID:3FgO7uz/
rmdir %1 2>&1 | set /p x=
909 :名無し~3.EXE:2007/04/01(日) 00:50:57 ID:Qv7Xwq5V
EOF検出困難なので, 空行で終了.
hoge | tee.cmd 2>hage | huge
@echo off
setlocal enabledelayedexpansion
:loop
set /p x=
if errorlevel 1 goto :eof
echo;!x!
echo;!x!>&2
goto :loop
910 :名無し~3.EXE:2007/04/01(日) 17:19:16 ID:xf+sLP2x
バッチファイルでいろいろ遊んでるけど考え方はRPGツクールと同じなんだな.
911 :名無し~3.EXE:2007/04/01(日) 17:55:31 ID:Qv7Xwq5V
>>868
SFUのnice/renice
912 :名無し~3.EXE:2007/04/01(日) 18:30:15 ID:2pfzfTHj
2kで, 標準だと tasklist とか taskkill が用意されてないから.
外部ツールを使おうと思ってるんだけど, 何かおすすめってあります?
できるだけオプション等使用感が標準のに似てるのが良いなぁ.
913 :名無し~3.EXE:2007/04/01(日) 20:19:24 ID:cgxdeLo7
>>912
XPマシンから C:\WINDOWS\system32\の中から(確かココ) tasklist.exe taskkill.exe
等を拾ってくる.
オレはshutdown.exeを拾ってきて使ったりしている.
914 :名無し~3.EXE:2007/04/01(日) 21:56:19 ID:Qv7Xwq5V
2kの\Program Files\Support Toolsに.
kill.exe
tlist.exe
がないか?
915 :名無し~3.EXE:2007/04/02(月) 03:15:44 ID:jb/8hYOV
2kのCDの\support\tools\setup.exeを実行すれば>>914の通りにインストされるはず.
916 :名無し~3.EXE:2007/04/02(月) 23:16:44 ID:0kblrDSq
>>909
set /pでパイプはうまく読めんみたい.
行単位でなく, 割り込み単位に読み取るみたい.
917 :名無し~3.EXE:2007/04/04(水) 22:07:52 ID:LoXA/bZA
>>868
PID=???
Set Application=CreateObject("Excel.Application")
hprcs=Application.ExecuteExcel4Macro("CALL(""kernel32"", ""OpenProcess"",
""JJJJ"", 512, 0, " & PID & ")")
Application.ExecuteExcel4Macro("CALL(""kernel32"", ""SetPriorityClass"",
""JJJ"", " & hprcs & ", 64)")
Application.ExecuteExcel4Macro("CALL(""kernel32"", ""CloseHandle"", ""JJ"", "
& hprcs & ")")
918 :名無し~3.EXE:2007/04/04(水) 23:58:58 ID:d5GWrQQw
>>917
これってCScriptですか?ん?Excelマクロ?
おながい解説plz
919 :名無し~3.EXE:2007/04/05(木) 00:16:09 ID:HkVPJR16
PID=WScript.Arguments.Item(0)
に変えて, .VBS
920 :名無し~3.EXE:2007/04/05(木) 21:15:39 ID:FfdksGnU
バッチファイルで, クリップボードの文字列(ローカルパスだったりURLだったり)を.
ファイル名とそれ以外の部分に分離して取得したいんだけど, 何か良い方法ある?
とりあえずmayu作者のcliputilで, 全文字列をクリップボードから環境変数1に入れることと.
ファイル名を環境変数2に入れることはできたんだけど, ファイル名以外の部分がどうにもこうにも.
元の文字列は前述の通り, ローカルパスだったりURLだったりするので引数変数%~dp1使えってのはナシの方向で.
921 :名無し~3.EXE:2007/04/05(木) 21:23:35 ID:+MqJksX2
URLのファイル名ってどこだよ.
922 :名無し~3.EXE:2007/04/05(木) 21:33:01 ID:K5PwdFNs
if文とset文で地道に判定すれば?
923 :名無し~3.EXE:2007/04/05(木) 21:49:08 ID:HkVPJR16
遅延展開使って.
!環境変数1:%環境変数2%=!
924 :名無し~3.EXE:2007/04/05(木) 22:32:05 ID:AFc5zb3I
PCのセットアップ作業で1PCにつき, 複数のプリンタを設定しないといけないので.
バッチファイルを作ったのですが, どうもうまくいきません.
rundll32 printui.dll, PrintUIEntry /if /b "Test Printer" /f d:\work\xxxxx.inf
/r "lpt1:" /m "HOGE HOGE3"
上記のようなコマンドを作って実行すると, 「ドライバが認証されていないので〜 続行 or 中止」というような.
メッセージが出るのでいちいちマウスで続行を押さないと進みません.
スイッチに, /Qw という, 警告を出さないというスイッチがあるのですが, それを指定すると,
「操作が完了できませんでした」とでてプリンタが登録できません.
解決方法分かる方いませんか?
あと, できれば, プリンタのプロパティ ー> 全般 -> 印刷設定の中もバッチで設定で出来ると良いのですが.
925 :名無し~3.EXE:2007/04/05(木) 23:31:24 ID:2j/XXBRk
>>884
netshコマンドを探し回れば見つかるような気がする.
926 :名無し~3.EXE:2007/04/06(金) 01:25:16 ID:HlcRwGtw
>923
できた!
遅延展開の使い方でちょっとつまずいたけど.
分かると面白いね.
さんきゅーです.
927 :名無し~3.EXE:2007/04/06(金) 01:32:24 ID:qN1BBhr8
>あと, できれば, プリンタのプロパティ ー> 全般 -> 印刷設定の中もバッチで設定で出来ると良いのですが.
/Ssと/Srはどうだろ.
928 :名無し~3.EXE:2007/04/06(金) 01:56:14 ID:qN1BBhr8
>>924
SendKeys
929 :名無し~3.EXE:2007/04/06(金) 05:37:29 ID:4zE+q0XG
batファイルをWindowsのタスクスケジューラで動かしているのですが.
いちいちDOS窓が立ち上がってきてうっとうしいです.
これを隠してコマンドだけ実行させることは出来ませんか?(スケジューラで).
完全に隠せなくてもせめて最小化した状態で出来ないでしょうか?
1行だけの.batファイルなら.
start /min cmd /c mkdir hoge
とかでコレが実現できますが, 複数行, if文とか組み合わせるとこの方法では出来ません.
930 :名無し~3.EXE:2007/04/06(金) 15:43:50 ID:aH1EHGYL
タスクj実行ファイル名に, cmd /c start /min c:\hoge.batを登録するとか.
batファイルへのショートカットを登録するとかではダメなん?
931 :名無し~3.EXE:2007/04/06(金) 21:29:10 ID:wgXToTxg
>>927
/Ssと/Sr使ってみたのですが, 印刷設定の中(メーカーごとに違う画面のところ)は.
うまくできませんでした.
>>928
取り敢えず, sendkeysで対処するようなバッチにしたんですが, すっきりしないんですよね・・・.
ちなみに, Vistaだとちゃんと/Qwスイッチが使えました.
932 :名無し~3.EXE:2007/04/06(金) 22:30:32 ID:qN1BBhr8
変更箇所を特定してRegWriteとか.
933 :名無し~3.EXE:2007/04/06(金) 23:13:52 ID:Ss9sI4Pl
オレもやっぱりバッチ実行したときの小窓が気になって.
引数で渡したアプリなりバッチなりを窓非表示で実行する.
小物ツールをAutoHotkeyで作っちゃったよ.
プログラミング素人だけど30分くらいで出来た.
934 :名無し~3.EXE:2007/04/07(土) 00:12:33 ID:L1UqqFPf
>>929, >>930
起動時に瞬間コマンドプロンプトが開くから,
wscript.shellでrun bat, 0するvbsをwscript.exe起動しようよ.
935 :名無し~3.EXE:2007/04/07(土) 16:14:28 ID:s6CLN6PI
NET USER USER1 /DOMAIN
ユーザー名 USER1
フルネーム 田中一郎.
・・・(以下省略)・・・.
NET GROUP GROUP1 /DOMAIN
USER1 USER2 USER3 ・・・.
NET GROUPコマンドで, 下記のようにUSER名とフルネームを同時に.
取得したいのですがなにか方法はありませんか?
USER1 田中一郎 USER2 山田花子 ・・・.
936 :名無し~3.EXE:2007/04/07(土) 19:00:52 ID:L1UqqFPf
>>931
/?を見ると, /qと/Gwはあるけど/Qwはないが?
937 :名無し~3.EXE:2007/04/07(土) 19:24:04 ID:1i2EGxl6
環境変数に登録されたフォルダの中のファイル名を検索するうまい書き方ありますか?
set temp=%path:"=%
set temp="%temp:;=";"%"
みたいに整形して.
for /f "delims=;" %%a in ('@echo %temp%') do dir %%a|find "hogehoge"
だとフルパス表示できないし, かといってdirに/s付けると余計なところまで検索かけて遅くなるし.
938 :名無し~3.EXE:2007/04/07(土) 20:16:57 ID:2paJaP2O
とりあえず%temp%は一時ディレクトリ用の環境変数だから.
別の名前にした方がいいと思う.
939 :名無し~3.EXE:2007/04/07(土) 20:20:13 ID:1i2EGxl6
あ, 確かに.
940 :名無し~3.EXE:2007/04/07(土) 20:40:22 ID:bLcLd1L5
@echo off
set target=foo.txt
set dirs=%path:"=%
if "%dirs:~-1%" equ ";" (set dirs=%dirs:~0, -1%)
set dirs="%dirs:;=" "%"
rem dir /w %dirs%
rem goto :eof
for %%i in (%dirs%) do (
pushd %%~i
for /f %%j in ('"dir /b %target% 2>nul"') do echo %%~fj
popd
)
941 :名無し~3.EXE:2007/04/07(土) 20:59:54 ID:1i2EGxl6
>>940
おおーどうもありがとうございました.
942 :名無し~3.EXE:2007/04/07(土) 22:57:59 ID:bLcLd1L5
>>941
指定ファイル名に空白が使われてる場合, バグがあった.
@echo off
set target=*.msi "a b.txt"
set dirs=%path:"=%
if "%dirs:~-1%" equ ";" (set dirs=%dirs:~0, -1%)
set dirs="%dirs:;=" "%"
for %%i in (%dirs%) do (
pushd %%~i
for /f "delims=" %%j in ('"dir /b %target% 2>nul"') do echo %%~fj
popd
)
943 :名無し~3.EXE:2007/04/08(日) 01:53:41 ID:AO1hL1UF
>>929
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36991&forum=8&start=8&12
944 :941:2007/04/08(日) 05:57:01 ID:3LVSruKP
>>942
重ね重ねどうもです, レス遅れてすみません.
945 :名無し~3.EXE:2007/04/08(日) 11:01:47 ID:tMewfiUh
>>944
いえいえ, あなたにはこの程度の対処は出来るんだろうけど.
見ている他の人のために訂正しただけですから.
なお, targetが, フォルダだったり相対パス(foo\bar*.txt)だったりする.
場合の対処が必要なら, それは宿題です.
946 :名無し~3.EXE:2007/04/09(月) 21:52:41 ID:nvCrAfUs
>>929, >>943
hoge.js
@if(0==0)new ActiveXObject('WScript.Shell').Run('cmd /c cmd<"' +
WScript.ScriptFullName + '"', 0);@else
notepad aaaa
exit
:@end
単に起動するだけで非表示バッチ.
947 :名無し~3.EXE:2007/04/10(火) 00:31:43 ID:0YFoMgUz
XPで.
・ユーザー選択画面 (「ユーザーの切り替え」 (Windowsキー+L) の状態)
・かつ複数のユーザーがWindowsにログオンしている状態.
から, 指定したユーザーだけタイマーでログオフさせたいんですが.
"logoff" コマンド (batファイル) で指定できますか?
タイマー実行ソフトや時限シャットダウンソフトでやってみましたが,
どれもユーザー指定ができないので, 一人だけ指定してログオフというのは効きませんでした. [下矢印]
| 複数ユーザーでログオン | 単独ユーザーでログオン.
シャットダウン | o | o
ログオフ | x | o
複数ユーザーでログオンした状態から指定したユーザーだけタイマーでログオフさせる,
こんなことってできないんでしょうか.
948 :名無し~3.EXE:2007/04/10(火) 01:01:56 ID:+1cm8zhr
よく分からんが, 実行するBATをタスク登録するときに実行するアカウントに.
そのユーザーを指定しとけばいいだけでは?
949 :名無し~3.EXE:2007/04/10(火) 02:16:16 ID:0YFoMgUz
>>948
お答えありがとうございます.
文章解りづらくてすみません.
Windows タスク ですよね, ちょっとやってみます.
950 :名無し~3.EXE:2007/04/12(木) 16:15:56 ID:wBWPLIFm
バッチファイル実行時に各行の内容がウィンドウに表示されるのは仕方がないのでしょうか?
たとえばメッセージを表示したいときに.
echo "処理中・・・"
と書いて実行すると,
D:\hoge>echo "処理中・・・"
"処理中・・・"
と2行表示されてしまいます.
また, pauseなどのほかの行もすべて表示されるため, 大変見づらいです.
echo等で表示したいメッセージのみ表示されるようにしたいのですが,
何か方法はないものでしょうか?
よろしくお願いします.
951 :名無し~3.EXE:2007/04/12(木) 16:17:49 ID:i6I5b99a
@echo off
952 :950:2007/04/12(木) 16:31:40 ID:wBWPLIFm
>>951
期待通り, 余計なものは全部消えてくれました.
どうもありがとうございました.
953 :名無し~3.EXE:2007/04/12(木) 16:51:13 ID:bbjCez2k
これ知らない人もいるんだぁ.
954 :名無し~3.EXE:2007/04/12(木) 17:41:51 ID:rGu9umuP
>>953
Win95あたりからPC覚えた奴は, まず知らんよ.
余程の研究心・向上心がない限りは.
955 :名無し~3.EXE:2007/04/12(木) 18:59:02 ID:R5N4StSu
関係ないけど, @echo offの, @ってMS-DOSのバージョンいくつから, サポートされたんだっけ?
昔は, echo offしかなかったよね. (で, echo offと表示されてしまうという)
956 :名無し~3.EXE:2007/04/12(木) 19:28:14 ID:y9MOEqig
PC-98用だとver. 5 にはあった. 3.3Cにはたぶんなかった.
EPSONのver. 4 はしらん.
957 :名無し~3.EXE:2007/04/12(木) 20:09:16 ID:wMb9FjeO
Win98からPC使い始めたけど知ってる.
向上心はないけどヲタク気質なのは自覚してる.
常識はないけどハマると深いとこまで行っちゃう.
958 :955:2007/04/12(木) 22:12:58 ID:R5N4StSu
>>956
言われてみれば, たしかに, PC-98用で, Ver5.0あたりだったような気がする.
よく覚えてはいないんだけどね.
3.3Dは, どうだったか覚えてない.
959 :名無し~3.EXE:2007/04/12(木) 22:24:09 ID:yB6u+aIk
ver3には無かったね.
それと当初から他コマンドにも@って使えたっけ?
最初は@echoしか無かった気もする.
960 :名無し~3.EXE:2007/04/12(木) 22:32:03 ID:7lzh3tl3
ワークグループ名を変更したいのですが, 何か良い方法はありませんか?
wmicから, 出来そうな感じがするのですがよく分からず・・・.
961 :名無し~3.EXE:2007/04/13(金) 01:08:36 ID:A6FQ1BMt
10秒後にスタンバイ/10秒後に休止ってできないでしょうか?
C:\>%windir%\System32\rundll32.exe powrprof.dll, SetSuspendState
がスタンバイってわかったんですが時間を指定したいです.
シャットダウンの%windir%\system32\shutdown.exe -s -f -t 10
みたいな感じで.
962 :名無し~3.EXE:2007/04/13(金) 01:51:34 ID:NxxYhSlK
何度も出てるが, BATで10秒間waitさせるかコマンドでタスク登録する.
10秒間wait
ping localhost -n 11
タスク登録.
schtasksコマンド WindowsXP/2003
atコマンド Windows2000
ただしwindows2000では, フリーでダウンロードできるリソースキットのjt.exeコマンドを使えば.
schtasksと同等にタスクの全ての機能を設定できる.
963 :名無し~3.EXE:2007/04/13(金) 11:20:28 ID:dJwG/TE7
>>959
@は, どうだろう?
というか, 他のコマンドにも@って使えるんだ?
echo以外つかったこともないや.
964 :名無し~3.EXE:2007/04/13(金) 16:08:28 ID:gIYzY2x1
>>963
使える.
まぁ普通は先頭で @echo off するから, 使う機会は少ないが.
965 :名無し~3.EXE:2007/04/13(金) 22:05:53 ID:utIlmCcH
>>964
最近別の用途と掛け合わせて@ifって使われてるじゃん. すこしウザイけど.
966 :名無し~3.EXE:2007/04/13(金) 23:12:30 ID:3iAXsNCy
>>961
それって, スタンバイ?
うちではハイバネーションになったけど.
967 :名無し~3.EXE:2007/04/13(金) 23:41:00 ID:wdm4rCvY
回復コンソールでif文を使った.batファイルって実行できますか?
また, 回復コンソールは.
1. WindowsXPが立ち上がらない時に実行する.
2. WindowsXPのCDから起動して Rキーから起動する.
事とした場合, 作成した.batファイルの実行方法は.
FDにコピーしてFDから実行する.
以外の方法で何かありますでしょうか?
ネットワークは使えないしCDドライブも使えないし, USBメモリとか使えましたっけ?
968 :名無し~3.EXE:2007/04/13(金) 23:57:35 ID:utIlmCcH
事前に, ポリシー変更で回復コンソールでリムーバブルデバイスのアクセスを許可しておいて.
さらに回復コンソールでアクセスをイネーブルにするコマンドを発行しないと.
確かFDにもアクセスできないよ.
BATはCMD.EXE(又はCOMMAND.COM)の機能だから回復コンソールじゃ動かないだろう.
969 :名無し~3.EXE:2007/04/14(土) 00:15:59 ID:D18xQzsC
>>966
休止を有効にしてれば[休止]に.
休止を無効にしてれば[スタンバイ]
970 :名無し~3.EXE:2007/04/14(土) 09:53:09 ID:1NEaWppo
>>968
回復コンソールではbatchというコマンドでバッチを実行できる.
CMD.EXEと同等の機能があるかどうかは知らない.
971 :名無し~3.EXE:2007/04/14(土) 11:10:02 ID:YdveHbWJ
(案)
次スレテンプレ.
初心者〜管理者まで必読!コマンドライン(DOS Pt.6)
適材適所で 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/l50
4 http://pc8.2ch.net/test/read.cgi/win/1116131036/l50
5 http://pc11.2ch.net/test/read.cgi/win/1152544955/l50
DOS由来コマンドだけでなく, Windows バージョンアップのたびに拡充されてきたコマンド,
wsh(cscript), cygwin, Resource Kit, Support Tools, その他のフリーソフト等ふくめ.
コマンドラインインタフェースに関するネタならなんでもOK.
質問も歓迎だけど, 自分で調べて勉強する努力も忘れずに.
972 :名無し~3.EXE:2007/04/14(土) 11:14:31 ID:YdveHbWJ
(案)
関連スレ.
バッチファイルプログラミング 3.bat
http://pc11.2ch.net/test/read.cgi/tech/1148485555/l50
DOSはまだ現役! Drive.B:
http://pc11.2ch.net/test/read.cgi/os/1046875141/l50
973 :名無し~3.EXE:2007/04/14(土) 11:34:42 ID:mKXsUQir
>>968
>>970
ITmedia エンタープライズ:Windows Tips「回復コンソールで利用できるコマンド」
http://www.itmedia.co.jp/help/tips/windows/w0539.html
回復コンソールでは, 利用できるコマンドが限られている.
そうだから, CMD.exe同等の機能はないんじゃないかな(自信ない).
974 :名無し~3.EXE:2007/04/14(土) 13:15:29 ID:6SAiqFC9
標準のcmd.exeで実行できる(外部からコンソールアプリをDLしてこない)という条件で.
ファイルAとファイルBを比較して条件分岐させたいです.
fc /b filea fileb
if errorlevel 1 (
hogehoge
) else (
piyopiyo
)
で実現できますが, バイナリ比較は時間がかかります.
もっと高速に比較して同一ファイルなのか異なるファイルなのか判断できませんか?
厳密にチェックする必要はなく, ファイルサイズで判断できれば十分です.
ファイルサイズで比較するコマンドを教えてもらえませんか?
975 :名無し~3.EXE:2007/04/14(土) 13:29:26 ID:HZdXwwGg
call /? か for /? よめ.
比較は if で.
976 :名無し~3.EXE:2007/04/14(土) 15:26:10 ID:6SAiqFC9
>>975
%~zI - %I ファイルのサイズに展開します.
ですよねぇ. しかしどのように書いたらいいのかさっぱり分かりません.
callだともう1個batファイルが必要そうなので, forで行くと思いますが.
ifとfor組み合わせてどのように書けばいいのですか?
977 :名無し~3.EXE:2007/04/14(土) 15:46:16 ID:YRhG6sRI
だからcall /? 読めと言われただろうが.
978 :名無し~3.EXE:2007/04/14(土) 15:49:13 ID:HZdXwwGg
forはめんどいのでcallで.
call :sub FILEA FILEB
goto :eof
:sub
if %~z1==%~z2 echo おなじ.
979 :名無し~3.EXE:2007/04/14(土) 16:08:34 ID:YRhG6sRI
support toolsのbindiff.exeはどう?
980 :名無し~3.EXE:2007/04/14(土) 16:45:03 ID:6SAiqFC9
>>978
アドバイスありがとうございます.
そのアドバイスを元にこんなバッチファイルを作成したのですが, 全く動作しません.
http://www.uploda.org/uporg774186.txt
何が悪いのでしょうか?
どう修正したら良いのかわからなくなってきました・・・.
981 :名無し~3.EXE:2007/04/14(土) 16:52:34 ID:YRhG6sRI
if /?よめ.
982 :名無し~3.EXE:2007/04/14(土) 17:48:08 ID:b97HeRvr
もし〜だったら・・・する.
という構文なのに.
もし〜だったら.
だけ書いてどうするんだ. w.
983 :名無し~3.EXE:2007/04/14(土) 18:53:03 ID:6SAiqFC9
>>982
いや, だから.
call :com
でまず ラベル:comに飛ばして.
:com
if %~z1==%~z2
この比較(ファイルAとファイルBが等しいか)をして, その比較の戻り値( %errorlevel% で参照可能のはず)
が, callで読んだ次の行に戻ってきてif errorlevel 1 ( で, 先ほど戻ってきた%errorlevel%
の値を参照して, もし等しくないなら1が入ってるはずで, 等しいなら0が入ってるはずなので.
1が入ってる場合にエラーを表示.
って言う事をやっているのですが, もしかして :comを使いまわすようなコーディングしたら.
ダメなんですかね?戻り値をどうやればcallで呼んだメインの方に返せるのかが分かりません.
returnコマンドとかあるのかな・・・.
984 :名無し~3.EXE:2007/04/14(土) 18:56:25 ID:6SAiqFC9
>>982
>もし〜だったら.
>だけ書いてどうするんだ. w.
もし等しかったら〜 %errorlevel%に0を入れて呼び出し元に戻る.
そうでなければ〜 %errorlevel%に1を入れて呼び出し元に戻る.
ってやりたいんですよ.
そしたら戻ってきた時に%errorlevel%の中身を参照して処理を振り分ける事が出来る.
985 :名無し~3.EXE:2007/04/14(土) 19:02:58 ID:v4DEaveu
そんな面倒なことしないで>>978みたいにcall先でechoすれば?
:com
if %~z1==%~z2 (
echo %~n2ファイルは正常にコピーできています) else (
echo エラー!!%~n2のファイルサイズが異なっています!正常にコピーできていません)
goto :eof
986 :名無し~3.EXE:2007/04/14(土) 19:40:55 ID:6SAiqFC9
>>985
そのようにcall先でechoすると.
goto :eof
で終わった際に, 呼び出し元に戻りますか?
それとも, 本当に呼び出し元に戻りなんかせずにEOFの通りファイルの最後,
つまりbat処理を終了してしまいますか?
1個正常にコピーできてないって出力したとしても, 残りの4つも全て比較したいんで.
終わるわけにはいかないんですよ.
# まだだ, まだおわらんよ.
とりあえず>>978さん及び>>985さんのアドバイスを元に修正したbatファイルを.
次のレスで投稿します.
かなり量が減ってスッキリしましたが, 動作しません.
エラーメッセージは.
== の使い方が誤っています.
です.
987 :名無し~3.EXE:2007/04/14(土) 19:41:45 ID:6SAiqFC9
@echo off
echo C:\WINDOWS\repair\中のファイルが正常にC:\WINDOWS\system32\config\の中にコピーされたか.
echo どうかをファイルサイズで比較してチェックします. kj_kai2.batを実行した後に実行して下さい.
echo Ctrl+Cキー同時押しでチェックをキャンセルできます.
pause
call :com c:\windows\repair\system c:\windows\system32\config\system
call :com c:\windows\repair\software c:\windows\system32\config\software
call :com c:\windows\repair\sam c:\windows\system32\config\sam
call :com c:\windows\repair\security c:\windows\system32\config\security
call :com c:\windows\repair\default c:\windows\system32\config\default
echo 1つもエラーが出なければ正常に5つのファイルがコピーできています.
echo もし1つでもエラーが出たならば, エラーが出たファイルを手動でコピーしてください.
echo Backupファイルは C:\WINDOWS\tmp\の中にあるはずです.
pause
goto :EOF
:com
if %~z1==%~z2 (
echo %~n2ファイルは正常にコピーできています.
) else (
echo エラー!!%~n2ファイルのファイルサイズが異なっています!正常にコピーできていません.
)
pause
goto :EOF
988 :名無し~3.EXE:2007/04/14(土) 19:45:33 ID:YRhG6sRI
helpよめ.
set/?よめ.
989 :名無し~3.EXE:2007/04/14(土) 19:48:51 ID:YRhG6sRI
goto/?よめ.
990 :名無し~3.EXE:2007/04/14(土) 20:15:13 ID:YRhG6sRI
だいぶ重症だな.
ファルダまたはディレクトリって分るかな?
ms-its:C:\WINDOWS\Help\glossary.chm::/glossary_per.htm#JPN_HA
991 :名無し~3.EXE:2007/04/14(土) 20:40:44 ID:HZdXwwGg
>>987
repairの方はファイル名が system.bak じゃね?
if "%~z1"=="%~z2"
などにしとけばファイルがない場合でも構文エラーにはならなくなる.
つーかさ, これ, Windows上で実行するのか?
もし生DOS上で実行するなら拡張機能は一切使えないぞ.
992 :名無し~3.EXE:2007/04/14(土) 21:10:59 ID:6SAiqFC9
>>991
repairの方もsystemです. .bakは C:\WINDOWS\tmpに作成されるbatがあります.
ファイルは存在するので, ファイルが存在しないからエラーなのではなくて.
多分構文がおかしいのかと.
Windows上でも生DOS上でも実行しませんよ.
実行するのはBartPE上です.
993 :名無し~3.EXE:2007/04/14(土) 21:34:09 ID:HZdXwwGg
ふーん. うちのWinXPでは動くけどね〜〜.
BATは基本的に変数展開のあとに構文解析するから.
echo off せずに表示してみれば?
994 :名無し~3.EXE:2007/04/14(土) 21:50:36 ID:bU+xOO1T
==の使い方が間違ってると出たら, ファイルが存在してないことが原因.
995 :名無し~3.EXE:2007/04/14(土) 21:56:50 ID:bU+xOO1T
@echo off
echo a>a.txt&echo bb>b.txt
setlocal
rem +++ used local-variable : err_no, flag
echo [test1 start]&call :cmp2 a.txt a.txt
echo [test2 start]&call :cmp2 a.txt b.txt
echo [test3 start]&call :cmp2 a.txt x.txt
echo [test4 start]&call :cmp2 x.txt a.txt
echo [test5 start]&call :cmp2 x.txt x.txt
:end
del a.txt b.txt c.txt
endlocal
goto :eof
:cmp
set /a flag=0
if not exist %1 set /a flag = 2
if not exist %2 set /a flag += 4
if %flag% gtr 0 set err_no=%flag%&goto :eof
if %~z1 neq %~z2 set err_no=1&goto :eof
set err_no=0&goto :eof
:cmp2
call :cmp %1 %2
call :errmsg %err_no%
goto :eof
:errmsg
if %1 equ 6 echo *** error: file 1 and 2 not found ***
if %1 equ 4 echo *** error: file 2 not found ***
if %1 equ 2 echo *** error: file 1 not found ***
if %1 equ 1 echo *** error: unmatched sizes of file ***
if %1 equ 0 echo === same sizes of file ===
echo:&goto :eof
996 :名無し~3.EXE:2007/04/14(土) 22:30:16 ID:/RBcjwqG
ume
997 :名無し~3.EXE:2007/04/14(土) 22:47:52 ID:hbxFcMHM
次スレをたてましょうか?
998 :名無し~3.EXE:2007/04/14(土) 22:57:23 ID:hbxFcMHM
次スレ.
ユーザー必読!コマンドライン(DOS Pt.6)
http://pc11.2ch.net/test/read.cgi/win/1176558776/l50
サブジェクトが長過ぎるため, 新規スレがたてられなかったので, タイトル(サブジェクト)を変更しました.
999 :名無し~3.EXE:2007/04/14(土) 23:00:28 ID:hkKg08IN
乙.
1000 :名無し~3.EXE:2007/04/14(土) 23:17:02 ID:NDOCwV5G
続きは,
次スレ.
ユーザー必読!コマンドライン(DOS Pt.6)
http://pc11.2ch.net/test/read.cgi/win/1176558776/l50
1001 :1001:Over 1000 Thread
このスレッドは1000を超えました.
もう書けないので, 新しいスレッドを立ててくださいです. . .
278 KB [ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 05.0.4.6 2007/03/20
FOx * DSO(Dynamic Shared Object)
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/