初心者〜管理者まで必読!コマンドライン(DOS Pt.5)
レス数が1000を超えています。これ以上書き込みはできません。
0001名無し~3.EXE
2006/07/11(火) 00:22:35ID:HxtG+321前スレ
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。
質問も歓迎だけど、自分で調べて勉強する努力も忘れずに。
0002名無し~3.EXE
2006/07/11(火) 00:24:53ID:HxtG+3217c7
< 4 http://pc8.2ch.net/test/read.cgi/win/1062775949/
---
> 4 http://pc8.2ch.net/test/read.cgi/win/1116131036/
0003名無し~3.EXE
2006/07/11(火) 01:22:52ID:Jt4CDqIy0004名無し~3.EXE
2006/07/11(火) 01:37:39ID:oqrI561G0005名無し~3.EXE
2006/07/13(木) 01:06:15ID:CMHslxMB0006WindowsXP
2006/07/13(木) 15:46:40ID:HlT6NdOeクリックでTempフォルダの中身を消去するアイコン (.bat ファイル) を作りたいのですが、
rmdir /s "Tempフォルダのパス"
だとTempフォルダ自体も消えてしまいます。
この場合に限らず、ディレクトリの中身だけを削除する場合どのように命令すればよいのでしょか。
0007名無し~3.EXE
2006/07/13(木) 15:56:13ID:QTEtV8XE0008名無し~3.EXE
2006/07/13(木) 15:59:22ID:f3nQB2M5なんてな
0009名無し~3.EXE
2006/07/13(木) 17:58:16ID:ooElHgFfこれのバッチファイルの書き方教えて。
0011名無し~3.EXE
2006/07/13(木) 18:09:40ID:ooElHgFfメモ帳で書いて拡張子を.batにしてhotfixと同じフォルダに入れて
クリックするだけでいいんですか。
0012名無し~3.EXE
2006/07/13(木) 21:51:09ID:/VQW/QIJただ、/sだけでは「よろしいですか (Y/N)?」と聞いてきてしまうので、/qも付けたほうがいいかも。
0013名無し~3.EXE
2006/07/13(木) 21:55:08ID:/VQW/QIJ丸消しに逝ってしまうので、
cd 対象フォルダ&&rmdir /s /q .
としたほうが良いと思う。
0014名無し~3.EXE
2006/07/13(木) 21:58:41ID:64yIeWy4dir /b > patch.batとすれば、多少、編集が楽になるし、
for など使えば、-m -z でOKなパッチだけだったら、
ディレクトリ内のパッチをあてるようにもできるだろうし。
-m -z が使えないのが混ざってるとだめだけど。
001514
2006/07/13(木) 22:02:43ID:64yIeWy40016名無し~3.EXE
2006/07/13(木) 22:21:46ID:1rMuZnzqこうしておけば更新日時が古い順に並ぶお。
ダウンローダでファイルの日時を取得してるならこうやって並べると気持ちいいかも。
0017名無し~3.EXE
2006/07/20(木) 01:17:00ID:w2h+z3FqXPProで回復コンソールをWINDOW配下にインストールしたいのですが、
何かいい方法ないでしょうか? デフォだと%SYSTEMDRIVE%に強制的に
作られるんですが、ルートってのは目障りなんです。手動でWINDOWS
配下に移し、BOOT.INIのパス表記も合わせても、回復コンソール起動中に
TXTSETUP.SIFが見つからない云々…のエラーが出てしまいます。
よろしくおねがいします。
0018名無し~3.EXE
2006/07/20(木) 09:44:57ID:DOSQ1KF2下記スレッドで再度質問してください。
WindowsXP質問スレ 152ページ目
http://pc8.2ch.net/test/read.cgi/win/1152982564/
本当にありがとうございました。
0019名無し~3.EXE
2006/07/20(木) 09:45:28ID:DOSQ1KF20020名無し~3.EXE
2006/07/20(木) 13:29:50ID:/kQGoaOV0021名無し~3.EXE
2006/07/20(木) 14:00:03ID:bWg0PLegbatでwavを呼び出して一度だけ再生して
終了させる方法はありませんか?
環境はXPproです。
002221
2006/07/20(木) 14:28:35ID:bWg0PLeg0023名無し~3.EXE
2006/07/20(木) 23:07:55ID:KmtrP+Qh0024名無し~3.EXE
2006/07/21(金) 18:13:50ID:QFAk7q3Q002521
2006/07/22(土) 05:25:08ID:WFo5cAzv自分としては
一応別の言語でそれっぽいもの作って対応。
sleepとかもいつの間にか消えてたんでついでに作りました。
なんでバッチに拘ってるか分からなくなってきたorz
というかコマンドプロンプトで解決できてないや・・・
0026名無し~3.EXE
2006/07/22(土) 12:50:08ID:NiBpIi7E0027名無し~3.EXE
2006/07/23(日) 15:55:03ID:98gcVlRVディレクトリ名にはワイルドカードは使えないんでしょうか?
例:\settingというディレクトリを指定したい
0028名無し~3.EXE
2006/07/23(日) 21:00:56ID:kD5ysoEu0029名無し~3.EXE
2006/07/24(月) 04:00:54ID:Pj4INBC0ttp://www.seshop.com/book/preview/200309/4798104426-dos.pdf
ttp://www.vector.co.jp/soft/win95/util/se010511.html
0030名無し~3.EXE
2006/07/26(水) 00:30:25ID:7KnQnoV2IEを直接呼び出したいと思っています。
例えばこんな感じです。
> 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"
環境変数の展開を抑制する方法はないものでしょうか。
ダブルクオートの代わりにシングルクオートは試してみましたが駄目でした。
0033名無し~3.EXE
2006/07/26(水) 04:55:47ID:bvsfqXHvしておくとか
0035名無し~3.EXE
2006/07/26(水) 05:28:41ID:Fcd8s0ZU003630
2006/07/26(水) 06:30:30ID:7KnQnoV2>>33
なるほどこれもいけますね。
汎用性がちょっと低いのが難点でしょうか。
>>34
実はこのコマンドラインを最終的には Perl のスクリプトの中に
含めたいのですが,その関係上でできれば Shift_JIS で
いきたかったのです。
>>31氏も含め皆様どうもありがとうございました!
0037名無し~3.EXE
2006/07/26(水) 13:17:43ID:Uf4XzLbe0038名無し~3.EXE
2006/07/27(木) 13:34:20ID:AYHBeKOkアニメ BEST100
ttp://www.animedepot.biz/DVDlist/2005years_best.htm
1位
http://www.animedepot.biz/DVDlist/title/KVDVD0542.htm
2位
http://www.animedepot.biz/DVDlist/title/KVDVD0518.htm
3位
http://www.animedepot.biz/DVDlist/title/A18D2492.htm
4位
http://www.animedepot.biz/DVDlist/title/KVDVD0533.htm
5位
http://www.animedepot.biz/DVDlist/title/A18D2480.htm
6位
http://www.animedepot.biz/DVDlist/title/KVDVD0512.htm
7位
http://www.animedepot.biz/DVDlist/title/KVDVD0502.htm
8位
http://www.animedepot.biz/DVDlist/title/KVDVD0521.htm
9位
http://www.animedepot.biz/DVDlist/title/KVDVD0505.htm
10位
http://www.animedepot.biz/DVDlist/title/KVDVD0508.htm
0039名無し~3.EXE
2006/07/27(木) 14:05:13ID: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は触ってるのですが、このような処理をどう書くのか忘れてしまって困っています。
なにかいい案はないでしょうか?
0040名無し~3.EXE
2006/07/27(木) 16:57:01ID:AwHWEOxl0041名無し~3.EXE
2006/07/27(木) 17:18:18ID:ed7fKJ1kforあたりを使いそうなのはわかるのですが、どう書いたらよいのかわかりません。
0042名無し~3.EXE
2006/07/27(木) 17:48:09ID:ejfXxMCP0043名無し~3.EXE
2006/07/27(木) 18:42:23ID:ZyGLQChd0044名無し~3.EXE
2006/07/27(木) 19:16:31ID:3HWIL+gJDOS時代のforの機能で十分だし。
0045名無し~3.EXE
2006/07/27(木) 19:39:25ID:IqaLZ9Vg2行目を
for /f %%F in ('dir /b %1') do copy dummy2.jpg+%F
にしたらどうだ?
0046名無し~3.EXE
2006/07/27(木) 19:53:31ID:FVkrqnx/004745
2006/07/27(木) 21:11:39ID:IqaLZ9Vgfor /f %%F in ('dir /b %1') do (
copy dummy2.jpg+%%F
ren dummy2.jpg %%F
)
>>45をカキコした直後にブレーカーが落ちたもんですぐ訂正できなかった(泣)
004945
2006/07/27(木) 21:53:28ID:IqaLZ9Vgいけね、コピー先のファイル名はこの場合省けないのねorz
for /f %%F in ('dir /b %1') do (
copy /y dummy.jpg+%%F dummy2.jpg
move /y dummy2.jpg %%F
)
これでおk?
0050名無し~3.EXE
2006/07/27(木) 22:24:06ID:HBIHjoKe0051名無し~3.EXE
2006/07/28(金) 03:06:39ID:1XL80h13どうしたらいいですかね?
それと
dir hogehoge.txt /s /b
で取れたフルパスをそのまま実行させたいのですがどうしたらいいのでしょう?
お願いします
0052名無し~3.EXE
2006/07/28(金) 03:20:05ID:DKUy5lzOお前も例にもれず、for /?
005351
2006/07/28(金) 03:22:10ID:1XL80h13hogehoge.txtはファイル名は判っていますがサブフォルダに深く潜り込んでいて
その為dir検索しています
005451
2006/07/28(金) 03:27:53ID:1XL80h13で
start(改行文字)
hogehoge.txtのフルパス
ってやりたかったんですが・・・
005751
2006/07/28(金) 03:54:27ID:1XL80h13ありがとー
0058名無し~3.EXE
2006/07/29(土) 01:06:41ID:DUV1QYxhecho 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
でだめなんでしょうか?
動かないんですけど。。。
0059名無し~3.EXE
2006/07/29(土) 01:23:04ID:QdzE6wVf0060名無し~3.EXE
2006/07/29(土) 03:01:48ID:DUV1QYxhやっぱりだめですか
書き換え方教えてください
006158
2006/07/30(日) 16:20:22ID:TgP6edG50062名無し~3.EXE
2006/07/30(日) 16:32:31ID:jss5BkeSping
ping.exe
006358
2006/07/30(日) 17:24:04ID:TgP6edG5えっ、どういうことでしょうか?
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"
)
ってことですか?
0064名無し~3.EXE
2006/07/30(日) 18:17:51ID:URlOCn8N必死だなw
0066名無し~3.EXE
2006/07/30(日) 19:16:53ID:OKe+j+Rmそれにbat中で別batを呼び出すのに単にbatって書いちゃダメだろ。
0067名無し~3.EXE
2006/07/30(日) 22:37:49ID:TgP6edG5えーと、こういうことでしょうか?
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
006867
2006/07/31(月) 02:00:01ID:pjJQiXPCありがとうございました
0069名無し~3.EXE
2006/08/02(水) 13:36:04ID:wsgBoBsRマウス(Hamma)の型番が不明でドライバーも見つかりません。
ディバイスマネージャでは、PS2-Pad というドライバがひとつ
だけあります。 ドライバの更新、トラブルシューティングを
やっても直りませんでした。
どうすれば、マウスが動くようになるでしょうか?
0070名無し~3.EXE
2006/08/02(水) 14:12:40ID:5OwJeRGWスレタイ読める?
007169
2006/08/02(水) 14:23:26ID:wsgBoBsR申し訳ありませんでした。 w
気にせずに質疑、議論を進めてください。
0072名無し~3.EXE
2006/08/02(水) 14:38:30ID:BwFBApMu. ィ
.._ .......、._ _ /:/l!
:~""''.>゙' "~ ,、、''‐'、| _ ご冗談を
゙、'、::::::ノ:::::::_,.-=. _〜:、 /_.}'':,
``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:' ノ゙ノブ
" .!-'",/ `'-‐'') /\ `/ でノ-〈
.-''~ >'゙:: ‐'"゙./ ヽ.,' ~ /
//::::: ', / ,:'
0073名無し~3.EXE
2006/08/03(木) 00:20:18ID:6j4+y6+nコマンド実行結果によるERRORLEBELの値で分岐処理をしようと思っているのですが、
ERRORLEVELの値についてコマンド/?を調べてもどこにも書かれていません。
自分でざっと調べた結果、正常処理なら「0」、異常処理なら「それ以外」のように
思うのですが、具体的な値はどのように調べればよろしいでしょうか
ご教授願います。
0074名無し~3.EXE
2006/08/03(木) 00:28:02ID:L7kyqlc50075名無し~3.EXE
2006/08/03(木) 00:55:21ID:CapLiwm3これと言った統一ルールは無いよ。
ただ特に説明が無ければ、正常だろうがエラーだろうが
大抵は「0」が返ってくると思う。
何が変えるかはコマンドやexe次第。
C言語分かるなら、mainの戻り値≒ERRORLEVEL と思えばよろし。
0076名無し~3.EXE
2006/08/03(木) 01:58:48ID:JXRq3dhJ0077名無し~3.EXE
2006/08/03(木) 03:47:48ID:CnXcCkLB統一した値など全くない。
0078名無し~3.EXE
2006/08/03(木) 03:54:37ID:BA6wBAJp0080名無し~3.EXE
2006/08/03(木) 06:13:20ID:4ppbqAX60082名無し~3.EXE
2006/08/03(木) 19:25:12ID:YhlYC0Ja0084名無し~3.EXE
2006/08/03(木) 20:07:13ID:EDvrYDRp0を返すと思うが…。
0085名無し~3.EXE
2006/08/03(木) 20:51:35ID:b//5CN2iもしダンマリとか落ちるとか以外の終了の場合ならそりゃその通りかもしれんが
普通それは想定内とか言う意味じゃない。
(そういうコマンドなら、unknownエラーでも0を返すよ)
0086名無し~3.EXE
2006/08/03(木) 22:13:36ID:L7kyqlc5なんのコマンドかに因らず「0なら正常終了」と考えられるかといえばそうじゃないのは確か。
でも、コマンドごとにどういうケースで0返すか考えて使うなら非常に有用だよ。
0088名無し~3.EXE
2006/08/03(木) 23:15:55ID:JXRq3dhJ0089名無し~3.EXE
2006/08/04(金) 00:30:32ID:3SMtX8D30090名無し~3.EXE
2006/08/04(金) 01:08:39ID:0qOdq+cq0091名無し~3.EXE
2006/08/04(金) 07:31:44ID:kPylik4/となってない標準コマンドってあります?
ほとんど上記パターンに則ってると思うんだけど。
0092名無し~3.EXE
2006/08/05(土) 02:53:21ID:inmltxCgCHOICEコマンド
0094名無し~3.EXE
2006/08/13(日) 08:36:26ID:GfGxOKgQ何がしたいかといいますと、beckyというメールソフトを使ってるのですが、
フィルタリングマネージャなどで条件により、プログラムの起動。
そのプログラムに引数として、メール本文を投げ、処理を行ったあと、
結果をテキストファイルとして出力したいんです。
どなたか詳しい方いらっしゃいますでしょうか?
0095名無し~3.EXE
2006/08/13(日) 09:27:06ID:albh57vU引数は%1 %2 %3 ...で参照できるよ。
hoge.bat中に、
その処理させたいプログラム名 %1 > %2
って書けば、
hoge.bat hage.txt uge.txt
でhage.txtが処理されてuge.txtに出力される。
0096名無し~3.EXE
2006/08/15(火) 18:59:50ID:tB2dtgI0自動実行するコマンドってあるのでしょうか?
0097名無し~3.EXE
2006/08/15(火) 19:25:23ID:UN+U0IeJスタートアップで起動してBATの最後にリンクを削除するようにするとか
レジストリの runonce に登録するとか
試した?
009896
2006/08/15(火) 19:46:01ID:tB2dtgI0自動実行って、そういうコマンドがあるんじゃなくって、
タスクに登録するなりして実現するものなんですね。
恥ずかしながら、コマンド一つで出来るものかと思っておりました。
ありがとうございました。
0099名無し~3.EXE
2006/08/15(火) 19:51:42ID:UN+U0IeJ0100名無し~3.EXE
2006/08/15(火) 22:40:06ID:rx3Cek+fコマンドプロンプト上で
AフォルダとBフォルダの中身を比較して(下層フォルダ含む)
AフォルダにあるものをBフォルダから削除するには
どうすればよいでしょうか?
出来ればMD5などのハッシュ比較も行いたいです。
あと、ハングル名などのunicodeでもこれは可能でしょうか?
0101名無し~3.EXE
2006/08/15(火) 22:48:55ID:tPpDxHgbハッシュ比較は無理だけど。
0102名無し~3.EXE
2006/08/15(火) 22:54:14ID:rx3Cek+fスタートフォルダは普通に英数なんですけど
下層フォルダとファイル名がハングルなのですが
その場合でも出来そうですか?
サイズ比較くらいでも無理ですかね?
0103名無し~3.EXE
2006/08/15(火) 23:02:27ID:UN+U0IeJファイルサイス一致するかどうか、次にバイナリ一致するかどうか
で試してみれば?
コンペアさせる順序をファイルサイズでソートすれば
ファイル数がそれほど多くなければ十分実用になると思う
0105名無し~3.EXE
2006/08/15(火) 23:15:37ID:5SvS0Mipスクリプト(このスレ的にはコンソールスクリプトかな)でやる方がいいね。
それとハッシュでの比較ってのは、既にどちらかのハッシュが算出してある場合以外は無意味。
何故かというと、通常のバイナリ比較だと
Aのバイナリを読み込み→Bのバイナリを読み込み→バイナリ比較
という流れだが、ハッシュ比較だと、ハッシュというのはバイナリ全体から算出するものなので
Aのバイナリを読み込み→Aのハッシュを算出→Bのバイナリを読み込み→Bのハッシュを算出→ハッシュ比較
と手間が増える上に、ハッシュというのは別バイナリで同一ハッシュになる可能性もあるから
信頼性は下がるという悪いこと尽くめの方法。
>>104
数千くらいなら全然問題ないでしょ。
20億越えると危険だけど。
まあ、数が多けりゃそれだけ時間は掛かるが
処理時間はファイル数よりファイルサイズ一致数に影響される。
0106名無し~3.EXE
2006/08/16(水) 00:16:10ID:ctOK82Icfor /?
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
0107名無し~3.EXE
2006/08/16(水) 00:55:02ID:TUJADtxE初心者なりに頑張ってみます。
0108名無し~3.EXE
2006/08/16(水) 15:17:04ID:z35aAI0Xxcopyのコマンドでコピー先に既にあるファイルはコピーしない とするにはどうしたらいいでしょうか?
0111名無し~3.EXE
2006/08/16(水) 17:57:50ID:q2ajl0ca0112名無し~3.EXE
2006/08/16(水) 21:39:21ID:9gYsTFoa「-x」や「-x <パラメータ値>」のような形でパラメータを
渡して利用者が使いやすいような仕組みにしてあげたいとおもうのですが、
それをサポートしてくれる便利なツールなどはありますでしょうか?
(UNIXでいうgetoptsないしgetoptみたいなもの)
0113名無し~3.EXE
2006/08/16(水) 23:40:15ID:WP4Sa4y5shift とか for (%*) とか使えば何とかなるのじゃ。
0114名無し~3.EXE
2006/08/16(水) 23:43:13ID:FN2GT4dW/dかな。
指が覚えてるフォルダ丸ごと差分コピー。漏れが一番よく使う使い方。
xcopy /deciqhrkoxy コピー元フォルダ コピー先フォルダ
0115名無し~3.EXE
2006/08/16(水) 23:44:00ID:FN2GT4dW便利なツールは知らないけど、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
0117名無し~3.EXE
2006/08/17(木) 12:52:33ID:ukr3w+FOありがとうございます!findと暗黙的ループ変数を組み合わせて使うことはおもいつきませんでした。
大変たすかりました
0118名無し~3.EXE
2006/08/19(土) 15:35:36ID:5KecWynB@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
0119名無し~3.EXE
2006/08/19(土) 20:26:04ID:XQgYyCo4この前から見てますが↑これと>>115はどうやって使うんですか?
BATファイルにして動かしても、、、、何ですが、、、、
0121名無し~3.EXE
2006/08/19(土) 20:58:14ID:KhGo//4y0122名無し~3.EXE
2006/08/19(土) 21:01:27ID:KhGo//4yBATの内容読んだら、パラメタには、
-A:xxxx -B:yyyy
というようにコロンで区切って値を渡すようになってたよ。
0123名無し~3.EXE
2006/08/19(土) 21:08:22ID:VuqHKvs30124名無し~3.EXE
2006/08/19(土) 21:24:53ID:g4LMndok使いたくなる人が増えたら作者も作ったかいがあるというものだ
だれか親切な人使い方教えてくれ
0125名無し~3.EXE
2006/08/19(土) 21:36:25ID:5KecWynB2. 各行の末尾に空白文字(半角スペース)が入ってたら消す。
3. 「hoge.bat」でファイル名を付けて保存。
4. コマンドプロンプトで、
hoge.bat -A:apple -B:bag -C:cat -D:dog
とか打ってみる。
5. 下の表示が出たら成功。
スイッチ -A で指定された値は apple です。
スイッチ -B で指定された値は bag です。
スイッチ -C で指定された値は cat です。
スイッチ -D で指定された値は dog です。
5. 引数いろいろ変えてテストしてみてクレ。
0126名無し~3.EXE
2006/08/19(土) 21:39:14ID:5KecWynB0127名無し~3.EXE
2006/08/23(水) 21:21:56ID:ObYRfIur別のユーザで実行したいんですけどできます?
OSはxpです。
start コマンドでexeファイルは起動できるのですが、
別ユーザ権限で実行したいのです。
exeファイルを右クリックしてメニューに出てくる「別のユーザで実行する」のを
コマンドでできますでしょうか?
0128名無し~3.EXE
2006/08/23(水) 21:31:04ID:7V6omiO20130名無し~3.EXE
2006/08/26(土) 09:41:20ID:U3mxe7Fypauseだと人が押さないとアレなんで…
0131名無し~3.EXE
2006/08/26(土) 09:56:58ID:WC4q3ZS6作る(例 http://pc8.2ch.net/test/read.cgi/tech/1123842575/39 )
0132名無し~3.EXE
2006/08/26(土) 10:27:49ID:FeFrpd2p@echo off
echo 約5秒待ちます...
start /min /wait mshta.exe "javascript:void(setTimeout('window.close()', 5000))"
echo ok
0133名無し~3.EXE
2006/08/26(土) 10:28:53ID:wQZ6u8Br' C> cscript //nologo sleep.vbs 5
Set args = WScript.Arguments
if args.Count = 1 then WScript.Sleep args.Item(0) * 1000
0135名無し~3.EXE
2006/08/26(土) 10:35:25ID:FeFrpd2ptry{WScript.Sleep(1000*WScript.Arguments(0));}catch(e){}
を作って,バッチファイル中に
cscript //b sleep.js 10
のように書けば10秒sleep。
0137名無し~3.EXE
2006/08/26(土) 10:45:38ID:U3mxe7Fyありがとうございます、そちらも試してみます。
0138名無し~3.EXE
2006/08/26(土) 12:57:25ID:LVNArOwt0140名無し~3.EXE
2006/08/26(土) 21:13:02ID:wQZ6u8Brまあ、バッチファイルにそれほど細かい精度を要求する人はいないと思うが…
0141名無し~3.EXE
2006/08/26(土) 21:29:02ID:WC4q3ZS6ping 0 -n 11 > nul
で
0142名無し~3.EXE
2006/08/26(土) 22:35:39ID:QOJ05dBwなごんだ
感心した
0143名無し~3.EXE
2006/08/27(日) 15:35:30ID:T5Kq+UaQmore +!nl! hoge.txt>hoge.txt
とするとテキストが空になってしまうのですが、一度別のファイルに書き出してからじゃないと上書きは無理ですか?
0144名無し~3.EXE
2006/08/27(日) 15:37:54ID:T5Kq+UaQsetlocal enabledelayedexpansion
set /p n=
です
0145名無し~3.EXE
2006/08/27(日) 19:42:41ID:UeDkqXpAこれはどのソフトでも同じ。
他ソフトを見習って、一旦作業ファイルに出力した後、
入力ファイル削除、出力ファイルをリネームしろ。
0147名無し~3.EXE
2006/08/28(月) 02:44:43ID:tGN/v/7N実際は作業ファイルを別に作成したりしてるわけで保存時に
そのファイルを移動したりしてる。
元のファイルはその前に削除したりバックアック名にリネームしたりしてて。
0148名無し~3.EXE
2006/08/29(火) 12:00:53ID:meFFkd6MOSはWindows XP Proです。
0149名無し~3.EXE
2006/09/05(火) 01:30:08ID:J1YU4f6y↑このソフトに関するバッチファイルの記述をどなたか解説していただけないでしょうか
お願いします
0150名無し~3.EXE
2006/09/05(火) 02:03:44ID:so+Ty3eJ[このソフトのパス]wisteria <設定ファイル> <画像ファイル...>
例:
c:\resizer\wisteria.exe "c:\resizer\custom.ini" "c:\a.jpg" "c:\b.jpg" "c:\c.jpg"
Helpくらい嫁。
0152名無し~3.EXE
2006/09/05(火) 02:18:00ID:fKR1uigz0153名無し~3.EXE
2006/09/05(火) 02:37:33ID:f0JURZ4F実行ファイル(及びショートカット)ではなく、起動したウインドウへ D&D してください
って書いてあるじゃん
0155名無し~3.EXE
2006/09/05(火) 02:51:07ID:J1YU4f6yViXからのSendTo内バッチファイル実行が不可能なようですお騒がせしましたすいません
0156名無し~3.EXE
2006/09/05(火) 02:56:37ID:lhq1jDgQ0157名無し~3.EXE
2006/09/05(火) 03:24:58ID:J1YU4f6yショートカットだと>>153の方が言っておられますように
ウィンドウへD&Dが必要なんです
バッチファイルを使用するとそのD&Dの手間が省けるので楽です
0159名無し~3.EXE
2006/09/05(火) 03:56:26ID:J1YU4f6yエクスプローラーの送るメニューからは可能なようです
ViXのバグか何かだと思いますお手数おかけしてすいません
0160名無し~3.EXE
2006/09/06(水) 20:21:28ID:37Qi347Mmsdosで起動するソフトなんですが????です。
% mecab ファイルパス -o 別のファイルパス って入力すればいいんじゃないんですか?
http://academy4.2ch.net/test/read.cgi/english/1147601343/918
引数にファイルを与えると, そのファイルが解析対象となります. また, -o オプションにて, 別のファイルに結果を出力することも可能です.
% mecab INPUT -o OUTPUT
0161名無し~3.EXE
2006/09/06(水) 20:22:10ID:37Qi347M0162名無し~3.EXE
2006/09/08(金) 10:02:24ID:QU5REhu+誤爆なのか。確かにスレ違いだが
完全に外してるワケでもない微妙な誤爆だなw
例えば解析したいファイルの名前が「aaaaaaa」で
その結果を「bbbbbbbb」に保存したいなら
コマンドプロンプト開いて
mecab aaaaaaaa -o bbbbbbbb
って打ってエンター、な。
0163名無し~3.EXE
2006/09/09(土) 02:02:28ID:l7Z6gnOX作者です(w
ショートカットでいけますよ.
ショートカットのプロパティのリンク先をこんな感じにします.
"D:\release\resizer\wisteria.exe" "D:\release\resizer\pattern01.ini"
0164名無し~3.EXE
2006/09/09(土) 02:09:44ID:mRjJ9uKf0165名無し~3.EXE
2006/09/09(土) 02:29:17ID:9IbISJaR0167名無し~3.EXE
2006/09/09(土) 04:59:48ID:b6RM+FdO方法ってありますでしょうか。
たとえば、
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あたりでどうにかする
方法をごぞんじないでしょうか?
0168名無し~3.EXE
2006/09/09(土) 05:26:27ID:9IbISJaR0169名無し~3.EXE
2006/09/09(土) 11:47:46ID:C5Wo58dxat 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 のフォルダの参照がデフォルトです。
このエラーの回避方法が分からず悩んでいます。
どなたかアドバイスを宜しくお願いいたします。
0170169
2006/09/09(土) 12:06:00ID:C5Wo58dx↑の画像、うまく見えないみたいなので、他の箇所にアップロードしました。
宜しくお願い致します。
http://upload.fam.cx/cgi-bin/img-box/du760909120451.jpg
0171名無し~3.EXE
2006/09/09(土) 13:30:16ID:A+UCQsHR0172名無し~3.EXE
2006/09/09(土) 13:50:11ID:C5Wo58dxレスありがとうございます!
タスクとはどこから開けますか?
0174名無し~3.EXE
2006/09/09(土) 14:01:01ID:9IbISJaR0175167
2006/09/09(土) 16:38:46ID:b6RM+FdOためしに、
rundll32 user32.dll,SendMessageA 65535 26 0 0
とやってみましたが反映させませんでした。rundll32 では呼び出せないのかな。
うーん、なんとかならんですかねえ。
0176名無し~3.EXE
2006/09/09(土) 17:38:34ID:8eEUOKMl「Windows XP Service Pack 2 サポート ツール」や「Windows 2000 Resource Kit」などから
setx.exeを拾ってくれば?
0177名無し~3.EXE
2006/09/09(土) 17:50:25ID:QgusI8odが出来ないため見づらく困っています。
全体を表示させるにはどうしたらいいでしょうか?
尚、XP-Proも持っていますが、このDOSで実行すると、プログラムが閉ループ
に入るため使っていません。
0178名無し~3.EXE
2006/09/09(土) 17:57:20ID:/swEvRPS使ったこと無いけど
0179名無し~3.EXE
2006/09/09(土) 20:48:35ID:C5Wo58dx以下のようにsleep コマンドだと思うのですがうまくいきません。
どなたかアドバイスお願いいたします。
start "" /MAX "C:\自動起動\a.exe"
sleep 5
start "" "C:\自動起動\b.exe
0180名無し~3.EXE
2006/09/09(土) 21:00:31ID:lO4MfV+7最初のstartには /WAIT オプションが必要でしょう。
あとは
>>131-141
を参照。
0181180
2006/09/09(土) 21:04:03ID:lO4MfV+7「/WAIT オプションが必要」は撤回します。
0183名無し~3.EXE
2006/09/09(土) 21:32:44ID:C5Wo58dxタスクから自動実行すると実行は時刻どおりにしますが
5秒の間隔は無視されてしまいます。
しかもa.exeは非アクティブになります。
何か間違っていることがあればご指摘お願いします。
バッチファイル
start "" /MAX /WAIT C:\a.exe
cscript //b sleep.js 5
start "" /WAIT "C:\b.exe
0184名無し~3.EXE
2006/09/09(土) 21:36:39ID:m9zXbjkI↓
timeout /t 5
0185177
2006/09/09(土) 21:44:15ID:Ya9BvK8Xさんきゅうです。NYADOSを試しましたが駄目でした。ck (for Win9x)は
PCの調整が必要なため、未だ試していません。ところで
ttp://flex.ee.uec.ac.jp/texi/emacs-jp/emacs-jp_118.html#IDX663
の C-x [ 前のページとの区切りにポイントを移動します は、この
場合のスクロールに相当するものでしょうか?
ググりましたが、キーバインドでのキー操作が分かりません
0186183
2006/09/09(土) 21:46:09ID:C5Wo58dx一段目の下に入れてみましたが、同じでした・・・
0187名無し~3.EXE
2006/09/09(土) 21:47:30ID:lO4MfV+7cscript //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");
0190名無し~3.EXE
2006/09/14(木) 07:47:45ID:l5s6sQsrの通りやると
"C:\Program Files\test\test.vbs && C:\Program Files\test\test2.vbs"
となってエラーが出てしまいます。
初歩の初歩とは思いますが、こうしたコマンド中にスペースがある場合のコマ
ンド連結の方法を教えてください。すいませんが、お願いします。
0191名無し~3.EXE
2006/09/14(木) 08:24:56ID:SDPKJdUF× "CommandA && CommandB"
○ "CommandA" && "CommandB"
0192名無し~3.EXE
2006/09/14(木) 08:40:57ID:l5s6sQsrありがとうございます。すいません、実はこのコマンドをATコマンドを使って
スケジューラーに登録したいのです。それで
ATコマンド cmd /c "CommandA" && "CommandB"
とやるとCommandAはスケジューラーに登録されるのですが、CommandBは
ATコマンド実行時に同時に実行されてしまうのです。
二度手間になってしまって申し訳ありませんが、もし"CommandA" && "Com
mandB"をスケジューラーに登録できる方法をご存知でしたらご教授ください。
0193192
2006/09/14(木) 11:08:58ID:l5s6sQsrcmd /c atコマンド cmd /c "CommandA" && "CommandB"
と/cスイッチを2重に掛けてしまったのが悪かったようで
atコマンド cmd /c "CommandA" && "CommandB"
とすることできちんとスケジューラーに登録されました。
0194名無し~3.EXE
2006/09/18(月) 13:06:40ID:5c+M8uRH> Unicode 対応でないプログラムの言語
を英語(米国)に一発変換するコマンドを教えてください。賢い人お願い。
0195名無し~3.EXE
2006/09/19(火) 02:50:37ID:xYqALZ2K恐らく破損が原因で一部のファイルが削除できなくなってしまいました。
UNCを使ってChkdskをかけようとすると、できませんでした。
その外部機器は共有専用の物でそれ自体にログインすることはできません。
操作元のPCはWindowsXPです。
何か良いファイルの削除方法はありませんか?
0196名無し~3.EXE
2006/09/19(火) 02:53:40ID:PvS6FX5U0197名無し~3.EXE
2006/09/19(火) 12:59:10ID:JsGdWB5o0198名無し~3.EXE
2006/09/19(火) 23:28:59ID:2GQBIaKq0199名無し~3.EXE
2006/09/20(水) 02:28:12ID:WXXCtHSF----------------------------------------------------------
初心者必読!最低限知っておくべきDOSコマンド 2
http://pc5.2ch.net/test/read.cgi/win/1013833995/660
660 名前:名無し~3.EXE[sage] 投稿日:03/04/02 20:56 ID:MJorWg4J
>>658
shift というコマンドがある。
@echo off
:loop
if '%1'=='' goto end
attrib %1 /d /s -h -s
attrib %1 /d /s +h +s
shift
goto loop
:end
---------------------------------------------------------
これを応用させてもらって
@echo off
:loop
if '%1'=='' goto end
C:\Soft\ffmpeg\ffmpeg -i %1 -ab 128 "%~dp1%~n1.mp3"
shift
goto loop
:end
0201名無し~3.EXE
2006/09/21(木) 09:41:25ID:iuEaw+TTこれを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に、&を特殊文字じゃなく、ファイル名の一部だと認識させるにはどうすればいいでしょうか?
0202名無し~3.EXE
2006/09/21(木) 11:23:18ID:qC8l8Y5k0203名無し~3.EXE
2006/09/21(木) 12:17:14ID:ZaRXWueaさんくすです。
0204名無し~3.EXE
2006/09/21(木) 17:26:59ID:v01n1OiKtelnet hogehoge.com 80
で接続後
HEAD / HTTP/1.0
Host: hogehoge.com
でhttp://hogehoge.com ヘッダーの情報を得たのですが、
http://hogehoge.com/saitama/saitama.html
のように階層とファイルを指定する場合、どのように打てばよいのでしょうか?
0205名無し~3.EXE
2006/09/21(木) 18:37:34ID:U4TS2RPcHEAD /saitama/saitama.html HTTP/1.0
Host: hogehoge.com
0207名無し~3.EXE
2006/09/25(月) 03:56:34ID:zcUKP0FD0208名無し~3.EXE
2006/09/25(月) 18:30:42ID:3OvFGSR9「出来ません」とは答えられないよね。
0209名無し~3.EXE
2006/09/25(月) 18:33:33ID:PAABQqCC0210名無し~3.EXE
2006/09/27(水) 00:52:25ID:sv2UodKPものを探しているのですが、compやfcではいまひとつです。
0211名無し~3.EXE
2006/09/27(水) 00:56:39ID:sv2UodKPttp://www.atmarkit.co.jp/flinux/rensai/linuxtips/565comp2file.html
0212名無し~3.EXE
2006/09/27(水) 01:23:02ID:9XHxAPx10214名無し~3.EXE
2006/10/03(火) 02:29:36ID:NfBnO3Xp自動エンコード開始をしたいのですが書き換えコマンド教えてください。
最初はチョコアで書き換えてbat起動させて自動エンコード開始させようと思ったのですが
チョコアでwmeのファイルを書き換えることができないのを知ってbatで書き換えて自動起動をしようと考えています。
0215名無し~3.EXE
2006/10/03(火) 16:01:40ID:1+YRdBksこれを一度実行して、甲の中の丙.txtを削除。再度xcopy実行。D:\乙\甲の中に丙.txt が残ってる。
丙.txtは削除して欲しいんだが、xcopyだけで解決するにはどうすればいい?できればrdは使いたくないな。
0216名無し~3.EXE
2006/10/03(火) 16:09:35ID:1+YRdBks送り側で削除されたファイルを、受け側に残したくないっていう意味です。
さらに、受け側の容量がデカイので、rd xcopy でやると時間が掛かりすぎて困るっていう意味です。
0217名無し~3.EXE
2006/10/03(火) 17:21:43ID:bakKShfe0218名無し~3.EXE
2006/10/03(火) 20:16:14ID:MLlCxdLBrobocopyなら/PURGEスイッチ使えば尾k
0219名無し~3.EXE
2006/10/04(水) 22:12:37ID:oVbBf3W/0221名無し~3.EXE
2006/10/05(木) 00:30:39ID:MCb5nvF1ファイアファイルコピーだぞ
0222名無し~3.EXE
2006/10/05(木) 19:45:16ID:tjGrDL9G0223名無し~3.EXE
2006/10/05(木) 21:19:10ID:saVGMH9k紹介元にFileFileCopyってあったからそのまま鵜呑みにしてたよ。
2年くらいずっとそうだと思って疑わなかった。
そいじゃFileFileCopyって類似ソフト作っちゃおうかな。
RDとXCOPYだけのどうしようもないヤツ。
0224名無し~3.EXE
2006/10/05(木) 21:36:35ID:WbWfkADc思ったような結果になりません。
やりたいことはバッチファイルを置いたディレクトリの配下に
「CVS」というディレクトリがあったら消すということをしたいのですが。
どこが間違ってるでしょうか?
@echo off
cd %CD%
for /r /d %%i in (*) do (
if "%%~ni" == "CVS" (
rd %%i /q/s
)
)
pause
0225名無し~3.EXE
2006/10/05(木) 21:41:45ID:WbWfkADc@echo off
cd %CD%
for /r /d %%i in (*) do (
if "%%~ni" == "CVS" (
rd "%%i" /q/s
)
)
pause
0226名無し~3.EXE
2006/10/05(木) 21:41:50ID:wT80tbneちなみにやりたいことって
@rmdir /s /q %~dp0CVS
でいいんじゃね?
0227名無し~3.EXE
2006/10/09(月) 14:13:20ID:1VStL+z8できれば圧縮率も指定できるといいのですが
0228名無し~3.EXE
2006/10/09(月) 14:15:11ID:ZgyN8vMw0229名無し~3.EXE
2006/10/09(月) 15:54:46ID:8A81Nzzrコマンドライン型の圧縮率指定可能な圧縮ツール使えば可能。
因みにコマンドラインツールを使いたくないとかいう情報後出しは却下。
ツールが見つからなければ、ソフ板のありますかスレへどうぞ。
0230名無し~3.EXE
2006/10/09(月) 18:04:20ID:HzNhAxQBあるファイルについて、ハードリンクがいくつ張られているのか
知る方法はありますか?
0231名無し~3.EXE
2006/10/09(月) 18:37:36ID:oNSZ8baq0232名無し~3.EXE
2006/10/10(火) 23:00:37ID:aZsZyqrXhttp://www.microsoft.com/technet/prodtechnol/windowsserver2003/ja/library/ServerHelp/9660fea1-65c7-48cf-b466-204ba159381e.mspx
0233名無し~3.EXE
2006/10/11(水) 00:27:46ID:YmyvbGZxプログラムA実行完了後、プログラムBを実行する場合、
programA.exe && programB.exe
でいいんですか?それとも何か良い方法があるんでしょうか?
0234名無し~3.EXE
2006/10/11(水) 00:39:04ID:b7WovQg3programA && programB
programAが正常に終了した場合のみprogramBを実行する
programA & programB
programAが実行された後、programBを実行する
0236名無し~3.EXE
2006/10/11(水) 01:07:55ID:EuLbjpXzprogramA & programB
は
programA
programB
と同意
あと結果に応じての処理なら
programA && programB
が
programA
if not errorlevel 1 programB
と同意
まあ君の分かりやすいように書いとけば?
なお結果が異常な場合には、programA || programB|
実行するために
start /wait programA
って書くこともできる。
0237名無し~3.EXE
2006/10/11(水) 14:56:10ID: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 こんな環境です。
0238名無し~3.EXE
2006/10/11(水) 20:18:46ID:Pq9of3Uw一応環境変数のワークサイズはXPの場合8192バイトだったかな。(2000だと2048バイト)
あとはsetlocalとかcmdとかで操作してみるとか。
0239名無し~3.EXE
2006/10/11(水) 22:54:54ID:OyhdnErxエラーが出ると、エラーが出た瞬間に窓閉じるからな。
だから見た目には途中で勝手に終わったように見える
0240名無し~3.EXE
2006/10/11(水) 23:00:55ID:Sa6qyVds1500個も同時にプロセス動かすのって・・・すげー嫌な感じ。
漏れは絶対やりたくない。
0241名無し~3.EXE
2006/10/13(金) 11:18:06ID:VOTIVxE/よろしくお願いします
0242名無し~3.EXE
2006/10/13(金) 11:23:51ID:L4CHgkjE0243名無し~3.EXE
2006/10/13(金) 11:29:51ID:VOTIVxE/すいません今思い出してできました本当にすみません
ついでなのですが特定のファイルが他のプロセスに使用されている場合
そのプロセスがそのファイル使用していない状態にしてそのファイルを削除するようなコマンドはどうすればいいでしょうか
よろしくお願いします
0245名無し~3.EXE
2006/10/13(金) 12:29:46ID:/BVrTyQWWin32APIでも構わんので知ってたら教えてくれ。
0246名無し~3.EXE
2006/10/13(金) 12:33:34ID:VOTIVxE/やはりファイルをUnlocker等のソフトに飛ばしてその後に削除するコマンドを使うしかないのですね
ありがとうございました試行錯誤してみます
0247名無し~3.EXE
2006/10/13(金) 13:58:39ID:C46/3tBp逆。
ファイルからオープンしてるプロセスを特定するんじゃなくて
既存プロセス群が掴んでるファイル群の中から、対象に一致する物を探す。
つーか、検索ってのは普通そういうものだし。
これ以上の話は板違いなので、APIスレなり使用言語スレなりでどうぞ。
0248名無し~3.EXE
2006/10/13(金) 18:54:57ID:AB8vVd7f> if not errorlevel 1 programB
errorlevel はゼロか否かで判定する方が良くない?
っていうかソフトによって微妙に違うとは思うんだけど。
0249名無し~3.EXE
2006/10/13(金) 19:04:48ID:xVRY4L91if の昔ながらの書式をもう一度確認した方が良いぞ。
if errorlevel 1 で 1以上の場合だ。
0250名無し~3.EXE
2006/10/13(金) 19:32:22ID:AB8vVd7fあらら…確かにhelpにも書いてあるわ。
俺普段 %errorlevel% しか使わんから気付かんかった。スマソ
0251名無し~3.EXE
2006/10/14(土) 01:36:11ID:T/OFuaaUファイル名を指定して実行で、
cmd /k cd e:\temp
としても cd せずに、無指定と同じc:\dqnment〜のまま窓が出ます。
出てきた窓で e: とすると e:\temp に直接移動します。
カレント指定で起動するにはどうすればいいのでしょうか。
0252名無し~3.EXE
2006/10/14(土) 01:56:20ID:VspRUX5O0253名無し~3.EXE
2006/10/14(土) 12:29:38ID:ibVcNeOHちゃんと cd コマンドの詳細を見よう。
0254名無し~3.EXE
2006/10/14(土) 14:24:13ID: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 の戻り値ってどう取得すればいいのでしょうか?
0255名無し~3.EXE
2006/10/14(土) 14:34:14ID:QB654mo80256名無し~3.EXE
2006/10/14(土) 14:55:44ID:pw30TYg5IF ERRORLEVEL 1 ECHO つながってませんよ。
IF ERRORLEVEL 0 ECHO つながってますね。
↑
2行目と3行目を入れ替えてはいけない点に注意。
0257251
2006/10/14(土) 17:32:10ID:T/OFuaaUありがとうございました。うまくいきました。
0258名無し~3.EXE
2006/10/14(土) 21:31:15ID:y7UvFN4ZPING 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
みたいにやってみてるんですが
うまくいきません。
0259256
2006/10/14(土) 22:07:32ID:pw30TYg5最後の3行はIF文の書き方がマズい。俺なら以下のようにする。
(Win95/98/Meの場合はCMD.EXEの代わりにCOMMAND.COM)
IF "%DT%"=="10" NOTEPAD.EXE
IF NOT "%DT%"=="10" CMD.EXE /C コマンドライン
0260256
2006/10/14(土) 22:09:24ID:pw30TYg5IF "%DT%"=="10" NOTEPAD.EXE
IF "%DT%"=="0" CMD.EXE /C コマンドライン
0261256
2006/10/14(土) 22:16:05ID:pw30TYg5IF "%DT%"=="10" START /W NOTEPAD.EXE
IF "%DT%"=="0" CMD.EXE /C コマンドライン
0262名無し~3.EXE
2006/10/14(土) 23:11:28ID:y7UvFN4ZPING 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 コマンドライン
のほうが動いてしまいます。
0263名無し~3.EXE
2006/10/14(土) 23:41:47ID:xvO2JB2X> (Win95/98/Meの場合はCMD.EXEの代わりにCOMMAND.COM)
%COMSPEC% /C
0264名無し~3.EXE
2006/10/14(土) 23:47:10ID:rbbe3sPdノートパッドを別ユーザーとして起動したいのですが
下記のようにするとユーザ(hogehoge)のパスワードが求められます。
runas /user:hogehoge notepad
引数か何かでパスワードは指定できないのでしょうか?
0265256
2006/10/15(日) 00:14:00ID:bYSqBt4Lそういや環境変数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 コマンドライン
これでどうかな?一応、両方とも試してみてよ。
0266名無し~3.EXE
2006/10/15(日) 00:58:26ID:Blrgi1Gyたびたびありがとうございます
両方実行してみましたが
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が消えるという結果です。
0267名無し~3.EXE
2006/10/15(日) 01:04:07ID:piuQ32q3win9xの場合は不明。(各コマンドの結果は殆ど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)を捉まえるものとしている。
0268名無し~3.EXE
2006/10/15(日) 01:07:05ID:Blrgi1GyPING 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が消えるという結果です。
よろしくお願いします。
0269名無し~3.EXE
2006/10/15(日) 01:09:11ID:Blrgi1Gyそうですね、うっかりしていました。
すべてWindows2000Proです。
0270名無し~3.EXE
2006/10/15(日) 01:25:58ID:Blrgi1Gywin2000の場合
--------------------------
@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
ありがとうございました!
0271256
2006/10/15(日) 02:08:15ID:bYSqBt4L"Request timed out"の場合は3つともERRORLEVEL=1と思い込んでたよ。
それと今まで肝心な>>254の目的をすっかり失念していた。
なんだか色々混同して勘違いしてたよ。かえって混乱させちまったようで、ごめんな。
0272名無し~3.EXE
2006/10/15(日) 03:23:27ID:piuQ32q3pingで端末名指定ミスしたら、常にalivedになっちゃうのでチェックした方が良いかも。
あとサーバーなら接続端末の状態や数をチェックするコマンドがあったんじゃない?
0273名無し~3.EXE
2006/10/15(日) 17:49:13ID:Blrgi1Gyいいえ、そんな
いろいろ勉強になりました。
ありがとうございました。
>>272
御助言いただきありがとうございました。
0274名無し~3.EXE
2006/10/17(火) 02:10:26ID:N9oYajNVショートカット(.lnk)を作るコマンドはありますか?
0276名無し~3.EXE
2006/10/17(火) 13:24:27ID:z7Jjl5bfhttp://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
0279名無し~3.EXE
2006/10/17(火) 23:11:12ID:kpUzoa/sXP Proなら
c:\windows\system32\openfiles.exe
なければ、oh.exeやhandle.exeを入手。
0282名無し~3.EXE
2006/10/18(水) 13:33:17ID:lsVuuXuVループとかそのあたりを使えばいいのは大体わかるのですが…
0284名無し~3.EXE
2006/10/18(水) 13:46:05ID:8HDygbIEexeをパラメタを変えて何度も起動するだけでいいなら>>283
0285名無し~3.EXE
2006/10/19(木) 11:18:07ID:xPYMe9IZ別にコマンドライン使わなくてもいいんですが。
0286名無し~3.EXE
2006/10/19(木) 11:53:25ID:FKzXfjJ7出来るよ。WSHを使うのが定番。
普通に引数でパスを取って、IEの機能を使ってクリップボードに格納する。
腐るほどサンプルが転がってるから、あとは自分で拾ってこい。
0287名無し~3.EXE
2006/10/19(木) 13:43:58ID:xPYMe9IZWindows標準のみのファイルやアプリで実現できませんか?
0289名無し~3.EXE
2006/10/19(木) 14:02:32ID:W81ZluKJ「ファイル名を指定して実行」にファイルをドロップして、そこからコピー。
コマンドプロンプトにドロップしても出来るけど。
ファイルを作るなら、
START IExplore.exe about:
というバッチファイルか、
フルパス\IExplore.exe about:
というショートカットを作って、ファイルをドロップして、そこからコピー。
0290名無し~3.EXE
2006/10/19(木) 14:03:38ID:FKzXfjJ7出来るよ。
コマンドプロンプト開いて対象ファイルを窓にD&Dすると、パスが表示されるので
それを範囲選択してコピー。
先に言っておくが、面倒だとか言うなよ。自分でわざわざ面倒になるような条件出してるんだから。
因みに、「素のWindows」と言った場合は、一般的に外部ソフトを入れない事を差し
ファイルを一切作らないことは差さないので覚えておくように。
>>288
.vbs、.js、.wsfなどのファイルを作成するのが嫌なんだと思われ。どうしてなのかは知らないが。
0291名無し~3.EXE
2006/10/19(木) 14:10:21ID:W81ZluKJFORのほかに、
リソースキットのforfiles.exe
や
SFUのfind.exe
も。
0292名無し~3.EXE
2006/10/19(木) 14:49:09ID:xPYMe9IZレジストリをいじるだけで可能で
こういう感じで機能を実現できればなって思ったんですが、
簡単にやろうとすると難しいみたいですね。
0293名無し~3.EXE
2006/10/19(木) 17:07:36ID:W81ZluKJ>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
0294名無し~3.EXE
2006/10/19(木) 17:17:06ID:W81ZluKJDOSのconcopy.com
unixのscript
みたいな。
cmd.exe 2>&1 | tee.exe file
は入力が取れない。
more | cmd.exe 2>&1 | tee.exe file
も、もうひとつ。
0295名無し~3.EXE
2006/10/19(木) 21:15:58ID:ls1OF9sj^Cとか^Zとかに対応できないのが玉に瑕
0296名無し~3.EXE
2006/10/19(木) 21:44:25ID:W81ZluKJこういうのは、SFUなどのfind.exeが得意なのでは。
find.exe folderB -t -comp folderA -rm
とかで。
0297net time
2006/10/19(木) 22:08:33ID:DylRciLfご教授願います。
0298296
2006/10/19(木) 22:21:02ID:W81ZluKJ本家のfindでサポートしてないシンタクスでした。
便利だったんですけど。。。
0300名無し~3.EXE
2006/10/20(金) 19:37:49ID:xavmQ34Jんーと、それは素じゃない。どんなファイルもいじらずに、
Windows標準のみのレジストリやアプリで
フォルダ右クリックにプロンプトを開くっていうのは、
実現できませんか?
レジストリもいじらないで
機能を実現できればなって思ったんですが、
簡単にやろうとすると難しいみたいですね。
なんていう考え方もありますわな。
0302名無し~3.EXE
2006/10/20(金) 21:19:23ID:l1bcIv1gメニューが表示されてたけど最近のビルドだとなくなってるような。
0306名無し~3.EXE
2006/10/20(金) 21:53:38ID:3EPLvaDr0308名無し~3.EXE
2006/10/20(金) 22:40:38ID:3EPLvaDr0310300
2006/10/20(金) 22:55:44ID:xavmQ34J0311名無し~3.EXE
2006/10/20(金) 23:36:55ID:xavmQ34Jそれならそれで、素のWindowsに入ってるヘルプでも見て、
その範囲で使ってればよいものを、
素のWindowsにない情報をネットに求めれば、
得られる回答が素のウィンドウでないのは当たり前だろ。
という寓話です。
0312名無し~3.EXE
2006/10/21(土) 00:29:09ID:mfwax+i1トンチンカンなこと言ったのを指摘されて恥ずかしかったからといって、そうどくれるなよ、な。
0313名無し~3.EXE
2006/10/21(土) 14:02:44ID: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と違って、レジストリだけじゃ無理みたいです。
0314名無し~3.EXE
2006/10/21(土) 14:14:54ID:XLNlcWtBタブが補完キーに解釈されて、入力できない場合は、一時的に、補完を無効にすればよい。
cmd /f:off
FOR /F "delims=タブ
exit
0315名無し~3.EXE
2006/10/22(日) 22:21:07ID:EOcMerY5ftp://ftp.microsoft.com/Services/TechNet/samples/ps/win98/reskit/file/
ここには、choice.exe,sleep.exe,forfiles.exeなどもあります。
98なので、tail.exeはないけど。。。
0316名無し~3.EXE
2006/10/22(日) 23:28:41ID:wssoUMQ0http://pc8.2ch.net/test/read.cgi/tech/1148485555/l50#tag49
上記スレの>>45にて質問したのですが、こちらで聞いたほうがよいということで
こちらに来ました。
質問内容は、FOR /F 〜にて、DELIMSにTABを指定する際に、
見た目のスペースを別の文字に置き換えられるかどうか?なのですが
できないというレスを頂き、またエディタであれば対応可能ということを伺いました。
エディタにて対応するとはどういうことなのでしょうか?
ご教示下さい。
0317名無し~3.EXE
2006/10/22(日) 23:47:18ID:4DzWCkQxそういう意味合いの質問だよね?
単にTabの部分を別文字に置換するのならテキストエディタとかで置換してやればいいけど。
一旦環境変数にTabを代入してそれを使うことなら可能かもしれない。(試してないけど)
set tab=
for /f "delims=%tab%" %%I
又は
for /f "delims=!tab!" %%I (遅延環境変数を使わないとダメな場合も結構あるかも)
0318316
2006/10/23(月) 00:00:57ID:wssoUMQ0なるほど。。
環境変数でTabをセットしてあげれば確かに別文字にできますね。
まだ試してないですけど。
それで試してみます。ありがとうございました。
0319名無し~3.EXE
2006/10/23(月) 04:56:36ID: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文などを使って上手くループ処理に出来ないですかね?
お力を貸してください、お願いします。
0320名無し~3.EXE
2006/10/23(月) 05:24:04ID:CBFP8CuU出来ますよ。
0322名無し~3.EXE
2006/10/23(月) 13:48:20ID:ES8SWZkF>FOR /F 〜にて、DELIMSにTABを指定する際に、
>見た目のスペースを別の文字に置き換えることって可能でしょうか?
>例えば "DELIMS=[TAB]" を "DELIMS=\t" のようにするなど。
テレパスではないので、質問に素直に答えると、
SET hoge=FOR /F "DELIMS=[TAB]" 〜
SET %hoge:[TAB]=\t%
ECHO %hoge%
もし、これが求めているものと異なる場合は、質問を変えたほうがよいと思う。
0323名無し~3.EXE
2006/10/25(水) 09:14:51ID:fdOJ++H8set DATESTR1=%time:~0,2%%time:~3,2%
みたいな感じで時間を取得してそれをリネームに使ってるんですが、
これだと10〜24時までしかうまく動きません。
0〜9時台だと取得がずれてしまってリネームに失敗するんですが、何かうまい方法あるでしょうか?
0324名無し~3.EXE
2006/10/25(水) 09:45:07ID:cRvYPHXEバッチファイル内では以下のように記述すると良い。
(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
0325名無し~3.EXE
2006/10/25(水) 14:28:43ID:fdOJ++H8XPで無事できました!
ありがとうございます
このスレで出る質問は大抵for文で解決してますけど、ほんと何でもできるんですね……
0326名無し~3.EXE
2006/10/25(水) 15:24:03ID:pmLqT4o8ECHO %%0
ECHO %%0>&2
)
でtee.cmdが出来るかも、と思ったら、
FOR /F IN ('コマンド')は出力を一旦どこかに溜め込んでるみたいですね。残念。
0327名無し~3.EXE
2006/10/25(水) 15:34:03ID:pmLqT4o8で、トークンの数を調べようと思ったら、どうすりゃいいでしょう?
不定個数のトークンの処理ってむずかしいような。
"tokens=1*"で1個ずつ取り出して残りを再帰呼び出しするのでしょうか。
0328名無し~3.EXE
2006/10/25(水) 23:58:09ID:eEi2UFaY区切り文字が複数ある場合、更に一ひねり必要だけど。
0329名無し~3.EXE
2006/10/26(木) 16:36:30ID:/s+J/qsz0330名無し~3.EXE
2006/10/26(木) 19:41:42ID:/s+J/qsz0331名無し~3.EXE
2006/10/26(木) 22:02:21ID:SVXaZk3qアルファベット順に自動で変数割り当てるって、やっぱ変な仕様だよなぁ。
そのせいで↓みたいな変な制約もあるわけだし。
> %i は for 文で明示的に宣言され、%j と %k は tokens= オプションで暗黙的に
> 宣言されています。tokens= 行を使って 26 個までのトークンを指定できますが、
> 文字 'z' または 'Z' よりも高い変数を宣言することはできません。FOR 変数名は
> 単一の文字で、大文字と小文字を区別し、グローバルなものであり、一度にアクティ
> ブにできるのは合計 52 個までです。
0332名無し~3.EXE
2006/10/26(木) 22:03:37ID:SVXaZk3qC:\>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:\>
0334名無し~3.EXE
2006/10/27(金) 00:00:52ID:/s+J/qsz0335名無し~3.EXE
2006/10/27(金) 00:19:27ID:zn7U0YhT0336名無し~3.EXE
2006/10/27(金) 00:49:10ID:J3SJtBgW0338名無し~3.EXE
2006/10/27(金) 12:53:57ID:zfuA9cK1set 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%
0339名無し~3.EXE
2006/10/27(金) 13:10:02ID:zfuA9cK1type 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%
0340名無し~3.EXE
2006/10/30(月) 15:23:22ID:oK1Aiu/Jcallは、delims=空白タブ=;,の扱いになるので、delims=,などのときに使えない。
0341名無し~3.EXE
2006/10/30(月) 19:14:57ID:oK1Aiu/J.vbsのショートカットでは消えます。
ところが、lnkfileのドロップハンドラをwshのものに変えると、
.vbsのショートカットでも消えなくなります。
なので、2000や98などでも、lnkfileのドロップハンドラをwshのものに変えると、
ショートカットにドロップしても引数が消えなくなるかも知れません。
0342名無し~3.EXE
2006/10/31(火) 00:18:03ID:gQgyQPtQfor /f "delims=" %0 in ('type con') do set tab=%0
(タブ)(改行)
^Z
echo a%tab%b
0343名無し~3.EXE
2006/11/02(木) 17:49:18ID:sjRZNhMU0344名無し~3.EXE
2006/11/02(木) 18:12:49ID:YlCRHYMe0345名無し~3.EXE
2006/11/02(木) 18:47:47ID:J4pr3aX8クライアント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に反応していれば
繰り返すにはどう書けばいいのでしょうか?
ご指導よろしくお願いします。
0346名無し~3.EXE
2006/11/02(木) 19:06:22ID:n1Q/MJZAもっとも手直しが少ない方法は、
:alivedラベルを@echo offとset dt=0の間に移動する。
っていうか環境変数dtは要るのか?
無駄に設定してるだけに見える。
0347名無し~3.EXE
2006/11/03(金) 15:17:50ID:DnIKy2oO0348名無し~3.EXE
2006/11/03(金) 21:40:54ID:gJdLXMtF0349名無し~3.EXE
2006/11/04(土) 12:31:17ID: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)どシロートなのでコマンドプロンプトの知識は無い
作ってもらったのを使うことは出来る程度のレベル
よろしくお願いします<(_ _)>
0350名無し~3.EXE
2006/11/04(土) 13:04:24ID:Rj1Lj+SZフォルダ名だけです<(_ _)>
0351名無し~3.EXE
2006/11/04(土) 13:07:27ID:3leZuA7v@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」をダブルクリック。
0352名無し~3.EXE
2006/11/04(土) 13:54:38ID:4Dsu/0i6フォルダのみを対象に「(2)」→「」の置換をすれば良いだけだけどね。
正規表現すら必要ないし、サブフォルダ内も全て一発でリネームできる。
0353名無し~3.EXE
2006/11/04(土) 14:15:59ID:Rj1Lj+SZありがとうございます
やってみたら「みつかりません」が多数出るのでどうなったかと思いましたが
実際に見たら書き換えられていたようです感謝<(_ _)>
0354名無し~3.EXE
2006/11/04(土) 23:02:49ID:USOpz/321.インターネットエクスプローラーを開く。
この時にホームページを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"
このあとにはなんと付け加えたらよいのでしょうか?
よろしくお願い致します。
0355名無し~3.EXE
2006/11/04(土) 23:20:00ID:8yxluHxk0356名無し~3.EXE
2006/11/04(土) 23:21:46ID:ZY+1jLO8start http://search.yahoo.co.jp/
でいいのではないでしょうか。
0357名無し~3.EXE
2006/11/04(土) 23:33:07ID:3R+cY6NI"C:\Program Files\Internet Explorer\IEXPLORE.EXE" "http://search.yahoo.co.jp/"
0358354
2006/11/04(土) 23:41:33ID:USOpz/32『「ENTERキー」を叩く』という動作自体をbatファイルの中に書き込む
ことは不可能でしょうか?
もしこれが不可能だとすると、他にどんな方法が考えられますか?
お願いします。
0359名無し~3.EXE
2006/11/04(土) 23:42:49ID:NCf7BNdEstart IEXPLORE.EXE "http://search.yahoo.co.jp/"
がよいかと。。。
0361名無し~3.EXE
2006/11/04(土) 23:45:03ID:h4oF94Gt0362名無し~3.EXE
2006/11/04(土) 23:51:08ID:NCf7BNdEMSHTA.EXE vbscript:Execute("CreateObject(""WScript.Shell"").SendKeys ""{ENTER}"":close:")
0363名無し~3.EXE
2006/11/05(日) 00:59:50ID:ERnKg4olなにかフリーソフトを用意して、それをbatから呼び出すとか
普通に>>356-357みたく直接開けばいい話だと思うが
0364354
2006/11/05(日) 01:13:52ID:RCi+n/90WSHを使えばすむ話でした。
Set WshShell=Wscript.CreateObject("Wscript.Shell")
WshShell.Run"IEXPLORE.EXE"
WScript.Sleep(4000)
WshShell.SendKeys("{ENTER}")
0365名無し~3.EXE
2006/11/05(日) 01:35:01ID:7WDpcn0x多分だめなんだろうな。
0366名無し~3.EXE
2006/11/05(日) 15:38:54ID:rje+y4tawin2kprosp4で
実験の過程で
C:\WINNT\system32\GroupPolicy\Machine\Scripts\Shutdown に
無限ループするように作ったバッチファイルを置いて実行させてみるのですが
10分?(正確に測っていない)ぐらいするとシャットダウンされてしまいます。
これは、何かタイムアウト処理が働いているからでしょうか?
どうすればシャットダウンさせなくできますか?
0367名無し~3.EXE
2006/11/05(日) 18:03:57ID:ft5S0/LoDVD−ROM(F:\)から中に入ってるファイル名を取得そのファイル名から
D:\〜にある同一ファイル名でヒットするものをを削除する
こんな感じのバッチファイルを作りたいんですがどう書けば良いのでしょうか?
FOR /R F:\ %%F IN (*.) DO DEL %%F
PAUSE
これを実行するとF:\が間違ってると言われます・・・
0368名無し~3.EXE
2006/11/05(日) 22:34:11ID:gaAwMg4fDEL 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の内容を確かめてみてよ。ひょっとしたら削除にも応用できるかも。
0369名無し~3.EXE
2006/11/05(日) 23:12:56ID:ft5S0/LoD:\>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には何も書かれていませんでした
0370368
2006/11/05(日) 23:25:25ID:gaAwMg4f画面上に表示されたメッセージは、FCコマンドの結果だけ俺のWinXPで試してみた時と違うな。
hogehoge.logのほうの内容はどうだった?あと、あんたのWindowsはXP?2000?
0371名無し~3.EXE
2006/11/05(日) 23:47:43ID:ft5S0/Lo自分はWinXPです。
hogehoge.logはファイル自体存在してなくて
hogehoge.logはbatファイル起動後生成されるが中身は空です
0372366
2006/11/05(日) 23:47:56ID:NoIo79HlC:\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分でシャットダウンしてしまいます。
0373名無し~3.EXE
2006/11/05(日) 23:48:44ID:ft5S0/Lo○ hogehoge2.logはbatファイル起動後生成されるが中身は空です
0374368
2006/11/06(月) 00:29:31ID:WGTzoRqPむぅ、俺と同じ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へ応用できるんじゃないかと思ったんだけどな・・・どうなってるんだろう?
0375名無し~3.EXE
2006/11/06(月) 00:46:15ID:/GcHf+xdバッチの中身関係なくてグループポリシーの設定だよ。
詳しくはスレ違いなのでどっか他で調べてね。
0376名無し~3.EXE
2006/11/06(月) 00:52:18ID:eYDcpk0uすいません。ドライブ名が違ったみたいです。
Fドライブの中身はDドライブには存在しないからこの結果で、
対象をGにしたらhogehogeとhogehoge2には同じファイル名の
テキストが出来ました。
0377368
2006/11/06(月) 01:48:07ID:WGTzoRqPならば後は>>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でも使い回したい場合は事前に充分テストすべきだろう。
0378名無し~3.EXE
2006/11/06(月) 11:15:28ID:QBOemFrsスマソ、それではこちら閉めます。
0379名無し~3.EXE
2006/11/07(火) 02:43:44ID:fMKPRh+SFindExistsRm.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"
)
)
)
0380名無し~3.EXE
2006/11/07(火) 02:46:21ID:fMKPRh+SFindCompRm.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"
)
)
)
)
0381名無し~3.EXE
2006/11/10(金) 14:35:23ID:V9Frw57WRDコマンドで、あるフォルダを一括削除したいんですが
もの凄い深い階層にあるファイルが原因なのか
「XXXXXXが見つかりません」と、システムがメッセージ出してしまって
フォルダの削除ができません。
こういった長〜いファイル名をコマンドプロンプトで扱う場合
どういう手がありますか?
0382名無し~3.EXE
2006/11/10(金) 18:36:16ID:R3LkmhaOつttp://www.ipmsg.org/tools/fast_rm.html
0384名無し~3.EXE
2006/11/11(土) 00:38:31ID:9aLw4sXI0385名無し~3.EXE
2006/11/11(土) 08:44:50ID:zKILve990387名無し~3.EXE
2006/11/12(日) 15:00:04ID:Utpk1ks70388名無し~3.EXE
2006/11/12(日) 15:07:34ID:N5UKeW4Z0390名無し~3.EXE
2006/11/12(日) 16:06:03ID:e0M/p8ad0391名無し~3.EXE
2006/11/12(日) 17:00:07ID:sb3WUvfrIF "%1"=="" 〜
のように書きますが、%1に"が奇数個含まれていると、エラーになります。
%1に何が含まれていてもエラーにならない方法はないものでしょうか?
0392名無し~3.EXE
2006/11/12(日) 17:04:25ID:WfLPkAgGset HOGE=%HOGE:"=%
IF "%HOGE%"=="" 〜
0393名無し~3.EXE
2006/11/12(日) 17:16:49ID:nVQtwHBh0394名無し~3.EXE
2006/11/12(日) 19:33:18ID:sb3WUvfrcall :sub "<"
コマンドの構文が誤っています。
>>393
call :sub """
コマンドの構文が誤っています。
0395名無し~3.EXE
2006/11/12(日) 20:03:35ID:nVQtwHBhset aaa=
set aaa=%1
if ERRORLEVEL 1 〜
0396名無し~3.EXE
2006/11/12(日) 20:41:19ID:tyVMa3TA素直にWSH(WindowsScriptingHost)を利用するほうが無難だと思う。
0397名無し~3.EXE
2006/11/13(月) 01:48:44ID:LbA/01Ahこれでよさそうです。
call :sub "<"
call :sub """
call :sub
goto :eof
:sub
set HOGE=@%1
set HOGE="%HOGE:"=""%"
ECHO %HOGE%
IF %HOGE%=="@" ECHO
0398名無し~3.EXE
2006/11/13(月) 01:56:32ID:GVejNCmK0399名無し~3.EXE
2006/11/13(月) 02:00:30ID:jwTRhDMH0400名無し~3.EXE
2006/11/13(月) 02:08:38ID:3qtCRh810401名無し~3.EXE
2006/11/13(月) 05:50:30ID:wGkOGKoKif "%~1"==""
とかを普通は使う。
0402名無し~3.EXE
2006/11/14(火) 07:58:08ID:kigYWptw”ファイルのパス”
と しているのですが確認ダイアログが出てしまいます。
確認ダイアログを無しに実行できるコマンドラインオプションを教えて下さい。
0403名無し~3.EXE
2006/11/14(火) 09:32:33ID:OpzRD6HB0404名無し~3.EXE
2006/11/14(火) 09:57:02ID:4kOLK/EZ/ \ /\ キリッ
. / (ー) (ー)\
/ ⌒(__人__)⌒ \ <確認ダイアログが出てしまいます
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
____
/_ノ ヽ、_\
ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒)
| / / / |r┬-| | (⌒)/ / / // < 確認ダイアログだっておwwwwwwwwwwwwwww
| :::::::::::(⌒) | | | / ゝ :::::::::::/
| ノ | | | \ / ) /
ヽ / `ー'´ ヽ / / バ
| | l||l 从人 l||l l||l 从人 l||l バ ン
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
0405名無し~3.EXE
2006/11/14(火) 11:38:50ID:OpzRD6HB0406名無し~3.EXE
2006/11/15(水) 13:07:26ID:F2T3mu71バッチファイルを使用して同じLANネットワークに接続されている
別のPCでDOSコマンドを実行したいと思っています。
どのようなコマンドで実現出来ますでしょうか?
OSはwindows2000になります。ご教授ください<(_ _)>
0408名無し~3.EXE
2006/11/15(水) 20:21:33ID:YmkHLNsMrcmd
rconsole
標準ならtelnetだけど、使いやすいのはrcmdかな。あと、
at \\対象マシン 時刻 コマンド
でも可能。
0409名無し~3.EXE
2006/11/16(木) 08:42:22ID:cHsBiSJl0410PowerShell の単独スレ立てる場合のテンプレ案
2006/11/16(木) 15:32:07ID:6cPSqI7Eコードネーム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
0411名無し~3.EXE
2006/11/16(木) 15:43:37ID:STc16HEmhttp://www.atmarkit.co.jp/fdotnet/special/powershell01/powershell01_01.html
0412名無し~3.EXE
2006/11/16(木) 18:47:19ID:0L6hutsz0413名無し~3.EXE
2006/11/16(木) 20:00:36ID:pGzDDil10414名無し~3.EXE
2006/11/17(金) 04:31:12ID:kuNnXI5uスレ立てるなら、スレタイ候補。
〔CMD〕 Windows PowerShell Vol.1 〔Script〕
0415名無し~3.EXE
2006/11/17(金) 19:38:42ID:E0PYc13yWindows PowerShell 1.0 ローカライズ版インストール パッケージ
http://support.microsoft.com/?kbid=926140
日本語版のサイト重すぎない?
0416名無し~3.EXE
2006/11/17(金) 20:08:07ID:yatk+sKzじゃあ俺も対抗してスレタイ案。
【Monad】Windows PowerShell【MSH】
0417PowerShell の単独スレ立てる場合のテンプレ案
2006/11/17(金) 20:16:40ID:kuNnXI5uコードネーム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
0418PowerShell の単独スレ立てる場合のテンプレ案
2006/11/17(金) 20:17:15ID:kuNnXI5uhttp://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
0419名無し~3.EXE
2006/11/17(金) 21:52:27ID:E0PYc13yhttp://pc8.2ch.net/test/read.cgi/win/1163764836/
0420名無し~3.EXE
2006/11/18(土) 12:58:41ID:qHED6v8Jpowershell -command sleep 1
……激しく使わない気がするが
0421名無し~3.EXE
2006/11/18(土) 13:32:56ID:i0XzREmd家のPCじゃ、起動させるまでにsleepしそうだ
0422名無し~3.EXE
2006/11/18(土) 14:30:53ID:PCAmjjXu0424名無し~3.EXE
2006/11/18(土) 17:42:23ID:qHED6v8J(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
0425名無し~3.EXE
2006/11/18(土) 17:52:10ID:qHED6v8Jpowershellの初回起動時は6秒かかった
やっぱり激しく役にたたない
0427名無し~3.EXE
2006/11/18(土) 18:07:37ID:AqvXN/YM0428名無し~3.EXE
2006/11/18(土) 22:04:34ID:fLgAfV6T時間短縮するソフトが確かあったよ。
0429名無し~3.EXE
2006/11/18(土) 22:06:48ID:gg7xm9LM0430名無し~3.EXE
2006/11/19(日) 00:03:35ID:rcCuERX8他に便利なことはないの?
0431名無し~3.EXE
2006/11/19(日) 02:28:29ID:YW38jIhe0432名無し~3.EXE
2006/11/19(日) 02:33:42ID:0K1oPrA40433名無し~3.EXE
2006/11/19(日) 02:46:55ID:YW38jIhe0434名無し~3.EXE
2006/11/19(日) 03:21:26ID:eI82aUEj0436名無し~3.EXE
2006/11/19(日) 03:42:11ID:YW38jIhe0437名無し~3.EXE
2006/11/19(日) 04:04:00ID:rcCuERX80438名無し~3.EXE
2006/11/21(火) 21:49:13ID:q38yIqA/0439名無し~3.EXE
2006/11/21(火) 22:02:50ID:6uxJHtyXttp://www.vector.co.jp/soft/win95/util/se343283.html
0441名無し~3.EXE
2006/11/22(水) 00:56:48ID:WEV/FgtF0443名無し~3.EXE
2006/11/22(水) 09:17:20ID:rF8PITK30444名無し~3.EXE
2006/11/22(水) 09:36:32ID:h7jy8vLvどもですたノシ
0445名無し~3.EXE
2006/11/23(木) 20:24:42ID:VSzDaGy1それともWSHでできる? WSHでできるなら方法を教えてもらえると助かる。
スレ違いだったらスマソ。
0446名無し~3.EXE
2006/11/24(金) 00:52:45ID:2KLVL2Zf決められたファイルのファイルサイズを調べ、
10キロバイト以下では処理1を、
20キロバイト以下では処理2を、
30キロバイト以下では処理3を、
というIF文を作りたいのですが、
具体的にどう記述すればよいのかわかりません。
どのように書けばできますか?
外部ツールを使ってもかまいません。
0448名無し~3.EXE
2006/11/24(金) 10:16:36ID:K2He8JIZfor /f %%A in ('dir 〜') do if 〜 call 〜
とかでどうだべ?
0449名無し~3.EXE
2006/11/24(金) 14:54:29ID:bcXVPvCT%%~zI
0450446
2006/11/24(金) 18:06:07ID:2KLVL2Zfレストンクス。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段構えにする方法しか思いつきません。
0451名無し~3.EXE
2006/11/24(金) 18:28:04ID:EUdb631Dfor %%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 あなる
0452名無し~3.EXE
2006/11/24(金) 18:31:44ID:bcXVPvCTfor (
if A
if B
if C
)
0453名無し~3.EXE
2006/11/24(金) 18:33:02ID:VGuwVTc1うんこのサイズ20000で吹いた
0454名無し~3.EXE
2006/11/24(金) 18:47:41ID:bcXVPvCTset 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
0455446
2006/11/24(金) 18:49:34ID:6m7E/X5oトン。これはわかりやすい!
大馬鹿な俺でも、不等号の方向が頭に即座に浮かぶ。
>>452
うーん・・ごめん。もうついていけない。
ABCが10000,20000,30000だとすると、
どんなコマンドを書けば実現できますか?
>>451の単純比較法よりも優位な点はなんでしょう?
>>453
ニヤリ。
0456名無し~3.EXE
2006/11/24(金) 18:51:40ID:K2He8JIZ複雑な処理には>>454が向いてるっぽい。
0457名無し~3.EXE
2006/11/24(金) 18:55:05ID:6m7E/X5oなるほど。
すげー、ラベルのgotoの先で変数を使うのか。
これなら各分岐先で、複数のコマンドの羅列群を
複数行に渡ってカンタンに入れられますね。
0458名無し~3.EXE
2006/11/24(金) 19:16:16ID:bcXVPvCT>>452が理解できなかった人へ
for %%F in (".\うんこ.jpg") do (
if %%~zF geq 20000 (
echo ウンコてんこ盛り
) else if %%~zF geq 10000 (
echo ウンコ並
) else (
echo ちょびっと
)
)
0459446
2006/11/24(金) 20:34:34ID:6m7E/X5oなるほど、カッコで囲えばいいのか。
それにしても、このウンコ講座、まじで役に立ちました。
おかげさまで、うんこ摘み分け もとい、ログファイル選別バッチが
完成しました。みなさん、くだらない質問につきあってくれてありがとう。
俺は、AとかBとか1,2,3,とか甲乙とかのサンプル名詞よりも、
うんこちんこと書いたほうが理解力が早いことが判明。(´゚З゚`) ンモー
0460名無し~3.EXE
2006/11/24(金) 21:24:55ID:WzW0xK9iどんな問題でもポンと的確な答えが返ってくる
2chの片隅にひっそりと存在するささやかなスレですが、すばらしいスレです
いつも答えてくれている人に感謝
0461名無し~3.EXE
2006/11/25(土) 09:56:27ID:/CZ055s/いつもDQN質問が多数を占めるスレばかり見てるんじゃないのかね。
0462名無し~3.EXE
2006/11/25(土) 11:16:06ID:8LWk1c8J0463名無し~3.EXE
2006/11/25(土) 18:45:30ID:ebCEPaSvset /a v=%sz%/10000*10
if %v% geq 30 set v=30
goto case%v%KB
0464名無し~3.EXE
2006/11/25(土) 19:01:46ID:ebCEPaSvset /a v=sz/1000*10
これでも良いんだ。
0465名無し~3.EXE
2006/11/26(日) 20:15:54ID:uCTfojiqset hoge="コマンド"
set hoge=%hoge:~1,-1%
とやっておいて in ('%hoge%') こんな感じ?
0466名無し~3.EXE
2006/11/28(火) 12:07:45ID:MZyNBUPe0467名無し~3.EXE
2006/11/28(火) 15:26:09ID:A2PCXcn10468名無し~3.EXE
2006/11/28(火) 15:37:44ID:A2PCXcn10469名無し~3.EXE
2006/11/28(火) 15:45:10ID:PA/2uyOE0471名無し~3.EXE
2006/11/28(火) 16:44:01ID:eQt+KJMGunixで非同期実行の&があるが、ショートカットはその感じ。
コンソールアプリやバッチファイルのショートカットを作って、
hoge.lnk
とやると、標準入出力が共有されたまま、非同期実行できますよ。
startはコンソールが別になります。
0472名無し~3.EXE
2006/11/28(火) 16:49:25ID:eQt+KJMG待つときは、Startを使いますが、他に、
cmd/c hoge.exe
とか、
hoge.exe|more
などでも待ち合わせできます。
メリットは特にないけど。
0473名無し~3.EXE
2006/11/28(火) 19:03:31ID:A2PCXcn10474名無し~3.EXE
2006/11/28(火) 22:27:25ID:oG1sWt3Qデータベースからバッチ実行=>FTPの起動・自動ログイン・処理・ログアウト
とか。
MS-DOS時代、waitコマンドラインあったけど
コマンドプロンプトでそれらしいのあるんだろうか?
0475名無し~3.EXE
2006/11/28(火) 23:17:25ID:eQt+KJMG>つ Services for UNIX
なんて言われても、home editionなので、インストール不可。
SFUには便利そうなコマンドがあるので、一部だけでも抜き出して使いたいのですが、
いい方法はないもんでしょうか。
VirtualPCでPROの環境を作ってインストールするしかないかなぁ。
0476名無し~3.EXE
2006/11/28(火) 23:42:30ID:RgtI1wII0477名無し~3.EXE
2006/11/29(水) 00:37:12ID:2/mGVRQoググってもwaitコマンドがどういうのか判らんかったけど
pauseコマンドで代用出来たりする?
0478名無し~3.EXE
2006/11/29(水) 03:43:22ID:Cnbem7Cd>素の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にこのショートカットを置けば、複数ファイルが送れますが、ファイルを作成することになるので駄目ですね。
0480名無し~3.EXE
2006/11/30(木) 00:18:54ID:9lgU88/V作るバッチプログラムが欲しいのですが、
下のようにするとファイル名中に空白等があった場合
そこから先が省略されてしまいます。
暇な人いましたら修正してもらえませんでしょうか
if "%~1"=="" goto :eof
pushd %1
for /f %%i in ('dir /b %1') do type nul >%%~ni.txt
popd
0481名無し~3.EXE
2006/11/30(木) 00:38:13ID:W1vyssVcで良いんじゃないかな?
0482名無し~3.EXE
2006/11/30(木) 00:47:00ID: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行丸ごと引用しますので、
行の途中から文章を引用することができません。
賢い方法、なにかありませんか?よろしくお願いします。
0483名無し~3.EXE
2006/11/30(木) 00:58:21ID:CJ8/8p6E0485名無し~3.EXE
2006/11/30(木) 01:26:19ID:6of09l5E@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
0486名無し~3.EXE
2006/11/30(木) 01:33:23ID:W1vyssVcこれでどう?
for /f "delims=" %%i in ('dir /b %1') do type nul >%%~ni.txt
0488名無し~3.EXE
2006/11/30(木) 18:53:37ID: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]);
0489名無し~3.EXE
2006/11/30(木) 18:55:47ID:4A8n4oNdmshta "javascript:var f=new ActiveXObject('Scripting.FileSystemObject');f.GetStandardStream(1).WriteLine(f.GetStandardStream(0).ReadAll().match(/拡充[\s\S]*?関するネタ/)[0]);close();" <1さん.txt >結果.txt
0490名無し~3.EXE
2006/11/30(木) 19:04:53ID:4A8n4oNd本家(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.
など面白そうなコマンドがいっぱい。
0491名無し~3.EXE
2006/11/30(木) 20:37:35ID:4A8n4oNd@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%!
0492482
2006/12/01(金) 00:02:40ID:2IMejFpR皆様、貴重なアドバイスをありがとうございました。
教えていただいたスクリプトを複数組み合わせ、
うまく動きました。どうもありがとうございます。
0494名無し~3.EXE
2006/12/01(金) 11:22:51ID:5wVi+ir+http://www.centforce.com/profile/t_profile/kaitou.html
0495名無し~3.EXE
2006/12/01(金) 18:22:58ID:4N/6YD5N俺は昔同級生に「貴」(タカシ)が居た
年賀状出し辛かった
0496名無し~3.EXE
2006/12/01(金) 20:34:01ID:oGiM64QNhttp://www.excite.co.jp/News/entertainment/20061129061215/Sponichi_kfuln20061129006003.html
0497490
2006/12/02(土) 17:19:08ID:0XNYfzVDMKS ToolkitはSFU2.0に30日DEMO版が入っているだけでした。
なので興味喪失。
ところで、未インストール状態のSFU中のexeを叩いても
そんなファイルは見つかりません。と言うのは、
exe形式がPOSIX Subsystem用になってるとか、
そういうことなんでしょうか。ちょっと不思議です。
0498名無し~3.EXE
2006/12/02(土) 23:17:07ID:GeMJalJA連続して作成できるようにps1ファイルを作成し、ファイル作成は動作は正常に行えたのですが
出来上がったファイルの文字コードがUTF-16で次のプログラムに受け渡せなくて困ってます。
echoの時点でSJISにしたり、ファイルをスクリプトから変換できるようなツールがあればお教えください。
0499名無し~3.EXE
2006/12/02(土) 23:51:48ID:46Pzno4R0500名無し~3.EXE
2006/12/03(日) 00:57:51ID:TRuQ24NScmd,exeを呼び出して使えってことなんでしょうが PowerShellからcmd.exeを呼び出せるもんなんですか?
0501名無し~3.EXE
2006/12/03(日) 03:35:54ID:y64/DPio0502名無し~3.EXE
2006/12/03(日) 03:41:28ID:y64/DPioiconv -f from_code -t to_code [-s char] [file ...]
0503名無し~3.EXE
2006/12/03(日) 14:00:50ID:JdmW3Ab/0504名無し~3.EXE
2006/12/03(日) 17:24:46ID:TRuQ24NS>>503 .NetFrameworkを使ったスクリプトをWebで見つけて参考に作り上げたのですが
どうせunicode中間ファイルができるなら、
cat $fname[] | Out-File -encoding ASCII -filepath $fpath
とかで簡単にいけそうですね。
ありがとうございます >499、501、502、503
パイプラインで出力する方法を設定できれば楽なのにMSさん。
0505名無し~3.EXE
2006/12/03(日) 17:57:05ID:y64/DPioFIND /V "" < BOM付きUnicodeファイル > シフトJISファイル
とか、
「BOM付きUnicodeを出力するコマンド」|FIND /V "" > シフトJISファイル
とやればよいのでは。
PowerShellを知らないので頓珍漢かも。
0506名無し~3.EXE
2006/12/03(日) 20:14:24ID:x5iMNpj8">"とか"|"とか"&&"とか"()"に関してのヘルプってどうやったら出てくるか教えてください。
0507名無し~3.EXE
2006/12/03(日) 20:34:50ID:ltN6r6qXスタート→ヘルプとサポートでコマンド ライン リファレンスを検索
→コマンド シェルの概要、リダイレクト演算子
に書かれている
0508名無し~3.EXE
2006/12/03(日) 20:40:53ID:JdmW3Ab/"dir" など回復コンソールにもあるコマンド名で検索して[関連項目]から移動。
0509名無し~3.EXE
2006/12/03(日) 21:01:16ID:XHqr+Wc4通常は、
hh ntcmds.chm
hh ntcmds.chm::/ntcmds.htm
0511名無し~3.EXE
2006/12/03(日) 21:23:21ID:XHqr+Wc4hh ntcmds.chm::/ntcmds_shelloverview.htm
0512名無し~3.EXE
2006/12/03(日) 22:01:18ID:y64/DPiohelpctr.exe /URL ms-its:ntcmds.chm::/ntcmds_o.htm
0516名無し~3.EXE
2006/12/04(月) 20:20:53ID:M/HQ1bo2一度見つけたら右クリック「お気に入りに追加」しておくべし。
hhのほうも、
hh.exe windows.chm
で、「お気に入り」や「検索」「キーワード」タブを表示、
左上隅のアイコンを右クリックして、「URLへ移動」に
ntcmds.chm::/ntcmds_shelloverview.htm
などを入れて表示して、「お気に入り」タブで「追加」しておくべし。
0517名無し~3.EXE
2006/12/05(火) 20:20:38ID:L6haTKq6xcopy c:\progra~1\common~1\micros~1\ime\imjp9\dicts\imjp81~1.dic d:\ /s/y
としても「指定されたファイルが見つかりません」になってしまいます。
どこがおかしいでしょうか?
0518517
2006/12/05(火) 20:27:20ID:L6haTKq60519名無し~3.EXE
2006/12/05(火) 23:08:31ID:jnuccgG/後世の人のために。
0520名無し~3.EXE
2006/12/05(火) 23:16:01ID:Ut7BG6ZPデフォだと、\Program Filesの下なんかに無くて
%USERPROFILE%\Application Data\Microsoft\IMJP8_1\imjp81u.dic
だし。
0521名無し~3.EXE
2006/12/06(水) 00:11:56ID:Wd7oNSvB↓
xcopy c:\"program files"\"common files"\"microsoft shared"\ime\imjp9\dicts\imjp81~1.dic d:\ /s/y
0522517
2006/12/06(水) 00:15:08ID:Wd7oNSvB半角スペースが含まれるフォルダ名をダブルクォーテーションで囲まなかったのが
原因でした。
0523名無し~3.EXE
2006/12/06(水) 00:42:03ID:tyfiRIjSIMT??.xml 2KB, IMT??.xml 1KB, IMT??.xml 566KB が
%TEMP% に増殖するようになった。
MS06-061(924191) の msxml3.dll を旧バージョンにしたら
直ったけど・・・なんだかなぁ
0524名無し~3.EXE
2006/12/06(水) 01:19:55ID:1p+kqH7a8.3形式のショートファイル名では""で括る必要なんてなかろう?
それでどうしてエラーになったのか説明になってないよ。
0525名無し~3.EXE
2006/12/06(水) 01:33:08ID:IO9adWLdDocumentExplorerでMSDNライブラリを見るとそうなるので、
以下のバッチファイルで消してる。
http://www.vector.co.jp/soft/winnt/util/se396195.html
0526名無し~3.EXE
2006/12/06(水) 08:37:07ID:m9Lj9Fy4横レスで悪いが、その短いファイル名を書き間違えた(長いファイル名と異なり環境によって不定だから
いちいち確認し直さないと間違える恐れがある)からエラーになったという事じゃないの?
0527名無し~3.EXE
2006/12/06(水) 12:02:50ID:djMBOTsrホスト名をコマンドで変更できないのでしょうか?
表示はhostnameでできるみたいですが
0529名無し~3.EXE
2006/12/06(水) 23:31:18ID:/1yQuGaA情報乙。
クリック2回で1MB強・・・気付かず放置してたら・・
chmの動作も少々不安定で稀にWSHのエラーダイアログを見た。
件のDLLを差し替えてから解消。 >>523
0531名無し~3.EXE
2006/12/07(木) 15:08:30ID:IpBUAms4ダブルクォーテーションを使うにしても、全体をまとめて括るのが普通だと思う。
"c:\program files\common files\microsoft shared\ime\imjp9\dicts\imjp81~1.dic"
0532521
2006/12/07(木) 15:36:05ID:tZeJn9bU\imjp8_1\imjp81u.dic"
最終的にこれで落ち着きました。
IMEの場所が変だったのはデフォルト以外の場所で参照していて、
デフォルトフォルダを忘れてしまっていた。
(隠しフォルダ設定になっていたため検索しても引っかからなかった。)
名前の似ているフォルダを見つけて消してしまったのかと思い、そこにIMEを移したからです。
0533名無し~3.EXE
2006/12/07(木) 15:50:06ID:EC5LjnO7そもさん
一時ファイルを作成せずに、テキストファイルのn行目を削除して上書きするには?
0534名無し~3.EXE
2006/12/07(木) 17:24:57ID:GW4cVLj70536名無し~3.EXE
2006/12/07(木) 19:17:22ID:cfBCyQ+c0537名無し~3.EXE
2006/12/07(木) 20:05:30ID:EC5LjnO7そもさん
バッチでsetlocalを使って処理した上で、環境変数hogeに値をセットして返すには?
同様にカレントディレクトリを変更して帰すには?
0538名無し~3.EXE
2006/12/08(金) 00:30:37ID:jJz4HCFd処理
endlocal&set hoge=値
pushd X:\hoge\hoge\hoge
処理
popd
0539名無し~3.EXE
2006/12/08(金) 03:18:43ID:pYxlA4EA0540539
2006/12/08(金) 03:52:59ID:pYxlA4EAttp://www.atmarkit.co.jp/fwin2k/win2ktips/446xcopy/xcopy.html
xcopy c:\usr z:\usr\ /EXCLUDE:C:\BAT\xcopy-excludelist.txt
バッチファイルって便利ですね。
0541537
2006/12/08(金) 15:03:28ID:ZdduNYTrsetlocal
set /p num=加える数を入力してください
set /a hoge+=num
だとうまく行かない。
setlocal
set /p folder=ディレクトリを入力してください
cd /d %folder%
これもうまく行かない
それぞれ直して。という意味です。
0542名無し~3.EXE
2006/12/08(金) 15:08:32ID:QCa6jACiを変える方法を教えてください。
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Owner>
↑
これ
0543542
2006/12/08(金) 15:42:55ID:QCa6jACihttp://www.fpcu.jp/dosvcmd/bbs/log/cat8/3-0427.html
レジストリを弄るよりショートカットを作ったほうが安全だそうです。
私はxkeyemacsというソフトで、M-shift-1でプロンプトを呼び出して使っていますが、
そのソフトには呼び出し先の指定が出来ないのでショートカットを作っても対応できません。
Ownerにbatファイルを作って毎回起動するのが現実的かなあ。
何か他にいいアイデアありますかね?
0544537
2006/12/08(金) 15:56:56ID:ZdduNYTrsetlocal
set /p num=加える数を入力してください
set /a hoge+=num
だとうまく行かない。
setlocal
set /p folder=ディレクトリを入力してください
cd /d %folder%
これもうまく行かない
それぞれ直して。という意味です。
0545537
2006/12/08(金) 16:05:27ID:ZdduNYTrごめん。みすった。
リダイレクションの練習課題
標準出力をファイル、標準エラーをパイプに。
標準出力をコンソール、標準エラーをパイプに。
標準出力と標準エラーを入れ替える。
バッチの中でコンソールにプロンプト。バッチ使用者がリダイレクトしていてもコンソールに。
set /p hoge=prompt
0547名無し~3.EXE
2006/12/08(金) 16:22:55ID:ZdduNYTrと思ったら書いてあったね。
しかし、そのソフトがコマンドプロンプトをどう呼び出してるかが分らなければ、
どうしようもないんじゃないの。作者に聞けば?
或いは、バイナリエディタで中を覗いて、書き換えるか。
0548名無し~3.EXE
2006/12/08(金) 16:26:42ID:pYxlA4EA0549名無し~3.EXE
2006/12/08(金) 16:30:36ID:ZdduNYTr名前からするとEMACS擬似みたいだから、バイナリじゃなくて、
呼び出してるマクロソースを変えればいいんじゃないの。
0550名無し~3.EXE
2006/12/08(金) 16:47:12ID:ZdduNYTrを見ると、
! file.txt を検索してから、Search.txt にハンドル 1 (STDOUT) とハンドル 2 (STDERR) をリダイレクトするには、次のように入力します。
!
! findfile file.txt>search.txt 2<&1
なんて書いてあって、えっ嘘、と一瞬思うけど、やってみると動くのよね。
全くもってへぼいヘルプ。わざとだったりして。
0551名無し~3.EXE
2006/12/08(金) 23:19:08ID:QCa6jACi内蔵みたいで、マクロソースが無いんですよね・・・。
諦めてショートカットつくっちゃいましたw
レスありがとうございました。
0552名無し~3.EXE
2006/12/09(土) 00:58:03ID:KVXyeSOlもし、呼び出しが「cmd」だけなら、
C:\Documents and Settings\Owner
にcmd.cmd
cmd.exe /k cd フォルダ
を作る。
.exeを忘れると悲惨。
で行けるかも。駄目ならやっぱり、バイナリで書き換え。
0553533
2006/12/09(土) 01:01:47ID:KVXyeSOl@ECHO OFF
FOR /F "delims=] tokens=1*" %%0 IN ('FIND /N /V "" ^<テキストファイル') DO (
IF "%%0"=="[1" TYPE NUL >テキストファイル
IF NOT "%%0"=="[5" ECHO %%1>>テキストファイル
)
0554537
2006/12/09(土) 01:14:50ID:KVXyeSOl正解です。
これを >>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%
)
0555名無し~3.EXE
2006/12/09(土) 01:24:09ID:KVXyeSOl他からの呼び出しがうまくないですね。
@echo off
if "%1"=="" (
cmd.exe /kcd フォルダ
) else (
cmd.exe %*
)
0556名無し~3.EXE
2006/12/09(土) 01:30:05ID:eB0nlLts0557名無し~3.EXE
2006/12/09(土) 09:10:12ID:CbyQAEJO0559名無し~3.EXE
2006/12/10(日) 13:02:38ID:DlucxiVxのDOS窓で16ビットVz、FILMTNなどを実行すると、CPU使用率が
常時90%以上になり、他のWindowsアプリの動作がかなり遅くなります。
ここなど読んでみたり、WindowsFAQで調べたりしましたがよくわからず、、
ttp://itpro.nikkeibp.co.jp/article/Windows/20051216/226357/?ST=win-client&P=2
昔のDOSプログラムを、CPU使用率を上げないで、Windowsで使うことは
可能でしょうか?(cygwinを使うなど)
環境はMicrosoft Windows XP [Version 5.1.2600] SP2です。
0560名無し~3.EXE
2006/12/10(日) 13:12:11ID:3olEl7F70561名無し~3.EXE
2006/12/10(日) 14:08:43ID:DlucxiVx0562名無し~3.EXE
2006/12/10(日) 14:15:49ID:aavWYyCD今の内から移行しておいた方がいいぞ。
0563名無し~3.EXE
2006/12/10(日) 14:58:41ID:DlucxiVxLANに繋がってる別の古いマシンを16bit専用にします。
0564名無し~3.EXE
2006/12/10(日) 17:17:26ID:aid/GaYP0565名無し~3.EXE
2006/12/10(日) 19:29:07ID:NyMIEUsgここで訊く話ではないのだけれど、あえて質問。
そのDOSと他のマシン(Windowsマシン?)とLANの接続方法は?
幾通りものやり方はあるけど、>>563のところでは、どういう接続方法?
0566名無し~3.EXE
2006/12/10(日) 22:02:12ID:A1RkA3AsDOSプログラムへのショートカット (pif)を作って
そのプロパティのその他のタブの「ほかのプログラムの優先度」を高いほうにして実行したらどうか。
0568565
2006/12/10(日) 22:57:18ID:xLBP+58r回答ありがとうございます。
ク、ク、クロウトシコウ(苦労と試行)じゃないや、クロスシリアル。
わかりました、たしかにケーブルさえ用意出来ればそれがいいかも。
(以前、実際やったことあるけど、とんでもなく転送速度が遅かったけど)
RS-232CコネクタがついているPCはよくありますものね。
05691/2
2006/12/11(月) 15:32:28ID:XufxOd7SShift-JISしか表示出来ないと思っていたのですが、SP(an SGML parser : ttp://www.jclark.com/sp/index.htm)の
nsgmls.exeがutf-8で出力し、文字化けせずに表示されています。僕の勘違いでしょうか?
以下が試した内容です。ファイルにリダイレクトした内容、Perlで取得したコマンドライン出力ともにUTF-8でした。
[コマンド実行前に設定した環境変数]
SET SP_CHARSET_FIXED=1
SET SP_ENCODING=utf-8
[実行したコマンド]
nsgmls test.dtd test.sgm
XPPro sp2
SP 1.3.4
ActivePerl 5.8.8
05702/2
2006/12/11(月) 15:34:41ID:XufxOd7S<!DOCTYPE test [
<!ENTITYend"終わり">
<!ELEMENTparam - - (#PCDATA) >
<!ELEMENTtest - - (param)+ >
]>
[test.sgm] UTF-8で保存
<test>
<param>あいうえお&end;</param>
</test>
長くなってしまいましたが、よろしくお願いします。
0571名無し~3.EXE
2006/12/11(月) 15:41:32ID:XufxOd7S<!ENTITY
<!ELEMENT
の後にはスペースが入ります。済みませんでした。
0572名無し~3.EXE
2006/12/11(月) 18:44:17ID:ZLM4uKIZは無理でしょ?
よく知らんけど、出力先がファイルかconsoleかで区別してんじゃね〜の?
0573名無し~3.EXE
2006/12/11(月) 20:26:07ID: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);
0575名無しさん@Vim%Chalice
2006/12/11(月) 21:11:55ID:oJSjGerRを見て思ったんだけど
簡単にゆうと
xmlparserと呼ぶんだろうか?covert txt.htmlみたいな処理
xml/atomを処理して用はtag抜きしてテキストで人が可読出きるように処
理してくれるコマンドラインツールを持ってた。
perlで処理ってのも(今はそうだけど)あるけど
単体で簡単に処理できた。 javaで出来てた。
http://〜で指定、 ローカルから指定
などができてdescriptionを吐いてくれた。
titleやlinkは吐いてくれたかどうだったか忘れたけど
消しちゃったらしく見つからない('A`
類似してるのでご存知の方いたら教えて下さいorz
0576名無し~3.EXE
2006/12/11(月) 22:05:28ID:65WhWCqA@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);
0577名無し~3.EXE
2006/12/11(月) 22:41:10ID:65WhWCqA@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);
0578名無し~3.EXE
2006/12/11(月) 23:19:15ID:X2aariIn幾つも書かれるとさすがにうざい。(しかも大文字)
条件コンパイル文は省略してfoo.jsとでもしてくれ。
0580名無し~3.EXE
2006/12/14(木) 09:46:39ID:C8bcVsGQだから>>573じゃ駄目なん?
UTF-8、EUC、ISO-2022-JP、Unicode Big Endianは読めるけど。
0581名無し~3.EXE
2006/12/15(金) 15:27:11ID:S/zivTUDありがとうございます。私の為に書いて下さっていたのですね。レスが遅くなって済みませんでした。
私の説明の仕方が紛らわしかったです。UTF-8でエンコードされた文字列データを
シフトJISに変換せずに出力し、正しく(文字化けせずに)表示することが可能なのか知りたかったのです。
例えば、UTF-8で平仮名の'あ'は16進表記で'E3,81,82'という並びになりますよね?
このようなデータをそのまま標準出力に出力すると、データをシフトJISとして解釈して、
コマンドプロンプト上には'縺・'と表示されてしまうと思っていたのですが、
上記nsgmls.exeの出力では'あ'と表示されているようなので不思議に思い質問させていただきました。
そもそも、リダイレクトしたデータがUTF-8でエンコードされた文字列データだとしても、
標準出力に出力された文字列がUTF-8でエンコードされていたとは限らないのでしょうか?
それとも、>>572さんが仰っているように内部で出力先を判断することが可能なのでしょうか?
>>573を試してみました。WSHはよく分からないのですが、シフトJISに変換して出力されていますよね?
僕の知識不足や勘違いでしたらごめんなさい。
0582名無し~3.EXE
2006/12/15(金) 17:24:28ID:WQ0VQ89P>>573の末行を以下に変えると、Unicodeで出力します。
new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1,true).Write(htmlfile.body.innerText);
これで、コンソールに出すと、Unicodeがちゃんと表示されます。
でもUTF-8は無理そう。
やり方は知りませんが、コンソールかどうかの判定ができのでは。
0584名無し~3.EXE
2006/12/16(土) 19:10:41ID:8R61Kbtoあるバッチファイルを実行したいときに、ファイルアイコンをダブルクリックした場合や、
あらかじめ開いてあるコマンドプロンプトでバッチファイルのフルパスのみを入力した
場合には普通に実行できるのですが、コマンドプロンプトやスタートメニューの
「ファイル名を指定して実行」で"cmd.exe (バッチファイルのフルパス)"と入力しても
"cmd.exe"が起動するだけでバッチファイルの中身がまったく実行されません。
(フルパスを""で囲み忘れているということはありません)
バッチファイルの内容が"@pause"しかない場合でもうまくいかず、原因がまったく
分からず困っています。どなたか思い当たることなどありましたらレスお願いします。
こちらの環境はWinXP Pro SP2です。管理者権限のユーザでログインしています。
0585名無し~3.EXE
2006/12/16(土) 19:20:49ID:sMjQ//iNでは駄目?"
0586名無し~3.EXE
2006/12/16(土) 19:23:31ID:WY7hZ9i60587名無し~3.EXE
2006/12/16(土) 19:42:41ID:vxaOUO5b0588名無し~3.EXE
2006/12/16(土) 19:58:17ID:2dLQ97yA0589584
2006/12/16(土) 21:01:04ID:8R61Kbto夫でした。
/cをつけなければならないのと、/cの引数に直接パスが指定できるのを
知らなかったため悩んでしまいました。お手数おかけしました。
0590名無し~3.EXE
2006/12/17(日) 01:04:04ID:Q+y26mBoいきなり移動は出来ないでしょうから、コピーと削除を組み合わせて作りたいと考えています。
フリーソフト「FFFTP」のコマンドラインでアップロード機能を呼び出し、
特定のディレクトリにあるファイルを自動アップロードすることは出来ました。
ところがこの方法では問題があり、転送が成功した・失敗したときの判別が
できないため、転送元のファイルを安全に削除することが出来ません。
また、FTP接続が途中で途切れることが多く、接続先に中途半端な
ファイルサイズの異常ファイルが出来てしまい、目視で確認しながら削除しています。
このような動作を、MS謹製のFTPコマンドで自動化できないでしょうか。
下記の動作をさせたいのですが、これをコマンドorバッチで行うには
どのように記述すればよいでしょうか。
・ディレクトリAにある全ファイルを、FTP接続先のディレクトリBにすべてコピー
・FTP接続先のBに転送したファイルと、転送元のファイルサイズを比較する
・ファイルサイズを元に、正常に移動できたと判断できるファイルは、ディレクトリAから削除
・ファイルサイズが異なっている場合は、異常転送ファイルと見なし、再度転送する。
・全部のファイルを転送したら、バッチを終了。
FTPアドレス C.com
アカウント DDD
パスワード EEE
転送ファイルの種類:テキスト
SSL:なし
OSは2Kです。BATでもwshでもかまいません。どうかよろしくお願いします。
0591名無し~3.EXE
2006/12/17(日) 16:15:10ID:+i+SBATYを任意のデバイスに切り替えたいのですがそのコマンドはどう書けばいいのでしょうか?
Control.exe Mmsys.cpl,,2
これ以降が分かりません。
0592名無し~3.EXE
2006/12/17(日) 18:46:32ID:ahAVL3DJおまいらコマンドプロンプトの文字色と背景色何にしてる?
MySQLとか叩くので見易さの配色を追求したいのだが、
あっても、背景を明るく、文字を濃い色でっつうヒントしかない。
ヒントください。
0593名無し~3.EXE
2006/12/17(日) 19:28:06ID:WscTpZLE0594名無し~3.EXE
2006/12/17(日) 20:24:53ID:H4aSBfXuWin95/98をお使いの方は、例えば「窓の手」などを使えば出来ます。
0595名無し~3.EXE
2006/12/17(日) 20:55:42ID:rBykiDhmprompt $e[;33;1;40m$p$g
0596名無し~3.EXE
2006/12/19(火) 16:11:42ID:Iyp0VyJJ0597名無し~3.EXE
2006/12/19(火) 17:09:29ID:1Fdabpp+あれでKDEのkcomsoleとかmacのあれとかscreenばり
に使えるなら最高なのにね
残念で泣けてくる
なんて重いんだ。cygwinがサクサクじゃないか
なぜに.Netのような
もっさーで
凶過負荷な処理なんだ
ほんとwinのコマンドプロントはあれ
処理がもの凄く重い
たまに使うけどね。常用する気になれないよなぁ
素のプロントにもどたよ。
したければcygwin入れるのがいいと思う。
比べてもの凄く軽くて驚愕('A`
0598名無し~3.EXE
2006/12/19(火) 20:11:59ID:HVfooesm素のプロントとかコマンドプロントとか何だよ。意味わかんねーから。プロンプトだろ。
要するに『cygwin良いよ』てことだろ?ならそー書けって。無駄多すぎ。95点。
0600名無し~3.EXE
2006/12/19(火) 20:21:17ID:S/+BR6iP> 処理がもの凄く重い
> したければcygwin入れるのがいいと思う。
> 比べてもの凄く軽くて驚愕('A`
矛盾していると思うのは自分だけ?
0602599
2006/12/20(水) 00:04:47ID:GNDOcEV8一応合格っていうことにすれば、60点(合格基準)っていっただけ。
本当は合格どころじゃないんだけどな。
0603名無し~3.EXE
2006/12/20(水) 00:32:01ID:eaArVi2n常用できない重いコマンドプロンプトってのは少し上で出てた例のアレで
それを使うくらいならlinuxの方にしとけってことを言ってるのかな?
0604名無し~3.EXE
2006/12/20(水) 04:04:40ID:y3J2eMDrあれは確かに初期化で時間食うから使うの止めた
0605名無し~3.EXE
2006/12/21(木) 01:22:15ID:og2psuklローカル・ドメイン両方で使えるやつを頼むよ。
0606名無し~3.EXE
2006/12/21(木) 02:13:10ID:n0KXciptnet group / net localgroup
じゃダメ?
0607名無し~3.EXE
2006/12/21(木) 22:53:35ID: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 管理者権限の無いユーザでログオンしています
)
)
0608名無し~3.EXE
2006/12/22(金) 04:11:55ID:Gts2GbNxローカルではAdministratorsに、グローバルではDomain Usersに所属してるとすると
(ごく普通のケース)
今そのユーザー名でローカルにログインしてるのか
ドメインサーバーにログインしてるのかをまず切り分けなきゃ。
0609605
2006/12/22(金) 20:48:14ID:XuMQmg9z調べれば調べるほど敷居が高く感じる・・・(汗)
サンプルがあるといいのだが・・・
0610名無し~3.EXE
2006/12/22(金) 21:30:25ID:Cv8wg2nvif "%LOGONSERVER%"=="\\%COMPUTERNAME%"で判別可能かも。
もしくはwhoamiコマンドとか。
あと、漏れが昔やったことあるのは、対象のマシンが特定できる環境
だったので、管理共有から中が見れるかどうかで判別したことがある。
>今そのユーザー名でローカルにログインしてるのか
>ドメインサーバーにログインしてるのかをまず切り分けなきゃ。
日本語的にすごく違和感感じた。
「ローカルのユーザーでログオンしてるのか
ドメインのユーザーでログオンしてるのか」
と書いたほうがいいと思った。
0611名無し~3.EXE
2006/12/23(土) 00:06:20ID:TSxTwauUこのコマンドは Windows ドメイン コントローラでのみ使用できます。
ダメじゃん。使えね。
0612名無し~3.EXE
2006/12/24(日) 23:50:47ID:rAnywQRM0615名無し~3.EXE
2006/12/26(火) 12:49:58ID:y+kCCyOOCドライブ直下に今日の日付のフォルダを作成する。
@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
0616名無し~3.EXE
2006/12/28(木) 09:10:35ID:5F6FvSduMKDIR "C:\%DATE:~-10,4%年%DATE:~-5,2%月%DATE:~-2%日"
0619名無し~3.EXE
2006/12/28(木) 22:44:23ID:iTWT+95wFOR %%0 IN ($$$) DO FOR /F "tokens=1-5 delims=/: " %%1 IN ("%%~t0") DO REN $$$ %%1年%%2月%%3日%%4時%%5分
0620名無し~3.EXE
2006/12/29(金) 02:49:52ID:iPyKEow9for /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%日"
0621615
2006/12/29(金) 15:45:58ID:cLdyRAMkいろいろコメント頂き感謝してます。・・・が、当方の理解不足のため返事に困ってます。
>>615は拾ってきたもので、まだ消化不良のネタです。
暫く勉強して、出直します。
0622名無し~3.EXE
2007/01/10(水) 13:31:28ID:1Ujtu0BXfoo.exe の標準出力をプロンプトウィンドウとテキストファイルの両方に出力したいのですが、どうすればいいでしょうか?
ただし、foo.exe は重い処理なので出力されていく様をリアルタイムに確認できるのが条件です。
なので、
foo.exe>log.txt
type log.txt
ではダメです。どうかお知恵をお貸しください。
0623名無し~3.EXE
2007/01/10(水) 15:47:00ID:eDrPJ7tb0624名無し~3.EXE
2007/01/12(金) 01:55:50ID:fkJWsIggstart /wait notepad
のようにすると、ノートパッドが立ち上がっている間、DOS窓が開き、
タスクバーにも出てしまいます。
バッチファイルじゃなくても可です。
なんとかする方法はないでしょうか?
0625名無し~3.EXE
2007/01/12(金) 02:28:53ID:fkJWsIggタスクバーに残ってしまいます。
0626名無し~3.EXE
2007/01/12(金) 02:40:51ID:fkJWsIggshell.Run("notepad.exe run.js", 1, true);
WScript.Echo("スクリプトを終了します。");
なんか、普通にwshでやった方が早そうですねw
0627名無し~3.EXE
2007/01/12(金) 02:40:58ID:KeWhhVwNプロンプトからnotepadを起ち上げて、しかもプロンプトは消したい、ということだろうか?
start notepad
exit
みたいなバッチってことか?
0628名無し~3.EXE
2007/01/12(金) 02:51:09ID:fkJWsIggなんですけど、終了を待ちたいのです。
0629名無し~3.EXE
2007/01/12(金) 02:52:13ID:fkJWsIggwshを実行ファイル形式にできないでしょうか
WSH用コンパイラ+ってのを見つけたのですが、作者のサイトがなくなってました orz
ベクターも消えてるし・・・
0631名無し~3.EXE
2007/01/12(金) 17:54:16ID:qP/ay6URこっちのヤツじゃダメなん?
ttp://www.vector.co.jp/soft/win95/prog/se277804.html
0633名無し~3.EXE
2007/01/13(土) 03:47:27ID:kPVhqETKたとえばフォルダ内にパッチが幾つもあって
dirでそれらをリストにするかして
それらにコマンドラインをくっつけて一括で実行するにはどうしたらいいの?
種類ごと大雑把だけどこんな感じにリストを吐き出せたけど
dir Q*.exe /b>Qlist.txt
dir Windows2000*.exe /b>Wlist.txt
そっから先わからんちん
0634名無し~3.EXE
2007/01/13(土) 09:18:10ID:bfcWSwa4dir Windows*KB*.exe /b >> KBlist.bat
編集で.exeを.exe -n-z-qにすべて置換
こんなことしか思いつきません・・・
0635名無し~3.EXE
2007/01/13(土) 10:03:27ID:SuZfHdbTあるソフトを起動するbatファイルを作成したのですが、
そのソフトを起動したらbatファイルを勝手に閉じたいのですが
コマンドがわかりません。
どなたか教えてください。
0637名無し~3.EXE
2007/01/13(土) 12:08:16ID:SuZfHdbT637でうまく行きました。 ありがとう。
0638名無し~3.EXE
2007/01/13(土) 23:46:49ID:BdlKHbf+内容はと言うと、Cドライブに帳票というフォルダがあります。
このフォルダの中には、080101帳票 080102帳票 ・・・・等
毎日作成されるエクセルファイルがたまっています。
そして、そのフォルダの中の一番新しいファイルをAドライブの
フロッピーディスクに、帳票という名前に変えてファイルをコピーする
BATファイルを作りたいのです。
どうぞ宜しくお願いします。
0639名無し~3.EXE
2007/01/14(日) 00:11:43ID:ML+aCZllfor /f %%i in ('dir /o-n /b C:\帳票\*帳票.xls') do (
echo "%%~fi" A:\帳票.xls
goto :eof
)
0640名無し~3.EXE
2007/01/14(日) 00:13:17ID:ML+aCZll0641名無し~3.EXE
2007/01/14(日) 00:46:26ID:DGqWZ2TH@echo off
for /f %%i in ('dir /o-n /b C:\帳票\*帳票.xls') do (
copy /y "%%~fi" A:\帳票.xls
goto :eof
)
>>640も合わせて ↑ こんな感じなのでしょうか?
試してみたのですが、どうもうまく動きません・・OTL...オバカですんません
0642名無し~3.EXE
2007/01/14(日) 00:51:31ID:ML+aCZll0643名無し~3.EXE
2007/01/14(日) 00:56:23ID:DGqWZ2TH0644名無し~3.EXE
2007/01/14(日) 01:30:14ID:4ceN/aT3for /f "usebackq" %%i in (`dir /o-n /b "C:\帳票\*帳票.xls"`) do (
copy /y "%%~fi" A:\帳票.xls
goto :eof
)
:eof
でどうだろう
0645638
2007/01/14(日) 01:44:50ID:DGqWZ2TH一瞬コマンドプロンプトの黒い窓が見えるだけで何も起こりません・・・。
私の環境に問題があるのかなぁ・・・・OTL
これからリカバリーディスクぶち込んでみますので、しばらく落ちます
0646名無し~3.EXE
2007/01/14(日) 01:45:37ID:DGqWZ2TH0647名無し~3.EXE
2007/01/14(日) 01:53:00ID:ZJ4t0Fvk>一瞬コマンドプロンプトの黒い窓が見えるだけ
goto :eofの前に一行pauseって入れてみれば。
ってかA:\の中身を確認してみなよ。
0648名無し~3.EXE
2007/01/14(日) 15:46:52ID:JTXqH0COで、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なのですが・・・
0649名無し~3.EXE
2007/01/14(日) 15:52:49ID:ML+aCZll0651名無し~3.EXE
2007/01/14(日) 16:01:04ID:bJYSSOCA0653名無し~3.EXE
2007/01/14(日) 16:12:38ID:JTXqH0COfor /? > for.txt
してメモ帳で見た。
%~nI - %I をファイル名だけに展開します。
これだけじゃよくわからんよ・・・・
0654名無し~3.EXE
2007/01/14(日) 16:13:20ID:KhCYvvtR0655名無し~3.EXE
2007/01/14(日) 16:15:47ID:ZJ4t0Fvk645のその後が気になるがふっとんじゃったんだろか
0657名無し~3.EXE
2007/01/14(日) 16:18:53ID:ML+aCZll0658名無し~3.EXE
2007/01/14(日) 16:30:47ID:JTXqH0COfor %%i in (D:\TEMP\*) do fsutil hardlink create D:\集める\%%~ni %%i
って事?
0659名無し~3.EXE
2007/01/14(日) 16:39:14ID:iKJbxj82にして実行してみりゃいいじゃん
0660645
2007/01/14(日) 18:16:25ID:DGqWZ2TH645です。
復活に手間取っておりました・・・ノートンノバカ...いや私ですね・・・OTL
アドバイス通りに試してみました。すると、「指定したファイルが
みつかりません」と表示されて、エンターキー連打で終了します。
Aドライブには何も入りません・・・・
いろいろ面倒かけちゃって済みません。 ペコリ
0661名無し~3.EXE
2007/01/14(日) 18:39:17ID:4ceN/aT3@echo off
for /f "usebackq" %%i in (`dir /o-n /b "C:\帳票\*帳票.xls"`) do (
copy /y "%%~fdpnxi" A:\帳票.xls
goto :eof
)
:eof
ならどうだろう?(未検証だが)
0662名無し~3.EXE
2007/01/14(日) 18:49:53ID:ZJ4t0Fvk原因究明めんどくさいので>>644.batをC:\帳票に放り込んでおいて
もう一つ任意のフォルダにバッチファイル作ってcall ">>644.bat" で。
0663645です
2007/01/14(日) 19:19:05ID:DGqWZ2THうぉお〜動いたーと思ったのですが、動いたんです確かに。
しかしながら、C:\帳票に入ってる帳票のファイルの数だけ
Aドライブの帳票.xlsを上書きしようとします。一番新しいヤツだけ
コピーできたら完璧なんですが・・・・わがまま言って申し訳ないです。
0664名無し~3.EXE
2007/01/14(日) 19:25:59ID:DGqWZ2TH見逃していました!! うまく動きました〜!!
完璧です。。うれしいです。。
またなにかお世話になるかも・・・・って少しは勉強します
本当にありがとうございました。。。
0665名無し~3.EXE
2007/01/14(日) 19:39:53ID:ZJ4t0Fvkおめでと。
>>644でも"%%~fi"じゃなくて"C:\帳票\%%i"だとうまく行くから何か悪さしてるかね。
0666名無し~3.EXE
2007/01/14(日) 20:37:06ID:JTXqH0COD:\a以下のファイル及びフォルダをD:\b以下に全コピー、しかしハードリンクでやるので容量は
全く食わない。そういうことをやりたいんですが、、、結局どうしたら?
for %i in (D:\a\*) do fsutil hardlink create d:\b\%~nxI %i
って事なの?モニュ・・・
0667名無し~3.EXE
2007/01/14(日) 20:37:28ID:ML+aCZlldir /o-n /b /s C:\帳票\*帳票.xls
にすればフルパスになるけど・・・
0668名無し~3.EXE
2007/01/14(日) 21:02:41ID:JTXqH0COこれだと1つの階層内のファイルに対してしか出来ないね。
再帰的にその下のフォルダにもかけていきたいんだけど、どうすりゃいいの?モニュ・・・
0669名無し~3.EXE
2007/01/14(日) 21:07:37ID:ML+aCZllこんなんでどう?
もっと簡単にできるかな?
@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"
)
0670名無し~3.EXE
2007/01/14(日) 21:15:09ID:JTXqH0COい、、、意味がわからんぜよ・・・。
そのスクリプト何してるか全然分からない・・・解説キボンヌ・・・
0671名無し~3.EXE
2007/01/14(日) 21:15:23ID:ML+aCZllのほうが素直だね。
0672名無し~3.EXE
2007/01/14(日) 21:24:43ID:ML+aCZll: 拡張機能と環境変数の遅延展開を有効に
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"
)
0673名無し~3.EXE
2007/01/14(日) 21:35:27ID:ZJ4t0Fvkぐは、パスの深いそうで試してて気付かなかった自分アホス…ごめんよID:DGqWZ2TH
>>670
確かXP標準のハードリンク作成機能じゃフォルダには適用できなかったような
こんなのはあるけれど
ttp://www.vector.co.jp/soft/winnt/util/se184746.html
0675名無し~3.EXE
2007/01/14(日) 21:40:46ID:JTXqH0COご丁寧にありがとうございます。
Linuxのシェルスクリプトとはだいぶ勝手が違って戸惑っています。
: でコメントにもなるんですね、コピペしても動作します。
変数の中身を参照するにはLinuxだと${SRC}ですが、batファイルだと
"%SRC%"なんですね。
とりあえずこれで、自分が同期したいフォルダに
set SRC=D:\a
set DEST=D:\b
の二行を書き換える事でやりたい事が実現できます。本当にありがとうございます。
しかしソース自体に手を加えるのは正直ちょっと怖かったりもします。
日本語のフォルダ名とか大丈夫かなぁ・・・
なので、もし可能ならで構いませんので、
hardlink.bat SRC DEST
というように引数を2つ与えて目的のフォルダを同期できないでしょうか?
それならソースをいじって書き直す必要がなくなるんですが・・・難しいかな?
DOSのbatがどれほどの事が出来るのか知りませんが、LinuxのCUIよりはるかに
低機能だと聞いたもので・・・
0677名無し~3.EXE
2007/01/14(日) 21:43:18ID:JTXqH0COそのソフトはハードリンクについて調べているときに既に見つけてますが
私がやりたい事は、この作成して頂いたbatファイルをWindowsXP標準の
タスクスケジューラにかけて、3時間に1回実行とか、1日に1回実行とか
そういう風にやりたいんです。これで定期的にバックアップが取れるので。
>>674
その通りです。
0678名無し~3.EXE
2007/01/14(日) 21:45:40ID:ML+aCZllif "%~2"=="" goto :eof
set SRC=%~1
set DEST=%~2
日本語までは知らん。
それとbatからbat呼ぶ時はcallしろよ
0679名無し~3.EXE
2007/01/14(日) 21:50:33ID:ML+aCZllコメント書くのは反則技だからちゃんと rem 使った方がいいぞ。
つか、バックアップの意味あるのか?
0680名無し~3.EXE
2007/01/14(日) 21:52:17ID:bJYSSOCAってやっちゃいたいところだ
0681名無し~3.EXE
2007/01/14(日) 21:55:04ID:/esMqGsV> コメント書くのは反則技だからちゃんと rem 使った方がいいぞ。
えー結構使ってるのに
「 : 」の後に空白入れておけば間違ってジャンプする危険もないし
> つか、バックアップの意味あるのか?
ハードリンクは同じドライブにしか作れないし実体が壊れたら
「バックアップ」も壊れるしどう考えても意味ありません
0682名無し~3.EXE
2007/01/14(日) 21:56:30ID:JTXqH0COその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使えってこういうことですかね。
0683名無し~3.EXE
2007/01/14(日) 22:00:29ID:JTXqH0CO.batファイルだとこれだけ苦労していますが、確かにLinuxなら
$ cp -Rl /a /b /* -dは要るかな? */
で一発で出来ますね。それをcronで回すだけw。
ヤバイ!本当にLinuxのCUIって素晴らしいんだと今実感した瞬間wwww
DOSのCUIしょぼすwwwww
参考:-dオプションの解説
-d, --no-dereference
シンボリックリンクをコピーする場合、シンボリック リ
ン クが指しているファイルをコピーするのではなく、シ
ンボリックリンクとしてコピーする。また、コピー元 で
の ハードリンクはコピー先でもハードリンクとして保持
される。
0684名無し~3.EXE
2007/01/14(日) 22:06:33ID:ML+aCZllset 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"
0685名無し~3.EXE
2007/01/14(日) 22:42:24ID:ML+aCZllttp://www.ossh.com/gnu-win32/cp.exe
0686名無し~3.EXE
2007/01/14(日) 22:44:08ID:/esMqGsVもはやスレ違いだけど
0687名無し~3.EXE
2007/01/15(月) 12:50:47ID:JZ8tDTCV0689名無し~3.EXE
2007/01/15(月) 21:09:11ID:O2bsbprpもっとも>>1をよく見直したら
> wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
> コマンドラインインタフェースに関するネタならなんでもOK。
スレ違いでもなかったのか
0690名無し~3.EXE
2007/01/15(月) 21:56:18ID:LA72L3Es市販バックアップソフトでも買ってSamba領域へ放り込む
けどな。手段と目的が錯綜してるべ。
0691名無し~3.EXE
2007/01/21(日) 16:36:33ID:Fh16rOUXWinXPのDOS窓で壁紙の変更したいので
regedit /E \\HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper D:\abc.bmp
としたのですが、変化ありません
やりかた教えてください
0692名無し~3.EXE
2007/01/21(日) 17:21:49ID:amfxJQxk普通はAPIで壁紙を変更する
0693名無し~3.EXE
2007/01/21(日) 17:27:34ID:HIyMH95Uレジストリを変更するだけなら、これで変更できるよ。ただ、画面には反映されない。
画面のプロパティ>デスクトップ には反映される。
REG ADD "HKCU\Control Panel\Desktop" /f /v ConvertedWallpaper /t REG_SZ /d "C:\砂浜.JPG"
0694名無し~3.EXE
2007/01/21(日) 18:30:16ID:eMwqitJ2RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
0695名無し~3.EXE
2007/01/21(日) 18:40:15ID:HIyMH95Uここを見て、そのコマンドを使ってみたけど、
ttp://www.jsifaq.com/SF/Tips/Tip.aspx?id=10732
うちの環境では変更できなかったよ。そちらはどう?
0697名無し~3.EXE
2007/01/21(日) 18:58:20ID:0GAiR7Wmふとプロンプトでnetstat -anbv打ったら、daemon(ver3.47)の仮想ドライブが「ディスクがありません」と怒られまくりました。
どうやらイメージをマウント→アンマウント後にプロンプトでcpu100%になるような負荷が大きい作業すると起こるみたいです・・・
PC再起動すれば直るんだけど一度でも何かをマウントすると再発します。
原因はなんでしょう?実害は無いし、スレ違い気味ですがよろしくお願いします。
0698名無し~3.EXE
2007/01/21(日) 22:26:54ID:fXHv4RQu0699名無し~3.EXE
2007/01/21(日) 23:58:04ID:0GAiR7Wmコマンドプロンプトの質問はどこですればいいですか?
0702名無し~3.EXE
2007/01/22(月) 03:01:10ID:lHhcp0GGnetstat.exeがエラーメッセージ吐きまくりキャンセル押しまくりだわw
0704名無し~3.EXE
2007/01/22(月) 22:57:33ID:8ACQJu4z0705名無し~3.EXE
2007/01/23(火) 13:38:10ID:peYBszvvFTPで指定したファイルを自動的に取りに行くバッチを拵えてるんだけど
getしに行く先のディレクトリが可変の通日で、その中から特定のファイルだけ取得っていう流れ
asc
cd /data/2007
cd 023 #例えば今日の通日だと023
lcd C:\download
prompt
mget afilelog023*
mget bfilelog023* #ファイル名の023の部分が通日、その後ろは色んな拡張子
毎回エディタで通日だけ置換してやってるんだけど
通日を変数に割り当てて置換箇所を1箇所だけに済ませる方法って無いんですかね?
0706名無し~3.EXE
2007/01/23(火) 14:04:36ID:dt3S76pMecho 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
0707名無し~3.EXE
2007/01/23(火) 14:33:35ID:peYBszvv即レスサンクス
処理テンプレ作って、%1のパラメータにコマンドラインから直接通日を投げてバッチを作成するバッチ
でいいのかしら。
0708名無し~3.EXE
2007/01/23(火) 14:40:34ID:+1q+g6Qoset d= %date%
echo 0%d:~-2,2%
これでいけると思うが、どうだろう。
0709名無し~3.EXE
2007/01/23(火) 15:33:04ID:peYBszvvサンクスコ
参考にする
通日は1月1日が001、12月31日が365 月の概念無くした1年の数え方みたいな感じ
0710名無し~3.EXE
2007/01/23(火) 22:01:24ID:+1q+g6Qoset d= %date%
set t= %time%
echo %d:~-10,4%年%d:~-5,2%月%d:~-2,2%日%t:~-11,2%時%t:~-8,2%分
0711名無し~3.EXE
2007/01/23(火) 23:12:48ID:ksHGSsOtsetlocal
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
0712名無し~3.EXE
2007/01/23(火) 23:13:24ID:ksHGSsOtset /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
0713名無し~3.EXE
2007/01/23(火) 23:17:23ID:ksHGSsOt39c39
< 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
0714名無し~3.EXE
2007/01/24(水) 03:47:22ID:eGutPL5IWScript.Echo DatePart("y",Date())
0715名無し~3.EXE
2007/01/24(水) 12:35:20ID:7wyp3Eju呼び出されたD:\XXX.bat内の先頭行で自身(DOS窓)を最小化させる
方法ありますか?
0717名無し~3.EXE
2007/01/24(水) 12:44:36ID:dHR/g94Y作ったんですけど どこにあるかみつかりません・・・・くだらない質問で本当に悪いのですが
【mkdir konpaira】とかいて作ったディレクトリーはいったいどこに制作されるのかわかりますか?
0720名無し~3.EXE
2007/01/24(水) 13:20:03ID:h1Q75nUeうぅ。。。わからない。。。
0721名無し~3.EXE
2007/01/24(水) 13:22:13ID:i0fQettm0723名無し~3.EXE
2007/01/24(水) 14:06:35ID:h1Q75nUeVBSではなくBATファイルなんです。。。
0724名無し~3.EXE
2007/01/24(水) 14:27:49ID:NuKUyzmi標準ではないので窓を最小化するスクリプトを作ってBATファイル内から呼んでいる。
BAT内という縛りがなければ、ショートカットやstartとかあるけど。
0725名無し~3.EXE
2007/01/24(水) 15:03:05ID:hm3trhnJSTART /WAIT /MIN "" CMD /C D:\XXX.BAT
あるいは、CMDOW.EXEを使うとか
0726名無し~3.EXE
2007/01/24(水) 15:13:11ID:eGutPL5Istart /min %~fs0 %*
0727名無し~3.EXE
2007/01/24(水) 17:02:01ID:phendHsNcd
と打ち込む
0728名無し~3.EXE
2007/01/24(水) 17:05:13ID:Ur+QuDS3こんな感じ?
setlocal
if "%リカージョン対策の工夫%"=="" (
set リカージョン対策の工夫=1
start /min %~fs0 %*
exit /b
)
REM 実際のバッチの中身
exit
0729名無し~3.EXE
2007/01/24(水) 17:05:40ID:imNZyNvBベタベタの初期状態なら多分 C:\Documents and Settings\Owner の下だろ。
つーか「konpaira」にはちょっと萎えたぞw
0730名無し~3.EXE
2007/01/24(水) 19:40:02ID:ui4jdsDL毎回OSを入れなおす度にファイルの関連付けを変えたり、設定を変えたりするのが非常に煩わしいです。
そこでどなたかファイルの関連付けを一括して変えるBATファイルの組み方をご存知でしたら教えてください。
ソフトウェアでも可ですが、一括して複数の形式を変えられることを前提としてお願いします。
0732名無し~3.EXE
2007/01/24(水) 19:56:10ID:ui4jdsDL0734名無し~3.EXE
2007/01/24(水) 20:16:40ID:1ye7da8u0735名無し~3.EXE
2007/01/24(水) 20:16:59ID:bBeGunZIHKEY_CLASSES_ROOTだけエクスポートしたらいいじゃん。
で、再インスコ後に.regをダブルクリックすりゃOK。
それが嫌ならASSOCコマンドを駆使してくれろ。
0736名無し~3.EXE
2007/01/24(水) 20:20:03ID:ui4jdsDLお邪魔してすいませんでした
0737名無し~3.EXE
2007/01/24(水) 22:35:13ID:Z29D46sA「OSインスコして一通りのソフト入れて設定終わった段階のクリーンな状態をイメージバックアップしておく」
なんて考えたときに、いったいどの時点まで戻るのが余計な設定がなく、且つ再度度設定する手間が省けるのか迷ったりして。
0738名無し~3.EXE
2007/01/28(日) 22:03:33ID:GnfJyVWzコントロールパネルのタスクから毎日10時にD:\backup.batファイルを実行するように
スケジューリングしています。
そのファイルの内容はこちら
copy /Y D:\image\scheduler.tib \\vine\data\backup\
の1行のみです。D:\image\の中に入っているファイルをVineサーバにバックアップ
しているのですが、このファイルを単純にタスクに登録していると、10時になると
いきなり黒い画面が立ち上がってきてコマンドが実行されたら終了するのですが
その黒い画面が立ち上がるのがビックリします。もしフルスクリーンで作業してたら
おそらくフォーカス奪われてフルスクリーンが解除されるとかバグるとか
そういう不具合がありそうなので、最小化状態で実行させる、もしくは見えない状態で
バックグラウンドで実行させる方法は無いでしょうか?
ちなみにbackup.batファイルへのショートカットを作成して、そのショートカットの中から
最小化して起動するように設定してタスクにショートカットファイルを指定しても
ダメでした。良い手はありませんか?
0739名無し~3.EXE
2007/01/28(日) 22:33:19ID:Vg16WaYGフォルダの中にフォルダがあったりする状況です。
よろしければ教えてください。
0740名無し~3.EXE
2007/01/28(日) 22:39:34ID:Vg16WaYG0742名無し~3.EXE
2007/01/28(日) 23:10:30ID:rah4ivDa0743名無し~3.EXE
2007/01/28(日) 23:41:21ID:bulVaiB4RunDLL32.EXE Shell32.DLL,ShellExec_RunDLL C:\backup.bat.lnk
0744名無し~3.EXE
2007/01/28(日) 23:45:36ID:bulVaiB4rundll32.exe url.dll,FileProtocolHandler C:\backup.bat.lnk
0745名無し~3.EXE
2007/01/29(月) 01:24:47ID:0gczOvYIレスありがとうございます。
そりゃよくわからないですね・・・。
とりあえず自分で解決できました。
start /min cmd /c copy /Y D:\image\scheduler.tib \\vine\data\backup\
っていう1行書いたバッチファイルを使えば成功しました。
こちらの方が簡単そうでしょ?
0746名無し~3.EXE
2007/01/29(月) 02:22:52ID:CHg28K83wshでかけばいいと思うよ。
0747名無し~3.EXE
2007/01/29(月) 02:23:24ID:CHg28K830748名無し~3.EXE
2007/01/29(月) 02:41:28ID:CHg28K83バッチファイルで言う、
set HOME=./
みたいなことを指定のですが
0749名無し~3.EXE
2007/01/29(月) 02:51:44ID:CHg28K83WshEnv = WshShell.Environment("USER");
WshEnv("HOME") = "c:\home";
これでは、全部の環境が変わってしまいます・・・
0750名無し~3.EXE
2007/01/29(月) 02:56:08ID:CHg28K83WshEnv = WshShell.Environment("PROCESS");
にすればいいのか・・・
0751名無し~3.EXE
2007/01/30(火) 01:41:44ID:skiU3c8Vコマンドプロンプトの
C:\WINDOWS>
のWINDOWSのところを消して、
C:\>
にしたいのですが、どうしたらいいのでしょうか?
Me使ってます。お願いします。
0752名無し~3.EXE
2007/01/30(火) 01:44:58ID:xu1S81WI0753名無し~3.EXE
2007/01/30(火) 01:56:27ID:skiU3c8V0754名無し~3.EXE
2007/01/30(火) 02:07:46ID:xu1S81WIあと、OSにもよると思うんだけど、
エクスプローラから、c:¥のアイコンをマウスでcmdの窓に引っ張ってっても
変わるはず。まあ、これじゃ、せっかくコマンド打つ意味はなさそうだけどね
慣れるまでは、それもありかな
あと詳しい使い方は、DOS コマンド あたりでグーグル先生に聞くか、
このスレの他の識者に聞いてくだされ。
ノシ
0756名無し~3.EXE
2007/01/30(火) 16:52:25ID:6T1j6bWfだったら、set prompt=C:\$g
…んなワケねーかw
0757名無し~3.EXE
2007/01/30(火) 17:41:16ID:EXkNQsWs0758名無し~3.EXE
2007/01/30(火) 20:42:39ID:RppqVEDsちょっとワロタ。
0759名無し~3.EXE
2007/02/02(金) 18:13:43ID:7lW2zV4+0760名無し~3.EXE
2007/02/03(土) 21:49:56ID:Y8FtUM7g"C:\Program Files\ABC.exe"
exit
これでアプリは起動するのですが、コマンドプロンプトも開いたままになります
アプリが起動したらコマンドプロンプトは自動で閉じることは出来ないのでしょうか?
0761名無し~3.EXE
2007/02/03(土) 22:11:10ID:jjvZQHSi@echo off
(
echo "C:\Program Files\ABC.exe"
echo exit
)|cmd.exe
exit
とか?
0763名無し~3.EXE
2007/02/04(日) 04:52:24ID:Gpw040Ym例えばユーザ名を使うなら
%username% でユーザ名が取り出せますがホスト名を使うならどうしたらいいんですか?
hostname コマンドでホスト名が出力されるのは知っているのですが、それを変数として
使うにはどうしたらいいんでしょうか?
echo %hostname%
%hostname%
となって取得できません。
それから、setコマンドで set HOME=%userprofile% とか出来ますが、これは
そのbatファイルを終了した時点で消えますよね。
それを、batファイルを終了した後であろうがシステムを再起動した後であろうが
常にずっと有効にしておく(システムのプロパティの環境変数のところに書いたのと同じ)
状態にするにはどういうコマンドを打てばよいのでしょうか?
よろしくお願いします。
0764名無し~3.EXE
2007/02/04(日) 05:50:52ID:UCUQL6Csfor /f "usebackq" %h in (`hostname`) do @set hostname=%h
0765名無し~3.EXE
2007/02/04(日) 13:00:50ID:Gpw040Ymおお、凄い凄い!ありがとうございます。
でもこれ再起動とかコマンドプロンプト閉じたりすると切れちゃいますね。
その都度実行って奴ですか。
ええっと、do @set とあるように、setの前に@をつけるとどういう意味があるのでしょうか?
0766名無し~3.EXE
2007/02/04(日) 13:22:17ID:NBbEuIkl%COMPUTERNAME% じゃだめなん?
>常にずっと有効にしておく(システムのプロパティの環境変数のところに書いたのと同じ)
>状態にするにはどういうコマンドを打てばよいのでしょうか?
>>176
>setの前に@をつけるとどういう意味があるのでしょうか?
エコーを無効にする(for文実行時に一々「set 〜」と表示させない)
0767名無し~3.EXE
2007/02/04(日) 14:37:43ID:Gpw040Ymちょおおおおおおーサンクス!ありがとうございます!
%computername% ってあったのかああ! こういう環境変数の一覧みたいなのって
どういうところに載っています?コレが知りたかったんですよ!
setx.exeを拾ってこないといけないんですねぇ・・ふむぅ。。
@set の意味も分かりました。本当にどうもありがとうございます。
0768名無し~3.EXE
2007/02/04(日) 15:13:43ID:upfVRns60770名無し~3.EXE
2007/02/04(日) 16:43:04ID:aXVvEPc1フォルダ内にある.exeファイル全てに/q引数を付けて実行するバッチを教えてください。
具体的にはWindowsのHotfixをCDに貯めて、OS再インストール後にバッチからHotfixを自動でインストールさせたいのですが
/q引数をつけないでインストールすると、次々と確認メッセージが出てきて大変なので。
あと、新しいHotfixが出るたびにCDに追加していくのでフォルダ内のファイル数は不定です。
0772名無し~3.EXE
2007/02/04(日) 17:40:47ID:upfVRns61 読まない
2 調べない
3 試さない
4 理解力が足りない
5 人を利用することしか頭にない
0773名無し~3.EXE
2007/02/04(日) 21:42:06ID:XVlaP+ck0774名無し~3.EXE
2007/02/05(月) 08:59:35ID:5uo+Y0/oset hoge=D:\hoge
for /f "usebackq" %%A in (`dir/b/s "%hoge%\*.exe"`) do "%%A" /q
SP+メーカーでHotfix専用インストールCD作る手もあり。
0775名無し~3.EXE
2007/02/07(水) 18:22:35ID:HkmhaXR6CD又はDVDに入れた「setup.bat」を起動すると同CD内のZIPファイルが
デスクトップにコピーされ、尚且つ自動解凍する方法があったら教えて下さい。
お願いしますm(_ _ )m
0776名無し~3.EXE
2007/02/07(水) 18:41:51ID:GrlV5MMw0777名無し~3.EXE
2007/02/07(水) 18:48:33ID:LtTsJ5NXcopy /Y *.zip
c:
cd %userprofile%\デスクトップ
md files
expand *.zip files
echo finished!! & pause
こんなのでいけるのかしら?動作確認1回もやってないからわからない。
ちなみに当方シロウトです。
0778名無し~3.EXE
2007/02/07(水) 18:49:40ID:LtTsJ5NXcopy /Y *.zip %userprofile%\デスクトップ\
c:
cd %userprofile%\デスクトップ
md files
expand *.zip files
echo finished!! & pause
に修正
0779名無し~3.EXE
2007/02/07(水) 18:51:49ID:LtTsJ5NXexpandじゃ.zipを解凍出来てない気がする・・
どうすりゃいいんだろ。
0780名無し~3.EXE
2007/02/07(水) 18:56:41ID:XAyl8R3DあとVistaだとデスクトップは %userprofile%\Desktop\ になる
0781名無し~3.EXE
2007/02/07(水) 19:08:15ID:LtTsJ5NXunzip.exeって何に含まれているの?私の環境だとそんなコマンドはないと言われるから
ネットから落としてくるフリーソフト?
それから、Vistaの事は全く知らないw 使えるのかなぁVista・・・
0782775
2007/02/08(木) 21:20:11ID:mVdDQt9f亀レスですが、とても参考になりました。
後は自分でがんばってみます。
0783名無し~3.EXE
2007/02/09(金) 00:50:15ID:Sp5PB1omWSHならこんな感じで、
デスクトップに展開.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
0784名無し~3.EXE
2007/02/10(土) 20:30:48ID:3Ev8EayXちなみにクライアントとWebサーバ間はTelnetの通らないFW挟んでます
0787名無し~3.EXE
2007/02/11(日) 21:45:48ID:M4xM6Mxyforeach i ( 1 2 3 .... 15)
cp input.{$i} output.{$i}
end
コマンドを一括して実行するには、
csh ではforeach を使えば簡単ですが、
dos上のbat ファイルでこのようなスクリプトを作りたいのですが、
何か方法はありますか?
0788名無し~3.EXE
2007/02/11(日) 21:53:01ID:IDO4ruyo0789名無し~3.EXE
2007/02/11(日) 21:55:35ID:VkfuRwSLfor /L %%i in (1,1,15) do (
copy input.%%i output.%%i
)
0790787
2007/02/11(日) 22:00:43ID:M4xM6Mxyありがとうございます。
早速やってみます。
0791名無し~3.EXE
2007/02/18(日) 14:36:27ID:p11D76E780GBのHDDにCHKDSKを実行してみたところ、
80405293 KB : 全ディスク領域 と表示されます。
WindowsXP上でドライブを右クリックしてプロパティを見てみると、
80,858,566,656バイトと表示されています。
CHKDSKコマンドでは、KB表示なのでバイト表示にする為に、
1024を掛けて見ましたが、
80405293×1024=82,335,020,032となり、
Windows上の表示と一致しません。
もしかして、Win上では1000を掛けるのかと思いましたが、
80405293×1000=80,405,293,000となり、
こちらでも一致しません。
どう計算すると、CHKDSKコマンドの結果が、Win上と一致するように
なるのでしょうか。よろしくお願いします。
0792名無し~3.EXE
2007/02/18(日) 15:09:42ID:XGXlaIu80794名無し~3.EXE
2007/02/18(日) 21:02:12ID:k0xWSI9Gや
net stop service_name
を実行するとWindowsのサービスを起動したり停止したり出来ますよね。
net pause service_name
で一時停止も可能です。
しかしサービスのスタートアップの種類が「無効」になっているものについては一切
制御が出来ません。
スタート>ファイル名を指定して実行>services.msc
でサービス画面(GUI)が開けますが、そこからならこの「無効」の状態を「自動」もしくは「手動」
に変更できますが、これをコマンドプロンプトから変更する方法はありませんか?
そういうコマンドがないかと調べてみたのですが、見つけられません。
もしかしてこの操作はコマンドでは不可能で、GUIで実行するしかないのでしょうか?
0795名無し~3.EXE
2007/02/18(日) 21:05:22ID:tt13nMj40797名無し~3.EXE
2007/02/18(日) 23:38:09ID:tt13nMj40798名無し~3.EXE
2007/02/19(月) 00:05:42ID:k0xWSI9Gしたら「スタートアップの種類」を「自動」に設定する事が出来ました。
どうもありがとうございました。
0799名無し~3.EXE
2007/02/21(水) 11:10:08ID:tcKwzygLttp://0server.ddo.jp/~dougakun/upload2/src/up1219.zip
0800名無し~3.EXE
2007/02/21(水) 11:29:50ID:ux1ZZgWt0801名無し~3.EXE
2007/02/21(水) 11:32:52ID:Igq/YDl30802名無し~3.EXE
2007/02/21(水) 12:23:32ID:tcKwzygLO← これ零だと勘違いしてた模様。オーで通った
0804名無し~3.EXE
2007/02/21(水) 22:32:32ID:dSTd36jK0806名無し~3.EXE
2007/02/25(日) 07:11:24ID:M8SUDOy/0807名無し~3.EXE
2007/02/25(日) 07:19:34ID:XbqoSwX30808名無し~3.EXE
2007/02/25(日) 10:47:06ID:M8SUDOy/0809名無し~3.EXE
2007/02/25(日) 10:54:30ID:lALGsEBcGOTOで飛ばしても、元に戻す方法がワカリマセン・・・オワタ\(^o^)/
0810名無し~3.EXE
2007/02/25(日) 11:03:22ID:jIpm/zzU2000/XPなら
call /?
9x/Meなら
call %0
でパラメータでもつけて振り分けろ。
0811名無し~3.EXE
2007/02/25(日) 21:34:08ID:FcYHarj1質問させてください。
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文でできそうな感じですが、ド素人なものでよくわかりません(>_<)
どなたか教えてください、お願いします!
0812811
2007/02/25(日) 21:35:46ID:FcYHarj10813名無し~3.EXE
2007/02/25(日) 21:57:08ID:+SGe6t45gawk "{for(i=1;i<=NF;i++)a[n++]=$i} END{for(i=0;i<4;i++)print a[i]}" test.txt > test2.txt
0814名無し~3.EXE
2007/02/26(月) 04:07:53ID:9JamE3oB0815名無し~3.EXE
2007/02/26(月) 04:09:53ID:9JamE3oB0816809
2007/02/26(月) 04:41:56ID:TZQkmwZQとんくす。無事に解決しますた。
参考:
メイン処理
メイン処理
CALL :LABEL
メイン処理
メイン処理
・・・
:LABEL
サブ処理
goto :eof
0817名無し~3.EXE
2007/02/26(月) 06:45:30ID:kBM+PAiPメイン処理の最後にも goto :EOF
0818名無し~3.EXE
2007/02/26(月) 17:29:47ID:TZQkmwZQ新旧2ファイル A.TXT B.TXT があるとします。
FC で比較すると、カブった部分だけは抽出できますが、
増えた分だけ抽出する、うまいやりかた、ないでしょうか。
0821名無し~3.EXE
2007/02/26(月) 19:07:16ID:9JamE3oB---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個以上データがある場合を考えてたんだけど、できる?
0822名無し~3.EXE
2007/02/26(月) 19:09:14ID:9JamE3oBこれを試したら10個以上は駄目だったので>>815
shift自体は知ってるんだけどね、言葉足らずごめん
0824名無し~3.EXE
2007/02/26(月) 19:23:51ID:9JamE3oB∧||∧
( ⌒ ヽ
∪ ノ
∪∪
0825名無し~3.EXE
2007/02/26(月) 23:16:24ID:RAmgQBxUabc( ) cde(f g h i)
っていう行を、スペース分だけ縮めて
abc()cde(fghi)
っていう風にってできますか?
教えてエロイ人。
0826名無し~3.EXE
2007/02/26(月) 23:19:26ID:W0f2oIjoshift使うなら
set x=%1
if defined x ...
0828名無し~3.EXE
2007/02/27(火) 00:14:03ID:ssftNQ/p0830名無し~3.EXE
2007/03/04(日) 13:20:01ID:iL3fJNBF0831名無し~3.EXE
2007/03/04(日) 13:56:45ID:dStcZEp+このmoreを使う方法で、+nの開始行だけじゃなく、
終端行も指定できるコマンドはありますか?
0832名無し~3.EXE
2007/03/04(日) 17:26:14ID:Qie4CUoZバッチファイルでこんなのとか…
@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
どうみても空白行カウントしてません。本当にありがとうございました。
0833名無し~3.EXE
2007/03/04(日) 17:50:15ID:Jl1jH6odrem 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
0835名無し~3.EXE
2007/03/05(月) 19:32:27ID:LVHf9Ynh0836名無し~3.EXE
2007/03/05(月) 21:33:53ID:MOjVAAUk0837名無し~3.EXE
2007/03/06(火) 21:10:05ID:xCM/ihCxrem 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
0838831
2007/03/08(木) 20:41:30ID:ya3PyY8a>>833
>>837
遅くなりましたが、おかげさまで無事に任務完了しました。
お三方ともそれぞれ工夫が入っていて大変勉強になりました。
ありがとーございますっ!
0840名無し~3.EXE
2007/03/09(金) 06:39:26ID:2rOa6XJ7まーまー、遅レスでも質問投げてハイ終わりより全然マシだし
0841名無し~3.EXE
2007/03/09(金) 07:00:29ID:DG7HO96U0842名無し~3.EXE
2007/03/09(金) 21:15:54ID:0y7g4CVL30秒後に実効させたいのですが(起動直後だと色々なソフトが立ち上がったりしている段階
だから、かなり処理が重くて、実行タイミングをずらしたい)
.batファイルの一番上に sleep 30秒 みたいな1行を入れれば解決すると思っていますが
(それをスタートアップに突っ込む)
sleepコマンドは存在しません。代わりになるコマンドはありませんか?
OSはWindows2000 Professional SP4です。
宜しくお願いします。
0843名無し~3.EXE
2007/03/09(金) 21:24:53ID:tEFMuHkw0845名無し~3.EXE
2007/03/09(金) 21:39:04ID:0y7g4CVL>>843
このアイディアは面白いですね。でもこれだと正確に30秒数えてるわけじゃないですよね?
pingの感覚は1秒に1回実行しているのですかあれは?
もしそうなら30秒数えてる事になりますけど・・。
それから、 nul なんですね、Windowsの場合は。
Linuxだと /dev/null だから nullの間違いじゃないかと実行してみたら
nullってファイルが出来上がってしまいました。
0848名無し~3.EXE
2007/03/10(土) 21:35:30ID:kX5CKF14俺もnulをとnullを書くことがある。
DOSの頃から使ってるのにいまだになんだよな。
DOSデバイス名は3文字だって思ってりゃ大丈夫なはずなんだがねぇ。
0850名無し~3.EXE
2007/03/11(日) 13:24:44ID:bIr2biXVcab形式で、複数のサブフォルダやファイルを含んだ親フォルダを圧縮後、
expandコマンドで新しいフォルダに解凍すると、サブフォルダが無くなり、
全てのファイルが解凍先のフォルダ内に展開されてしまいます。
解凍後も、解凍前と同じフォルダ構成で展開させるにはどうすれはいいのでしょうか?
どなたかお分かりになる方がいらっしゃいましたら、教えて下さい。
0851名無し~3.EXE
2007/03/11(日) 13:38:54ID:wv7B4rxH0853名無し~3.EXE
2007/03/11(日) 14:24:55ID:dNmcphlD入ってなかったらWindowsインストールCD内のSupportToolsインストーラ
かMicrosoftから落とせばいい
0854名無し~3.EXE
2007/03/13(火) 14:10:50ID:OzuEmcRkC:\>date /?
とか
C:\>help date
とかやってマニュアルを見たりネットで調べたのですが、
Linuxで言うところの
# date -s '1days'
でシステム日付を1日進める事が出来ます。
このコマンドをfor文の中に埋め込んで、1日ずつずらしながら100回ぐらい特定のコマンドを
打ち続けたいのですが、人力でやると100回同じような作業をしないとならないので
ぜひbatファイルのfor文と日付を1日進めるコマンドで自動化したいのですが
DOSには1日進めるコマンドは無いのでしょうか?
もしあるならば教えてください。よろしくおねがいします。
0856名無し~3.EXE
2007/03/15(木) 01:24:25ID:rGCP6xCeコマンドプロンプトで以下を実行します。
c:\somewhere>explorer /e,.
制御が戻ってきます。( プロンプトが有効になる )
いつも "explorer /e,." を入力するのは面倒なので、
"explorer /e,." だけを書いた exp.bat を、パスの通った場所に、
置いておきます。
c:\somewhere>exp
実行しても制御が戻ってきません。
Windows9X 系だと、制御が戻ってきます。
どうしたらいいのでしょうか?
cmd /c や & など試したのですが、思った通りになりません。
0857名無し~3.EXE
2007/03/15(木) 01:28:57ID:gd0AF5kn0858名無し~3.EXE
2007/03/15(木) 01:32:47ID:mA1C3Gzd0860名無し~3.EXE
2007/03/15(木) 13:22:09ID:3xRw8xOw0862名無し~3.EXE
2007/03/15(木) 14:14:55ID:Lj7DI4SG定期的(1分ぐらい)で確認し、落ちていたら再度自動起動する
バッチはどのように書けばいいのでしょうか?悩んでいます。
ご教授いただければ幸いです。
0863名無し~3.EXE
2007/03/15(木) 15:15:21ID:3sqNewWT0866名無し~3.EXE
2007/03/15(木) 21:47:41ID:3sqNewWT大事な個人情報データの入った全てのフォルダが見つからなくなってしまいました。
やばいのでちゃんと教えてください。
ていうかその前にどうやったらみえるようになるのか教えろ。
0867名無し~3.EXE
2007/03/15(木) 22:02:15ID:B8dEOk5mバカかお前?コマンドの意味ぐらい調べて実行しろよ。
お前のDドライブはクイックフォーマットされてしまったんだよ。
データ復旧がんばれ。最悪復旧できないぜ。
0868名無し~3.EXE
2007/03/15(木) 23:32:54ID:WQboaxAIないですか?
ウィルス検索用のサービスのプロセスが「通常」で動いてて、全件検索のスケジュール検索が
始まったりすると非常に操作が遅くなってウザいので、いまは手動でタスクマネージャから
「低」に変えてるんだけど、これを自動化したいのですが。
つーか、遅くてもいいようなバックグラウンドの処理やるのに堂々と「通常」のプロセスで実行して、
フォアグラウンドのユーザーの操作性が悪くなるって、ソフト造ってる人にセンスがないというか
馬鹿ジャネーノと思うんだけどさ。>某有名ウィルス検索ソフト
0869名無し~3.EXE
2007/03/15(木) 23:33:17ID:V4qzqJbAl
゙} . . .__
. ; …・ナ“¨´′ . ., . . . .t_
. . ., ._ィ″ . 、/ 、’、
. ., . ./ 、ソ _、、_ ’、
. , ゙_、ゝヤ¨´`¨〜、 .、、。.┬・T¨` `_ ゙`、
. 、, . ._,“ .’_ . . . ./’ ゙’ . ...’、
、, . .′ . .’ /` l . ’
. .i ゙、 . . . ._。.------ . . . ./` . . . .j
i ン´ . . ./´ . . . .| ./` . . .ン′
! ゙_.″ ! , .ソ` . .ツ`
.’-=-‐?′ 、`、 . . ._、‐´ .` .・^
. . . .`^“¨¨´
. _ ゙゜・.
. } 、-、 ゙`・。_ . 、
{ . 、`‐、 ` 、ツ`
. . .; 、´ . ツ` ..__、、、、_、、.
、´ . 、_ . ン‐・¨ ̄ 、、¨ ̄`
. .--------─‐‥・T“¨¨` . / .i
. . . ., . .,` .}
v .I 、’・、 . i
.、・ . ..., . \_ . . .i
. _>~ . ., . `・i . l
..^ . 、’ ゙’
質問の仕方を勉強してから出直せ。
0870名無し~3.EXE
2007/03/16(金) 00:48:48ID:i6fct+GDftp転送をテキストから実行するのですが、
実行を○秒間待ち、失敗した場合はリトライしようと考えています。
○秒間待つ、というコマンドは調べた限り、ping localhost〜というので
できそうなのですが、他に方法はありますでしょうか?
また、リトライするにあたりCPUをあまり食わない方法を
とりたいと考えています。
FOR〜で回すのと、実行回数を変数にセットしてIF GOTOで回すのは、
どちらがCPU負荷が低いのでしょうか?
ご教示ください。
0871名無し~3.EXE
2007/03/16(金) 00:56:28ID:eakn+5F7ループ回数多ければコマンド数が少ないほうが軽いと思う。
0872名無し~3.EXE
2007/03/16(金) 00:58:54ID:i6fct+GDftp転送をテキストから実行するのですが、
実行を○秒間待ち、失敗した場合はリトライしようと考えています。
○秒間待つ、というコマンドは調べた限り、ping localhost〜というので
できそうなのですが、他に方法はありますでしょうか?
また、リトライするにあたりCPUをあまり食わない方法を
とりたいと考えています。
FOR〜で回すのと、実行回数を変数にセットしてIF GOTOで回すのは、
どちらがCPU負荷が低いのでしょうか?
ご教示ください。
0873名無し~3.EXE
2007/03/16(金) 01:03:07ID:i6fct+GD>>871さん
ありがとうございます。
やろうとしていることは
ftp -s:実行コマンド.txt で、
ファイル転送が問題なく実行されればループを抜け
エラーでファイル転送ができなかった場合は、もう一度ftpを実行しようとしてます。
最終的に3回ほど実行してもエラーが発生した場合は、exitしようとしてます。
とりあえず両方実行してみます。
0874名無し~3.EXE
2007/03/16(金) 06:08:01ID:FvBgO7zq0875名無し~3.EXE
2007/03/16(金) 06:15:11ID:MR2N6HOP0876名無し~3.EXE
2007/03/16(金) 09:39:54ID:rNEmEled少し前のがCDRにバックアップしてあったので何とかなりそうです。
正直参りました。
0878名無し~3.EXE
2007/03/17(土) 08:12:20ID:jB6psE8Idirでファイルのサイズは表示できるのですが、
同じようにディレクトリのサイズを表示するにはどうしたらいいのでしょうか
0879名無し~3.EXE
2007/03/17(土) 10:58:08ID:15BYO+Ro常時CPUを独占するプロセスが動いてるような環境で、
ロクに動かなくてクレーム付ける奴がいたりもするからな。
そういう奴に限って声高な罠。
まぁ、理想的には自身で設定出来りゃいいんだけど。
0880名無し~3.EXE
2007/03/17(土) 13:30:32ID:zglMRs4vWSH使え.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);
0881名無し~3.EXE
2007/03/17(土) 15:47:21ID:2afvpT9P@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%
0882名無し~3.EXE
2007/03/17(土) 19:10:41ID:zglMRs4vstartで起動する、起動し直すか、
@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;
0883名無し~3.EXE
2007/03/17(土) 19:32:20ID:8kc20ls3OS側から優先度を下げられるといざって時に困るからな。
ウイルスがCPU使いまくってアンチウイルスが動かんとか話にならんから。
0884名無し~3.EXE
2007/03/19(月) 23:55:14ID:5aRr+Po8バッチを作りたいのですが、お知恵を拝借させてください。。。
0885名無し~3.EXE
2007/03/19(月) 23:56:51ID:b2BtHKZ80886名無し~3.EXE
2007/03/20(火) 00:09:13ID:xx1ZwL9Cosを書き換えるにはどうすればいいのですか?
0887名無し~3.EXE
2007/03/20(火) 00:22:24ID:QIKsOeLP0888名無し~3.EXE
2007/03/20(火) 01:58:07ID:MaGLsXFC0889名無し~3.EXE
2007/03/20(火) 02:18:06ID:cQmujOv+何にしろ、ファイアーウォールソフトのチェックを横取りしないといけないので
winsocksあたりをフックして、あとは自前でLANドライバを制御しないといけなくなるかも。
またルーター側で塞いでたら、上記作業はまったくの無駄でルーターに設定変更コマンドを投げないといけない。
環境依存しそうだね。
0891名無し~3.EXE
2007/03/25(日) 01:31:34ID:Z8Z2MSF1net 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:
って実行してみたのですが、エラーが帰ってきました。
どうすればいいんですかねぇ?
0892名無し~3.EXE
2007/03/25(日) 14:02:23ID:BdqnSJwQ0894名無し~3.EXE
2007/03/27(火) 16:38:07ID:qIrWV5Kb出力するには、どうしたらいいでしょうか?
現状の苦肉の策
C:\AAA.com > file.txt
type file.txt
しかしこれだと処理が終わった後にまとめて出てしまい、マズーです。
0896名無し~3.EXE
2007/03/27(火) 16:52:19ID:NEVfh2eP0897名無し~3.EXE
2007/03/27(火) 17:26:53ID:qIrWV5Kb>>896
ありがとうございます。これですね。
【 tee 】 標準入力を標準出力とファイルに出力する
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230898/
Universal Extractorから抜き出せました。のちほど挑戦してみます。
0898名無し~3.EXE
2007/03/27(火) 17:29:56ID:qIrWV5Kb書式
C:\AAA.com | tee file.txt
0899名無し~3.EXE
2007/03/27(火) 18:47:54ID:RZBVcDUitail -f file.txt
0901名無し~3.EXE
2007/03/28(水) 04:24:30ID:XzHvYeCK標準のコマンドだけでできるならそれなりに意味あるけど
0902名無し~3.EXE
2007/03/28(水) 18:36:43ID:ZArQcXNe0903名無し~3.EXE
2007/03/28(水) 19:56:48ID:OxDbgcBz>>902
ここでスーパーハカー登場しますた。実際やってみせてくれ。
0904名無し~3.EXE
2007/03/29(木) 13:56:33ID:bxA5c+sb0905名無し~3.EXE
2007/03/29(木) 14:04:41ID:bxA5c+sbrmdirは成功しても失敗捨てもERRORLEVEL変化しないの?
が質問です
0906名無し~3.EXE
2007/03/30(金) 13:27:08ID:iOVPJEok@echo off
rmdir %1 2>&1 | findstr ".*" >nul
if errorlevel 1 (echo normal) else echo error: hit!! - findstr errmsg
0907名無し~3.EXE
2007/03/30(金) 17:23:05ID:3XMxBJ5wif exist "%1" (略)
0908名無し~3.EXE
2007/03/31(土) 15:40:57ID:3FgO7uz/0909名無し~3.EXE
2007/04/01(日) 00:50:57ID:Qv7Xwq5Vhoge | 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
0910名無し~3.EXE
2007/04/01(日) 17:19:16ID:xf+sLP2x0912名無し~3.EXE
2007/04/01(日) 18:30:15ID:2pfzfTHj外部ツールを使おうと思ってるんだけど、何かおすすめってあります?
できるだけオプション等使用感が標準のに似てるのが良いなぁ。
0913名無し~3.EXE
2007/04/01(日) 20:19:24ID:cgxdeLo7XPマシンから C:\WINDOWS\system32\の中から(確かココ) tasklist.exe taskkill.exe
等を拾ってくる。
オレはshutdown.exeを拾ってきて使ったりしている
0914名無し~3.EXE
2007/04/01(日) 21:56:19ID:Qv7Xwq5Vkill.exe
tlist.exe
がないか?
0915名無し~3.EXE
2007/04/02(月) 03:15:44ID:jb/8hYOV0917名無し~3.EXE
2007/04/04(水) 22:07:52ID:LoXA/bZAPID=???
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 & ")")
0919名無し~3.EXE
2007/04/05(木) 00:16:09ID:HkVPJR16に変えて、.VBS
0920名無し~3.EXE
2007/04/05(木) 21:15:39ID:FfdksGnUファイル名とそれ以外の部分に分離して取得したいんだけど、何か良い方法ある?
とりあえずmayu作者のcliputilで、全文字列をクリップボードから環境変数1に入れることと
ファイル名を環境変数2に入れることはできたんだけど、ファイル名以外の部分がどうにもこうにも。
元の文字列は前述の通り、ローカルパスだったりURLだったりするので引数変数%~dp1使えってのはナシの方向で。
0921名無し~3.EXE
2007/04/05(木) 21:23:35ID:+MqJksX20922名無し~3.EXE
2007/04/05(木) 21:33:01ID:K5PwdFNs0923名無し~3.EXE
2007/04/05(木) 21:49:08ID:HkVPJR16!環境変数1:%環境変数2%=!
0924名無し~3.EXE
2007/04/05(木) 22:32:05ID:AFc5zb3Iバッチファイルを作ったのですが、どうもうまくいきません。
rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /f d:\work\xxxxx.inf /r "lpt1:" /m "HOGE HOGE3"
上記のようなコマンドを作って実行すると、「ドライバが認証されていないので〜 続行 or 中止」というような
メッセージが出るのでいちいちマウスで続行を押さないと進みません。
スイッチに、/Qw という、警告を出さないというスイッチがあるのですが、それを指定すると、
「操作が完了できませんでした」とでてプリンタが登録できません。
解決方法分かる方いませんか?
あと、できれば、プリンタのプロパティ ー> 全般 -> 印刷設定の中もバッチで設定で出来ると良いのですが。
0926名無し~3.EXE
2007/04/06(金) 01:25:16ID:HlcRwGtwできた!
遅延展開の使い方でちょっとつまずいたけど
分かると面白いね。
さんきゅーです。
0927名無し~3.EXE
2007/04/06(金) 01:32:24ID:qN1BBhr8/Ssと/Srはどうだろ
0929名無し~3.EXE
2007/04/06(金) 05:37:29ID:4zE+q0XGいちいちDOS窓が立ち上がってきてうっとうしいです。
これを隠してコマンドだけ実行させることは出来ませんか?(スケジューラで)。
完全に隠せなくてもせめて最小化した状態で出来ないでしょうか?
1行だけの.batファイルなら
start /min cmd /c mkdir hoge
とかでコレが実現できますが、複数行、if文とか組み合わせるとこの方法では出来ません。
0930名無し~3.EXE
2007/04/06(金) 15:43:50ID:aH1EHGYLbatファイルへのショートカットを登録するとかではダメなん?
0931名無し~3.EXE
2007/04/06(金) 21:29:10ID:wgXToTxg/Ssと/Sr使ってみたのですが、印刷設定の中(メーカーごとに違う画面のところ)は
うまくできませんでした。
>>928
取り敢えず、sendkeysで対処するようなバッチにしたんですが、すっきりしないんですよね・・・。
ちなみに、Vistaだとちゃんと/Qwスイッチが使えました。
0932名無し~3.EXE
2007/04/06(金) 22:30:32ID:qN1BBhr80933名無し~3.EXE
2007/04/06(金) 23:13:52ID:Ss9sI4Pl引数で渡したアプリなりバッチなりを窓非表示で実行する
小物ツールをAutoHotkeyで作っちゃったよ。
プログラミング素人だけど30分くらいで出来た。
0934名無し~3.EXE
2007/04/07(土) 00:12:33ID:L1UqqFPf起動時に瞬間コマンドプロンプトが開くから、
wscript.shellでrun bat,0するvbsをwscript.exe起動しようよ
0935名無し~3.EXE
2007/04/07(土) 16:14:28ID:s6CLN6PIユーザー名 USER1
フルネーム 田中一郎
・・・(以下省略)・・・
NET GROUP GROUP1 /DOMAIN
USER1 USER2 USER3 ・・・
NET GROUPコマンドで、下記のようにUSER名とフルネームを同時に
取得したいのですがなにか方法はありませんか?
USER1 田中一郎 USER2 山田花子 ・・・
0937名無し~3.EXE
2007/04/07(土) 19:24:04ID:1i2EGxl6set temp=%path:"=%
set temp="%temp:;=";"%"
みたいに整形して
for /f "delims=;" %%a in ('@echo %temp%') do dir %%a|find "hogehoge"
だとフルパス表示できないし、かといってdirに/s付けると余計なところまで検索かけて遅くなるし
0938名無し~3.EXE
2007/04/07(土) 20:16:57ID:2paJaP2O別の名前にした方がいいと思う
0939名無し~3.EXE
2007/04/07(土) 20:20:13ID:1i2EGxl60940名無し~3.EXE
2007/04/07(土) 20:40:22ID:bLcLd1L5set 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
)
0942名無し~3.EXE
2007/04/07(土) 22:57:59ID:bLcLd1L5指定ファイル名に空白が使われてる場合、バグがあった。
@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
)
0943名無し~3.EXE
2007/04/08(日) 01:53:41ID:AO1hL1UFttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36991&forum=8&start=8&12
0945名無し~3.EXE
2007/04/08(日) 11:01:47ID:tMewfiUhいえいえ、あなたにはこの程度の対処は出来るんだろうけど
見ている他の人のために訂正しただけですから。
なお、targetが、フォルダだったり相対パス(foo\bar*.txt)だったりする
場合の対処が必要なら、それは宿題です。
0946名無し~3.EXE
2007/04/09(月) 21:52:41ID:nvCrAfUshoge.js
@if(0==0)new ActiveXObject('WScript.Shell').Run('cmd /c cmd<"' + WScript.ScriptFullName + '"',0);@else
notepad aaaa
exit
:@end
単に起動するだけで非表示バッチ
0947名無し~3.EXE
2007/04/10(火) 00:31:43ID:0YFoMgUzXPで
・ユーザー選択画面 (「ユーザーの切り替え」 (Windowsキー+L) の状態)
・かつ複数のユーザーがWindowsにログオンしている状態
から、指定したユーザーだけタイマーでログオフさせたいんですが
“logoff” コマンド (batファイル) で指定できますか?
タイマー実行ソフトや時限シャットダウンソフトでやってみましたが、
どれもユーザー指定ができないので、一人だけ指定してログオフというのは効きませんでした。↓
| 複数ユーザーでログオン | 単独ユーザーでログオン
シャットダウン | ○ | ○
ログオフ | × | ○
複数ユーザーでログオンした状態から指定したユーザーだけタイマーでログオフさせる、
こんなことってできないんでしょうか
0948名無し~3.EXE
2007/04/10(火) 01:01:56ID:+1cm8zhrそのユーザーを指定しとけばいいだけでは?
0949名無し~3.EXE
2007/04/10(火) 02:16:16ID:0YFoMgUzお答えありがとうございます
文章解りづらくてすみません
Windows タスク ですよね、ちょっとやってみます
0950名無し~3.EXE
2007/04/12(木) 16:15:56ID:wBWPLIFmたとえばメッセージを表示したいときに
echo "処理中・・・"
と書いて実行すると、
D:\hoge>echo "処理中・・・"
"処理中・・・"
と2行表示されてしまいます。
また、pauseなどのほかの行もすべて表示されるため、大変見づらいです。
echo等で表示したいメッセージのみ表示されるようにしたいのですが、
何か方法はないものでしょうか?
よろしくお願いします。
0951名無し~3.EXE
2007/04/12(木) 16:17:49ID:i6I5b99a0953名無し~3.EXE
2007/04/12(木) 16:51:13ID:bbjCez2k0955名無し~3.EXE
2007/04/12(木) 18:59:02ID:R5N4StSu昔は、echo offしかなかったよね。(で、echo offと表示されてしまうという)
0956名無し~3.EXE
2007/04/12(木) 19:28:14ID:y9MOEqigEPSONのver. 4 はしらん。
0957名無し~3.EXE
2007/04/12(木) 20:09:16ID:wMb9FjeO向上心はないけどヲタク気質なのは自覚してる。
常識はないけどハマると深いとこまで行っちゃう。
0958955
2007/04/12(木) 22:12:58ID:R5N4StSu言われてみれば、たしかに、PC-98用で、Ver5.0あたりだったような気がする。
よく覚えてはいないんだけどね。
3.3Dは、どうだったか覚えてない。
0959名無し~3.EXE
2007/04/12(木) 22:24:09ID:yB6u+aIkそれと当初から他コマンドにも@って使えたっけ?
最初は@echoしか無かった気もする。
0960名無し~3.EXE
2007/04/12(木) 22:32:03ID:7lzh3tl3wmicから、出来そうな感じがするのですがよく分からず・・・。
0961名無し~3.EXE
2007/04/13(金) 01:08:36ID:A6FQ1BMtC:\>%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState
がスタンバイってわかったんですが時間を指定したいです
シャットダウンの%windir%\system32\shutdown.exe -s -f -t 10
みたいな感じで
0962名無し~3.EXE
2007/04/13(金) 01:51:34ID:NxxYhSlK10秒間wait
ping localhost -n 11
タスク登録
schtasksコマンド WindowsXP/2003
atコマンド Windows2000
ただしwindows2000では、フリーでダウンロードできるリソースキットのjt.exeコマンドを使えば
schtasksと同等にタスクの全ての機能を設定できる。
0963名無し~3.EXE
2007/04/13(金) 11:20:28ID:dJwG/TE7@は、どうだろう?
というか、他のコマンドにも@って使えるんだ?
echo以外つかったこともないや。
0967名無し~3.EXE
2007/04/13(金) 23:41:00ID:wdm4rCvYまた、回復コンソールは
1.WindowsXPが立ち上がらない時に実行する
2.WindowsXPのCDから起動して Rキーから起動する
事とした場合、作成した.batファイルの実行方法は
FDにコピーしてFDから実行する
以外の方法で何かありますでしょうか?
ネットワークは使えないしCDドライブも使えないし、USBメモリとか使えましたっけ?
0968名無し~3.EXE
2007/04/13(金) 23:57:35ID:utIlmCcHさらに回復コンソールでアクセスをイネーブルにするコマンドを発行しないと
確かFDにもアクセスできないよ。
BATはCMD.EXE(又はCOMMAND.COM)の機能だから回復コンソールじゃ動かないだろう。
0970名無し~3.EXE
2007/04/14(土) 09:53:09ID:1NEaWppo回復コンソールではbatchというコマンドでバッチを実行できる
CMD.EXEと同等の機能があるかどうかは知らない
0971名無し~3.EXE
2007/04/14(土) 11:10:02ID: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。
質問も歓迎だけど、自分で調べて勉強する努力も忘れずに。
0972名無し~3.EXE
2007/04/14(土) 11:14:31ID: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
0973名無し~3.EXE
2007/04/14(土) 11:34:42ID:mKXsUQir>>970
ITmedia エンタープライズ:Windows Tips「回復コンソールで利用できるコマンド」
ttp://www.itmedia.co.jp/help/tips/windows/w0539.html
回復コンソールでは、利用できるコマンドが限られている。
そうだから、CMD.exe同等の機能はないんじゃないかな(自信ない)。
0974名無し~3.EXE
2007/04/14(土) 13:15:29ID:6SAiqFC9ファイルAとファイルBを比較して条件分岐させたいです。
fc /b filea fileb
if errorlevel 1 (
hogehoge
) else (
piyopiyo
)
で実現できますが、バイナリ比較は時間がかかります。
もっと高速に比較して同一ファイルなのか異なるファイルなのか判断できませんか?
厳密にチェックする必要はなく、ファイルサイズで判断できれば十分です。
ファイルサイズで比較するコマンドを教えてもらえませんか?
0975名無し~3.EXE
2007/04/14(土) 13:29:26ID:HZdXwwGg比較は if で
0976名無し~3.EXE
2007/04/14(土) 15:26:10ID:6SAiqFC9%~zI - %I ファイルのサイズに展開します。
ですよねぇ。しかしどのように書いたらいいのかさっぱり分かりません。
callだともう1個batファイルが必要そうなので、forで行くと思いますが
ifとfor組み合わせてどのように書けばいいのですか?
0977名無し~3.EXE
2007/04/14(土) 15:46:16ID:YRhG6sRI0978名無し~3.EXE
2007/04/14(土) 15:49:13ID:HZdXwwGgcall :sub FILEA FILEB
goto :eof
:sub
if %~z1==%~z2 echo おなじ
0979名無し~3.EXE
2007/04/14(土) 16:08:34ID:YRhG6sRI0980名無し~3.EXE
2007/04/14(土) 16:45:03ID:6SAiqFC9アドバイスありがとうございます。
そのアドバイスを元にこんなバッチファイルを作成したのですが、全く動作しません。
http://www.uploda.org/uporg774186.txt
何が悪いのでしょうか?
どう修正したら良いのかわからなくなってきました・・・
0981名無し~3.EXE
2007/04/14(土) 16:52:34ID:YRhG6sRI0982名無し~3.EXE
2007/04/14(土) 17:48:08ID:b97HeRvrという構文なのに
もし〜だったら
だけ書いてどうするんだw
0983名無し~3.EXE
2007/04/14(土) 18:53:03ID:6SAiqFC9いや、だから
call :com
でまず ラベル:comに飛ばして
:com
if %~z1==%~z2
この比較(ファイルAとファイルBが等しいか)をして、その比較の戻り値( %errorlevel% で参照可能のはず)
が、callで読んだ次の行に戻ってきてif errorlevel 1 ( で、先ほど戻ってきた%errorlevel%
の値を参照して、もし等しくないなら1が入ってるはずで、等しいなら0が入ってるはずなので
1が入ってる場合にエラーを表示
って言う事をやっているのですが、もしかして :comを使いまわすようなコーディングしたら
ダメなんですかね?戻り値をどうやればcallで呼んだメインの方に返せるのかが分かりません。
returnコマンドとかあるのかな・・・
0984名無し~3.EXE
2007/04/14(土) 18:56:25ID:6SAiqFC9>もし〜だったら
>だけ書いてどうするんだw
もし等しかったら〜 %errorlevel%に0を入れて呼び出し元に戻る
そうでなければ〜 %errorlevel%に1を入れて呼び出し元に戻る
ってやりたいんですよ。
そしたら戻ってきた時に%errorlevel%の中身を参照して処理を振り分ける事が出来る。
0985名無し~3.EXE
2007/04/14(土) 19:02:58ID:v4DEaveu:com
if %~z1==%~z2 (
echo %~n2ファイルは正常にコピーできています) else (
echo エラー!!%~n2のファイルサイズが異なっています!正常にコピーできていません)
goto :eof
0986名無し~3.EXE
2007/04/14(土) 19:40:55ID:6SAiqFC9そのようにcall先でechoすると
goto :eof
で終わった際に、呼び出し元に戻りますか?
それとも、本当に呼び出し元に戻りなんかせずにEOFの通りファイルの最後、
つまりbat処理を終了してしまいますか?
1個正常にコピーできてないって出力したとしても、残りの4つも全て比較したいんで
終わるわけにはいかないんですよ。
# まだだ、まだおわらんよ
とりあえず>>978さん及び>>985さんのアドバイスを元に修正したbatファイルを
次のレスで投稿します。
かなり量が減ってスッキリしましたが、動作しません。
エラーメッセージは
== の使い方が誤っています。
です。
0987名無し~3.EXE
2007/04/14(土) 19:41:45ID:6SAiqFC9echo 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
0988名無し~3.EXE
2007/04/14(土) 19:45:33ID:YRhG6sRIset/?よめ
0989名無し~3.EXE
2007/04/14(土) 19:48:51ID:YRhG6sRI0990名無し~3.EXE
2007/04/14(土) 20:15:13ID:YRhG6sRIファルダまたはディレクトリって分るかな?
ms-its:C:\WINDOWS\Help\glossary.chm::/glossary_per.htm#JPN_HA
0991名無し~3.EXE
2007/04/14(土) 20:40:44ID:HZdXwwGgrepairの方はファイル名が system.bak じゃね?
if "%~z1"=="%~z2"
などにしとけばファイルがない場合でも構文エラーにはならなくなる。
つーかさ、これ、Windows上で実行するのか?
もし生DOS上で実行するなら拡張機能は一切使えないぞ。
0992名無し~3.EXE
2007/04/14(土) 21:10:59ID:6SAiqFC9repairの方もsystemです。 .bakは C:\WINDOWS\tmpに作成されるbatがあります。
ファイルは存在するので、ファイルが存在しないからエラーなのではなくて
多分構文がおかしいのかと。
Windows上でも生DOS上でも実行しませんよ。
実行するのはBartPE上です。
0993名無し~3.EXE
2007/04/14(土) 21:34:09ID:HZdXwwGgBATは基本的に変数展開のあとに構文解析するから
echo off せずに表示してみれば?
0994名無し~3.EXE
2007/04/14(土) 21:50:36ID:bU+xOO1T0995名無し~3.EXE
2007/04/14(土) 21:56:50ID:bU+xOO1Techo 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
0996名無し~3.EXE
2007/04/14(土) 22:30:16ID:/RBcjwqG0997名無し~3.EXE
2007/04/14(土) 22:47:52ID:hbxFcMHM0998名無し~3.EXE
2007/04/14(土) 22:57:23ID:hbxFcMHMユーザー必読!コマンドライン(DOS Pt.6)
http://pc11.2ch.net/test/read.cgi/win/1176558776/l50
サブジェクトが長過ぎるため、新規スレがたてられなかったので、タイトル(サブジェクト)を変更しました。
0999名無し~3.EXE
2007/04/14(土) 23:00:28ID:hkKg08IN1000名無し~3.EXE
2007/04/14(土) 23:17:02ID:NDOCwV5G次スレ
ユーザー必読!コマンドライン(DOS Pt.6)
http://pc11.2ch.net/test/read.cgi/win/1176558776/l50
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。