1 名前:名無し~3.EXE [2009/05/24(日) 12:10:19 ID:J07+u5Pg] 適材適所で GUI と CUI を組み合わせて、 (゚д゚)ウマー DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、 wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ コマンドラインインタフェースに関するネタならなんでもOK。 質問も歓迎だけど、自分で調べて勉強する努力も忘れずに。 前スレ 初心者〜管理者まで必読!コマンドライン(DOS Pt.7) pc12.2ch.net/test/read.cgi/win/1217738171/
168 名前:名無し~3.EXE mailto:sage [2009/11/22(日) 16:55:47 ID:ySE6LLmg] 賢い人達キタ─wwヘ√レvv〜(゚∀゚)─wwヘ√レvv〜─ !! コンピューターの言語だろうか位しか分からんwww
169 名前:名無し~3.EXE mailto:sage [2009/11/22(日) 16:56:29 ID:ySE6LLmg] あ、誤爆ったwww忘れてwww
170 名前:名無し~3.EXE mailto:sage [2009/11/22(日) 20:17:25 ID:s+B81oCe] 2行目がSETコマンドじゃなくてPATHコマンドなのがこのお題のミソだな。 =はファイル名としても使えるのにここではコマンドセパレーターとして働いている その混沌っぷりがさらに話題を広げるのであった。
171 名前:名無し~3.EXE mailto:sage [2009/11/22(日) 20:28:10 ID:+yxwUHDq] >>167 ,170 ありがとうございました とあるバッチファイルの中身です これを実行する事で、そのウインドウでのみ@にあるものを使えるようになるのですが 環境変数を書き変えて、その手間を省けないのかなと思い、質問しました
172 名前:名無し~3.EXE mailto:sage [2009/11/22(日) 22:04:49 ID:mndxsipb] 飢えたライオンに餌まく質問者
173 名前:名無し~3.EXE mailto:sage [2009/11/22(日) 22:05:43 ID:mndxsipb] それに飛びつくライオン ライオンさん一言どうぞ ↓
174 名前:名無し~3.EXE mailto:sage [2009/11/22(日) 22:53:45 ID:se2vb0Wd] あぁん
175 名前:名無し~3.EXE mailto:sage [2009/11/23(月) 19:23:48 ID:s/idSSMb] コードページが437の状態でコマンドを実行させたいのですが cmd /c chcp 437&dir <可能な限り1行で起動したい とかやってもdirが実行されるコードページが変更されていません コマンドプロンプトからの場合はコードページ変更が行われるようですが 「ファイル名を指定して実行」から実行した場合(CreateProcessによる起動?)に コードページの変更が行われないようです コマンドプロンプトからの実行でなくてもコードページを変更して実行する方法が あったら教えてください よろしくお願いします
176 名前:名無し~3.EXE mailto:sage [2009/11/24(火) 15:32:18 ID:F4p8x8VG] cmd /c cmd /c chcp 437&dir
177 名前:名無し~3.EXE mailto:sage [2009/11/24(火) 22:20:33 ID:F4p8x8VG] cmd /c chcp 437&cmd /c dir
178 名前:名無し~3.EXE mailto:sage [2009/11/24(火) 23:10:13 ID:USGr7+m9] 現実世界から二次元世界へと戻るコマンドを教えてください
179 名前:名無し~3.EXE mailto:sage [2009/11/25(水) 01:18:05 ID:YdDbxgd2] 残念! コマンドラインは一次元の世界だ
180 名前:名無し~3.EXE mailto:sage [2009/11/28(土) 20:49:03 ID:fHqQVsd/] ヘルプファイル見るより検索した方が早い気が ここで知ったか振るという手もあるけどw コマンドラインごみ箱ツール「GB」1.0.1
181 名前:名無し~3.EXE mailto:sage [2009/12/02(水) 09:52:53 ID:RwfNPXz0] DOSっていうかバッチファイルすごいね。 レジストリ設定ファイルを作るバッチで小技が効いてる。 ブラウザで開く代わりにインターネットショートカットを作成するというものなんだけど。 出来立てほやほや置いときますね -- MakeDefaultBrowserSetReg.bat -- rem host\MakeInternetShortcut.batをデフォルトのブラウザに設定するレジストリファイルを作成します。 rem パス名の\を\\に置換 set VMWInterAppPath=%~dp0host\MakeInternetShortcut.bat set VMWInterAppPath=%VMWInterAppPath:\=\\% rem レジストリファイル echo Windows Registry Editor Version 5.00 > SetDefaultB.reg echo. >> SetDefaultB.reg echo [HKEY_CLASSES_ROOT\ftp\shell\open\command] >> SetDefaultB.reg echo @="\"%VMWInterAppPath%\" \"%%1\"" >> SetDefaultB.reg echo. >> SetDefaultB.reg echo [HKEY_CLASSES_ROOT\HTTP\shell\open\command] >> SetDefaultB.reg echo @="\"%VMWInterAppPath%\" \"%%1\"" >> SetDefaultB.reg echo. >> SetDefaultB.reg echo [HKEY_CLASSES_ROOT\https\shell\open\command] >> SetDefaultB.reg echo @="\"%VMWInterAppPath%\" \"%%1\"" >> SetDefaultB.reg set VMWInterAppPath= -- host\MakeInternetShortcut.bat -- rem ショートカットの作成 echo [DEFAULT] > ..\OpenURL.lnk echo BASEURL=%1 >> ..\OpenURL.lnk echo [InternetShortcut] >> ..\OpenURL.lnk echo URL=%1 >> ..\OpenURL.lnk
182 名前:名無し~3.EXE mailto:sage [2009/12/02(水) 12:29:50 ID:6qx8dZPq] 拡張子はurlだろが。死ねよ。
183 名前:名無し~3.EXE mailto:sage [2009/12/02(水) 12:46:35 ID:RwfNPXz0] そうそう。 URLでした。 あと、カレントディレクトリをファイルのあるディレクトリを基準に考えてましたが間違っていました。 ファイルパスにはすべて%~dp0をつけて「%~dp0..\Open.url」とかにしないと駄目でした。 普通の実行ファイルだとたいてい実行ファイルのある場所がカレントディレクトリになってるからそのつもりで作っちゃった。 テストで実行するときはエクスプローラーで実行したけど、そんときはその場所がカレントになるから気がつかなかった。
184 名前:名無し~3.EXE mailto:sage [2009/12/03(木) 23:27:07 ID:PE65EMUZ] >reg query "HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware Tools" /v InstallPath | for /f %P in ('find "InstallPath"') do set VMW-IPTEMP=%P Toolsがインストールされたパスをレジストリから取得し、環境変数に入れたかったんだけど、無理なのかな。 FINDの結果を一旦ファイルに出力して set /p path=<ファイル名 で実現はできたんだけど、 最初に書いたコマンドの結果は set VMW-IPTEMP=InstallPath となり、スペースで区切られたところまでしか取得できない。 確か標準入力は開業もスペース区切りも同一に扱われた気がするけど・・そのせいかな?
185 名前:名無し~3.EXE mailto:sage [2009/12/03(木) 23:35:43 ID:8MhzhBSk] "delims="
186 名前:名無し~3.EXE mailto:sage [2009/12/04(金) 00:26:11 ID:/KEnbVNi] >>185 ありがとう。1行取れました。 reg query "HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware Tools" /v InstallPath | for /f "delims=" %%P in ('find "InstallPath"') do echo %%P でも、echo %%P はうまくいくけど、 set VMW_IPTEMP="%%P" でやっても、環境変数には代入されませんでした。 コマンドラインでもバッチファイルでも同じでした。 一応コマンドは実行されるんだけど。 他にこんなのも試したんですが、だめでした。 find "InstallPath" | set /p VMW_IPTEMP= find "InstallPath" | set /p VMW_IPTEMP=<con
187 名前:名無し~3.EXE mailto:sage [2009/12/04(金) 01:49:26 ID:d9wXhpuD] 代入はされてる。ただし、子プロセスの環境変数は親に逆遺伝しない。 for /f %%P in ('echo AAA') do set XXX=%%P echo %XXX% echo BBB | for /f %%P in ('echo AAA') do set XXX=%%P echo %XXX% echo BBB|for /f %%P in ('echo AAA') do set XXX=%%P & call echo %%XXX%%
188 名前:名無し~3.EXE mailto:sage [2009/12/04(金) 13:39:21 ID:d9wXhpuD] echo BBB | set XXX=AAA echo %XXX% echo BBB | (set XXX=AAA call echo %%XXX%% )
189 名前:名無し~3.EXE mailto:sage [2009/12/04(金) 15:14:22 ID:/KEnbVNi] なるほど。 パイプ使った先で環境変数に入れるなら、そこで処理してしまわないと駄目なんですね。 結局ファイルを経由して set /p オプションでリダイレクトするのが正しかったか。
190 名前:名無し~3.EXE mailto:sage [2009/12/04(金) 15:50:40 ID:d9wXhpuD] for /f %P in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware Tools" /v InstallPath ^| find "InstallPath"') do set VMW-IPTEMP=%P echo %VMW-IPTEMP%
191 名前:名無し~3.EXE mailto:sage [2009/12/04(金) 18:20:02 ID:/KEnbVNi] >>190 パイプ処理まで中に含めるとは思いつきませんでした。 ありがとうございました。
192 名前:名無し~3.EXE mailto:sage [2009/12/04(金) 18:37:12 ID:d9wXhpuD] echo BBB | (set /p XXX= call echo %%XXX%% )
193 名前:名無し~3.EXE mailto:sage [2009/12/07(月) 14:04:39 ID:Cyo0Qdc6] cp, mvコマンドとcopy, moveコマンドの微妙な違い:実例とまとめ - 檜山正幸のキマイラ飼育記 d.hatena.ne.jp/m-hiyama/20081211/1228976433
194 名前:名無し~3.EXE mailto:sage [2009/12/22(火) 22:39:16 ID:Wwn6YkO/] >>5 これのダウンロード方法が分かりません
195 名前:名無し~3.EXE mailto:sage [2010/01/03(日) 09:23:06 ID:yQMN8uyY] おはようございます、ちょっとコマンドについて質問させてください IEで、インターネット一時ファイル"のみ"を削除するには、 どのようなコマンドを打ったらよいのでしょうか? rd /s "tempor~1" だと、クッキーやフォームなども一緒に削除されてしまいます
196 名前:名無し~3.EXE mailto:sage [2010/01/03(日) 13:55:05 ID:xnZ8ujnt] 無いから作れ。
197 名前:名無し~3.EXE mailto:sage [2010/01/03(日) 14:53:13 ID:NDYQ1zyW] >>195 cleanmgr
198 名前:名無し~3.EXE mailto:sage [2010/01/03(日) 15:49:26 ID:yQMN8uyY] >>197 おお、できましたサンクスです ただ、cのクリーンアップのチェックは全て外し、 cleanmgr /d z: /sageset:1 でセットしておいても、 cleanmgr /d z: /sagerun:1 をbatにして実行すると、目的のzドライブだけではなく、cドライブも毎回空きを計算してしまいます。。 いい方法ありますか?
199 名前:名無し~3.EXE mailto:sage [2010/01/08(金) 15:13:18 ID:wdm81tzo] RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8
200 名前:名無し~3.EXE mailto:sage [2010/01/11(月) 12:56:50 ID:g2GiCuw7] Index of /~piaip/tools/unxutils www.csie.ntu.edu.tw/~piaip/tools/unxutils/
201 名前:名無し~3.EXE mailto:sage [2010/01/11(月) 15:41:27 ID:V3sq9Wpe] >>200 残念ながら、中身は古いのばかりだな
202 名前:名無し~3.EXE mailto:sage [2010/01/26(火) 12:40:48 ID:Aw94STdP] FOR /f "skip=4 tokens=3" %%A IN ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') DO SET desktop=%%A
203 名前:名無し~3.EXE mailto:sage [2010/01/26(火) 13:56:10 ID:QnBbXJza] 空白があると駄目だろ?
204 名前:名無し~3.EXE mailto:sage [2010/01/26(火) 14:25:18 ID:ZPqGt4/y] tokens=1,2,* do set desktop=%%C って所かな。
205 名前:名無し~3.EXE mailto:sage [2010/01/26(火) 18:53:17 ID:9uq8tqJG] syslogをbat処理する時に困っています。 ↓で始まる行を直前の行と繋げたいのですが、どうしたら良いでしょうか? ,0,LAN - sed-1.18+mb1.03で色々試しているのですが、うまくいきません。 キーワードがあった行と次の行をつなげることは出来たのですが・・・。 よろしくお願いします。
206 名前:名無し~3.EXE mailto:sage [2010/01/26(火) 20:05:57 ID:UyCrvOTu] 空白・2バイト文字があるとアウトだね
207 名前:名無し~3.EXE mailto:sage [2010/01/26(火) 21:59:36 ID:QnBbXJza] >>205 各行を改行なしで書く。 なんとかで始まらないときだけ行頭に改行を書く。 最後に改行を書く。
208 名前:名無し~3.EXE mailto:sage [2010/01/27(水) 12:29:11 ID:aPOmdlOD] 質問お願いします。 www.lifehacker.jp/2009/09/090904firefoxfiremaster.html? ↑このソフトを使いたいのですがステップ3まで行き securityxploded.com/firemaster.php? ↑の配布ページを参考に、サンプルコマンドをコピーして FireMaster.exe -d -f c:\dictfile.txt Firefox_Profile_Path などを打ち込んだりするのですが、エラーが出て先に進めません。 C:\User\****\Links\FireMaster_bin>FireMaster.exe -d -f c:\dictfile.txt Firefox_Profile_Path ↑このコマンドの打ち方に間違いはないでしょうか?
209 名前:名無し~3.EXE mailto:sage [2010/01/27(水) 14:40:18 ID:nXBbHpe6] >>205 oshiete1.goo.ne.jp/qa3085426.html
210 名前:名無し~3.EXE mailto:sage [2010/01/27(水) 17:09:55 ID:nXBbHpe6] C:\bin>type t.sed /.*$/N s/\n// C:\bin>type log.txt A ,0,LAN - B ,0,LAN - C ,0,LAN - C:\bin>sed -f t.sed log.txt A,0,LAN - B,0,LAN - C,0,LAN - 適当に書いてみた
211 名前:名無し~3.EXE mailto:sage [2010/01/27(水) 19:05:35 ID:YbV7ZS5I] forでできる
212 名前:名無し~3.EXE mailto:sage [2010/01/27(水) 21:17:47 ID:RwVGimom] おまいら! sed の使い方教えて下さいm(_ _)m pc11.2ch.net/test/read.cgi/linux/1067815570/ sed pc12.2ch.net/test/read.cgi/unix/1085730992/
213 名前:名無し~3.EXE mailto:sage [2010/02/04(木) 03:04:07 ID:bMU9o4Cj] set sec=%now:~6,2% if %sec% lss 14 set m=14&&goto st if %sec% lss 29 set m=29&&goto st if %sec% lss 44 set m=44&&goto st if %sec% lss 59 set m=59&&goto st :st
214 名前:名無し~3.EXE mailto:sage [2010/02/04(木) 20:16:27 ID:1NhVEJJl] now ?
215 名前:名無し~3.EXE mailto:sage [2010/02/05(金) 10:42:44 ID:mIxXapaZ] Console Registry Tool for Windows - version 3.0 Copyright (C) Microsoft Corp. 1981-2001. All rights reserved regコマンドは2000じゃ使えないんか...
216 名前:名無し~3.EXE mailto:sage [2010/02/05(金) 12:58:42 ID:FDIFTu0B] 持ってけよ
217 名前:名無し~3.EXE mailto:sage [2010/02/06(土) 11:42:38 ID:uEMTgQVR] Reg.exeコマンドはNT4の頃からあるよ。 NT4の頃はResource Kit Toolsで提供されてた。(忘れたけどSupplement 3か4か以降) Windows 2000ではSupport Toolsに入ってた。 ↓でダウンロードできるよ。 www.microsoft.com/downloads/details.aspx?FamilyID=f08d28f3-b835-4847-b810-bb6539362473&DisplayLang=en ちなみに引数の文法が結構違ってるから要確認な。
218 名前:名無し~3.EXE mailto:sage [2010/02/06(土) 16:51:32 ID:N6DMGysY] >>204 >>206 個別に調整するしかないのか? 汎用的に指定できないのかね
219 名前:名無し~3.EXE mailto:sage [2010/03/19(金) 19:45:23 ID:j/kRmZ+3] スレ立てるまでもない質問はここで 105匹目より誘導されてきました。 WindowsXPで、タスクの登録を管理者権限を持っている人間が行うとして、タスクをユーザーアカウントを見て実行させるか、どうかを判定したいと考えています。 ・atコマンドで登録 →コマンドプロンプト上で実行 at 15:00 cmd /c if "Guest" equ ^"%USERNAME^%" ( echo hoge ) で実行するも、登録はされるのですが、 1、ダブルコーテーションがはずされてしまうという問題があります。 2、これを今度はバッチファイル上で実行しようとすると、ダブルコーテーションがはずされた上に、^"%USERNAME^%"の部分が^だけになってしまいます。 なにか、解決に向けてヒントなりをいただけないでしょうか、、、
220 名前:名無し~3.EXE mailto:sage [2010/03/19(金) 20:28:55 ID:BHu+ZFPB] at 15:00 "cmd /v:on /c if \"Guest\" equ \"!USERNAME!\" ( echo hoge )"
221 名前:名無し~3.EXE mailto:sage [2010/03/20(土) 02:07:13 ID:2svRwq1H] >>220 レスありがとうございます。エスケープシーケンス\と、!について教えていただき、前進することができました。 レスもらってから、うまくできなかったため、今も試行錯誤しています。 (cmd.exeをダブルコーテーションで囲むか、最初と最後のダブルコーテションをはずすとうまくいきました) 「ファイル名を指定して実行」 cmd.exe /v:on /c if \"Guest\" equ \"!USERNAME!\" ( echo hoge ) はうまく動作しました(ありがとうございます)。 しかし at 15:00 cmd.exe /v:on /c if \"Guest\" equ \"!USERNAME!\" ( echo hoge ) はうまく動作しません。 原因を探ったところ、 at 15:00 cmd.exe /v:on /c echo \"!USERNAME!\" ^> C:\test.txt で確認すると、実行結果は "!USERNAME!\" がそのまま書き込まれていました。 上記をうまく解決するため、atに登録した時点で環境変数(?)を開くうまい方法などあれば、ご教授いただければと思います。
222 名前:名無し~3.EXE mailto:sage [2010/03/20(土) 22:21:55 ID:lyhs8zMC] at 15:00 cmd.exe /c echo \"%USERNAME%\" ^> C:\test.txt
223 名前:名無し~3.EXE mailto:sage [2010/03/21(日) 03:07:07 ID:F1k/W7Mk] >>222 レスありがとうございます(なんどもありがとうございます)。 at 15:00 cmd.exe /c echo \"%USERNAME%\" ^> C:\test.txt 自分の環境だと上記コマンドは at 数字 で確認すると、すでに登録した段階でユーザー名が展開されてしまいます。 (コントロールパネル→タスク at数字のプロパティで確認すると、タスクを登録した段階で環境変数が展開されております、、、) at 15:00 cmd.exe /c echo \"%%USERNAME%%\" ^> C:\test.txt などもいろいろためしてみたのですが、、、上記の場合は、C:\test.txtの中身が "%USERNAME%"になってしまいました、、、。(/v:on のあるなしに関わらず、、、) なにか、良い方法があると、、、いいのですが、、、。
224 名前:名無し~3.EXE mailto:sage [2010/03/21(日) 04:24:52 ID:IG7xyVml] at 15:00 cmd.exe /c set ^> C:\test.txt
225 名前:名無し~3.EXE mailto:sage [2010/03/21(日) 04:29:42 ID:83CPJkNx] >>223 事前にbatを作っておいてそれを実行するんじゃダメなんですか? [test.cmdの中身] if "%USERNAME%" equ "Guest" echo "%USERNAME%" > C:\test.txt で、at 15:00 c:\test.cmd を実行とか。 ところで目的は何ですか? 15:00ぴったりに使用していないと、その実行は明日に持ち越しになっちゃいますが それでも良いんですか?15:00以降に最初に使ったユーザーとかじゃなくて? また一回こっきり実行でいいんですか?毎日とかじゃなくて? もしユーザーの管理に使いたいなら、ログオンスクリプトとして登録しておいて ユーザーのログオン時を捕まえるのが良いと思うんですが? @echo off if "%username%"=="xxx" ( 挨拶メッセージを表示 コマンド1 コマンド2 ) else if "%username%"=="yyy" ( コマンド3 ) else if "%username%"=="zzz" ( コマンド4 )
226 名前:名無し~3.EXE mailto:sage [2010/03/21(日) 15:20:12 ID:IG7xyVml] at 15:00 cmd.exe /c whoami ^> C:\test.txt
227 名前:名無し~3.EXE mailto:sage [2010/03/22(月) 04:11:36 ID:49Z3p/7o] atのタスクがユーザアカウントでなく、システムアカウントで実行されることを分ってない?
228 名前:名無し~3.EXE mailto:sage [2010/03/22(月) 12:14:38 ID:vRxWzlrp] 皆様コメントありがとうございます。 >>224 レスありがとうございます。 setの中身を確認して、ようやく自分がアホなことをやっていることがわかりました。 (素で実行したのと、atで実行したのを比較して、%USERNAME%を確認しました) >>225 レスありがとうございます。 ( >>225 の言うとおり)目的はある時間にAさんなら実行するけど、Bさんは実行しないスクリプトを組みたいと考えています。 at 15:00っていうのは特に意味はなく、質問するにしても可能な限りスクリプトを短くしたかったためです。 自分の環境では、教えていただいたbat処理は、ユーザーが "" になりましたので、違う手を考えてみます。 >>226 レスありがとうございます。 WindowsXP SP2 Support Tool入れてみて実験してみたいと思います。 >>227 レスありがとうございます。 システムアカウントが実行するということはなんとなく知っていたのですが、 >>224 のsetでようやく理解できました。 whoamiでログインユーザーがとれるかちょっと実験してみたいと思いますが、、、atコマンドで実行すれば、システムアカウントになるのを確認しようと思います。
229 名前:名無し~3.EXE mailto:sage [2010/03/22(月) 21:28:49 ID:49Z3p/7o] at 15:00 cmd /c wmic computersystem get username ^>C:\test.txt
230 名前:名無し~3.EXE mailto:sage [2010/03/23(火) 00:57:02 ID:aU5aUsH5] 特定ユーザーでのみタスク実行したいのならatコマンドでなく実行アカウントを指定できるschtasksコマンドを使えば? 元々atコマンドはNTの互換のために残されている過去の遺物なので。
231 名前:名無し~3.EXE mailto:sage [2010/03/23(火) 02:59:35 ID:eS66TQH1] だめだろきっとパスワードがいるから
232 名前:名無し~3.EXE mailto:sage [2010/03/23(火) 20:19:25 ID:lQF/ybn7] 皆様コメントありがとうございます。 >>229 レスありがとうございます。 atでログインユーザー名を確認できました。 ありがとうございます。 >>230 レスありがとうございます。 >>231 が言うように、パスワードが必要なため楽な方法を探しておりました、、、。 (結果的にみなさまの貴重なお時間を割いていただいておりますが、、、) >>231 レスありがとうございます。 おっしゃるとおりです、、、orz wmicからのパイプ処理?について現在勉強しております。 少し時間がかかるかもしれませんが、うまく行きましたら報告いたします。
233 名前:名無し~3.EXE mailto:sage [2010/03/23(火) 23:57:08 ID:lDYBG9RV] タスクは無差別にバッチを実行するだけにして、バッチの中でIF文使って %USERNAME%が条件に合った場合だけやりたい処理をする、 みたいな構成じゃダメなの?
234 名前:名無し~3.EXE mailto:sage [2010/03/24(水) 00:45:12 ID:U3N/7+3H] ごくろうさん
235 名前:名無し~3.EXE mailto:sage [2010/03/25(木) 03:27:06 ID:09J8YNxF] なんかイタズラの臭いがするなあ 教えたのは失敗なんじゃないかな
236 名前:名無し~3.EXE mailto:sage [2010/03/25(木) 17:54:32 ID:16a0LSCJ] できましたので、報告します。 for /F "usebackq skip=1" %%x in (`wmic computersystem get username`) do if /i "%%x" equ "%COMPUTERNAME%\%1" ( echo "hoge" ) >>223 レスありがとうございます 先に試しましたが、自分の環境ですとatで実行すると %USERNAME" にはなにも入っておりませんでした。 >>234 レスありがとうございます すべてのレスをくれたかた、ご苦労さまでした。 >>235 レスありがとうございます イタズラにも使えるでしょうし、有用なことにも使えるかと思います。
237 名前:名無し~3.EXE mailto:sage [2010/03/26(金) 01:21:45 ID:/JmVMDcj] OSのバージョンを区別するスマートな方法ってないよな MS手抜くなよ
238 名前:名無し~3.EXE mailto:sage [2010/03/26(金) 19:07:54 ID:7vut8Xv7] ver /?
239 名前:名無し~3.EXE mailto:sage [2010/03/26(金) 20:41:17 ID:n80jNEuM] SET UsrOS1=(不明) VER|FIND "Windows">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系?:不明) VER|FIND "Windows 95">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(Win9x系:95) VER|FIND "Windows 95. [Version 4.00.1111]">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(Win9x系:95_OSR2) VER|FIND "Windows 98">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(Win9x系:98) VER|FIND "Windows 98 [Version 4.10.2222]">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(Win9x系:98_SE) VER|FIND "Windows Millennium">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(Win9x系:Me) VER|FIND "Windows NT">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系:NT) VER|FIND "Windows NT Version 4.0">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系:NT_4.0) VER|FIND "Windows 2000">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系:2000) VER|FIND "Windows XP">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系:XP) VER|FIND "Windows [Version 5.2.">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系:Server2003) VER|FIND "Windows [Version 6.0.">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(WinNT系:Vista) VER|FIND "MS-DOS">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(非Win系:MS-DOS) VER|FIND "MS-DOS バージョン 5.00">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(非Win系:MS-DOS_5.0(EPSON製98互換機用で確認)) VER|FIND "MS-DOS Version 6.2">NUL IF NOT ERRORLEVEL 1 SET UsrOS1=(非Win系:MS-DOS_6.2(EPSON製98互換機用で確認))
240 名前:名無し~3.EXE mailto:sage [2010/03/27(土) 11:06:38 ID:D6Ht2NWP] >>239 煽りじゃなくてマジで疑問なんだが x64 と x86 の見分けは? ついで言えば IA64 は?
241 名前:名無し~3.EXE mailto:sage [2010/03/27(土) 13:00:23 ID:EVIDvLoZ] jt.exeに関して質問です。 win7のタスク(windows/system32/tasks)を制御しようとしてますが、 jt /lj %systemroot%\system32\tasks\(タスク名) /sj SystemRequired = 1 [TRACE] Loading Job C:\Windows\system32\(タスク名) [PERF ] Load took 0 ms [FAIL ] IPersistFile::Load hr=0x80041313 となり、うまく制御できません。 根本的にやり方まちがってますかね?
242 名前:名無し~3.EXE mailto:sage [2010/03/27(土) 15:00:49 ID:4iD/8n0I] 根本的にやり方まちがってるんじゃない? タスクスケジューラはVistaで変わったからjtは使えないんじゃないか なんでos標準のschtasksを使わないの?
243 名前:名無し~3.EXE mailto:sage [2010/03/27(土) 16:10:46 ID:EVIDvLoZ] >>242 ありがとうございます。 いや、それがschtasksだと、そこまで(スリープからの復帰)制御出来ないんですよ。
244 名前:名無し~3.EXE mailto:sage [2010/03/27(土) 16:27:12 ID:4iD/8n0I] createobject("schedule.service")はどうだろ?
245 名前:名無し~3.EXE mailto:sage [2010/03/27(土) 16:37:47 ID:4iD/8n0I] TaskSettings.WakeToRun Propertyがあるね
246 名前:名無し~3.EXE mailto:sage [2010/03/27(土) 18:03:50 ID:EVIDvLoZ] スターターの私には難しそうですがいろいろやってみます。
247 名前:名無し~3.EXE mailto:sage [2010/03/27(土) 20:43:44 ID:lwojKVA6] >>240 PROCESSOR_ARCHITECTURE見ればいいんでない?
248 名前:名無し~3.EXE mailto:sage [2010/03/27(土) 23:44:04 ID:KVlY6lKz] >>247 なるほど! さんくす!!
249 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 14:11:54 ID:y90kcftT] コマンドライン中で純粋に特別な意味を持つキャラクタとしては、 < > | の3つだけでしょうか。 つまり、 ECHO ほにゃらら〜〜〜ふにゃらら というように数十文字のテキストを表示するとして、 〜〜〜の中に入れてはいけない文字が知りたいのです。
250 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 14:31:00 ID:6Yi1arZm] ^
251 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 15:58:54 ID:y90kcftT] >>250 ヒントをいただいてかなり分かりました。 まとめると以下のようで正しいでしょうか? ■コマンドラインで通常の文字と扱われない特殊キャラクタ、およびエスケープ方法 ◆MS-DOSプロンプト(全4種) < > | ※以上の3種は " (ダブルクオート)で括られた状態なら通常の文字として扱われる % → %% ◆コマンドプロンプト(全9種) < → ^< > → ^> | → ^| & → ^& ( → ^( ) → ^) ^ → ^^ ※以上の7種は " (ダブルクオート)で括られた状態なら通常の文字として扱われる % → %% " → ""
252 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 16:00:36 ID:mGw8jiZC] C:\>echo %% %%
253 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 16:42:14 ID:O2CSi6Ub] C:\> echo ( (
254 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 16:48:23 ID:y90kcftT] なんて早さの即答…迷い無しですね。ありがとうございます。 なるほど、コマンドプロンプトでは%%でエスケープ、というのは ウソ情報をつかんできてしまったようです。 ただし、DOSではこれで正しい。 すると… %windir%と表示したい場合は、 COMMAND.COM echo %%windir%% CMD.EXE echo ^%windir^% ということですね。 あと、 " → "" というのもエスケープされてるのかされてないのか分からないですね。 常識的にはエスケープされてるとは言えないと思いますので、除外します この考え、正しいのかな?? 他に何か見落としがありますでしょうか?
255 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 16:58:21 ID:y90kcftT] >>253 そもそも () の使い方が分からない…。 ECHOで単体なら大丈夫と言うことですね。 しかし、使用できない文字、エスケープすべき文字の確認が目的ですので、 これは前述の通り普通に ^( ^) で良いかと。 エスケープしなくても大丈夫なパターンを探してるわけじゃないんです。
256 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 16:58:30 ID:O2CSi6Ub] set windir^^=aaa echo ^%windir^%
257 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 17:01:21 ID:O2CSi6Ub] echo ^" ^" echo " ^"
258 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 17:06:11 ID:O2CSi6Ub] cmd/?|find "特殊文字"
259 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 17:10:26 ID:y90kcftT] >>256 >>258 う、難しい。勉強してみます。 >>257 ありがとうございます。 今ちょうど、 echo " | " echo ^" | " なんてやって確認してたとこでした。 結論は、 " → ^" ですね!
260 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 18:11:16 ID:y90kcftT] >>256 これは分かりません?? 結果は%windir^%にaaaが入ってますよ、と。 先頭の ^ はどこへ消えたのか? %のエスケープが^%でないとしたら、どういうルールなのでしょうか。 これは自分では答えを出せそうに無いです。 >>258 ややこしいですねぇ。 cmd/?|find "^" とか、 set test=ファイル cmd/?|find "%test%" とかやってました。 シェルとコマンドの仕事の範囲が明確で無いから分かりにくいんですかね。 もしくはリテラルの定義が明確で無いからか。 自分が必要としているのはechoだけなんですが、 >>256 の結果は影響がありそうです。 ぜひ解説していただけないでしょうか。
261 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 19:40:55 ID:O2CSi6Ub] set windir^^=aaa echo %windir^%
262 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 19:42:41 ID:O2CSi6Ub] c:\> cmd/?|find "特殊文字"
263 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 19:43:49 ID:O2CSi6Ub] set windir^^=aaa set windir
264 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 20:00:38 ID:O2CSi6Ub] ttp://otn.blogtribe.org/entry-acf7b762f5b92cec6885cca6954bf573.html
265 名前:名無し~3.EXE mailto:sage [2010/04/11(日) 20:05:46 ID:O2CSi6Ub] ttp://otnx.jp/CMD/%C1%B4%C8%CC/%B9%BD%CA%B8%B2%F2%C0%CF/#j4da5af5
266 名前:名無し~3.EXE mailto:sage [2010/04/14(水) 19:28:19 ID:Lfksvlek] XP及び7でコマンドライン or WSHから関連づけの登録を行うのにどのような方法がありますか? 標準でインストールされているソフトウェアの影響を受けにくい方法を探しています よろしくお願いします
267 名前:名無し~3.EXE mailto:sage [2010/04/14(水) 19:55:11 ID:zsXaS8Mw] レジストリ書き換えしかないだろ
268 名前:名無し~3.EXE mailto:sage [2010/04/14(水) 23:42:57 ID:Nbmdm37R] assoc ftype