1 名前:デフォルトの名無しさん [2009/05/14(木) 11:29:31 ] 前スレ 【.cmd】 バッチファイルスクリプト %4 【.bat】 pc12.2ch.net/test/read.cgi/tech/1229955189/
2 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 11:32:13 ] @echo 乙>>1
3 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 11:37:18 ] 【関連スレ】 DOSでプログラミング pc11.2ch.net/test/read.cgi/tech/1047001533/ HTAをもっと流行らせる計画 Part2 pc11.2ch.net/test/read.cgi/tech/1220874815/ WSH(・∀・)スレッド! Part 3 pc11.2ch.net/test/read.cgi/tech/1208948450/ Windows板:お前ら、wsh使ってますか? Part7 pc11.2ch.net/test/read.cgi/win/1190548945/ Windows板:Windows PowerShell 2.0 pc11.2ch.net/test/read.cgi/win/1221046998/ Windows板:初心者〜管理者まで必読!コマンドライン(DOS Pt.7) pc11.2ch.net/test/read.cgi/win/1217738171/ Windows板:MS-DOS・Win3.1総合スレッド2.01 pc11.2ch.net/test/read.cgi/win/1212957424/ OS板:DOS全般を語るスレ 2 pc11.2ch.net/test/read.cgi/os/1179114566/ OS板:■★▲DOSはまだ現役! Drive.B: pc11.2ch.net/test/read.cgi/os/1046875141/ 昔のPC板:MS-DOS総合スレッド 2 gimpo.2ch.net/test/read.cgi/i4004/1144778720/
4 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 13:03:22 ] start /?
5 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 13:04:16 ] for /?
6 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 13:05:05 ] set /?
7 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 14:19:43 ] .bat を実行すると 「コマンド.exe > テキスト.txt」 と書いてある部分が、 「コマンド.exe 1> テキスト.txt」 と "1" が入るのだが何故なんだぜ?
8 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 14:27:44 ] >7 標準出力が1で標準エラー出力が2 数字を省略すると1、つまり標準出力とみなされる
9 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 14:35:05 ] >>8 どうもありがとう。
10 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 23:26:45 ] forfilesをXPに移植してくれ
11 名前:デフォルトの名無しさん [2009/05/18(月) 22:17:19 ] 以下のようなテキストファイルの判定を行いたいのですが、 STARTとENDという文字列があり、 STARTの方が、ファイルの先にあり、ENDが後にあると 判定するにはどうすれば良いでしょうか。 test.txt----------------------------------- ランダムな文字列ランダムな文字列ランダムな文字列 ランダムな文字列ランダムな文字列 START ランダムな文字列ランダムな文字列ランダムな文字列 ランダムな文字列ランダムな文字列ランダムな文字列 ランダムな文字列ランダムな文字列 END ランダムな文字列ランダムな文字列ランダムな文字列 -------------------------------------------
12 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 23:36:27 ] >>11 のようなのはのってawkがあると楽だよね gawk "/START/{s=1}/END/{exit s}" textfile.txt if errorlevel 1 echo OK
13 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 20:27:16 ] find /n "START" file >temp set /p start=<temp set /a start=%start:~1% find /n "STOP" file >temp set /p stop=<temp set /a stop=%stop:~1% if %start% lss %stop% echo だよ
14 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 20:30:03 ] >>10 つかえないんだっけ?
15 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 15:31:27 ] 2003にはついてるらしいからXPでもうごくだろ
16 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 01:27:24 ] 7rcのは動かないな
17 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 02:43:50 ] シンタクス間違えてない?
18 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 18:30:11 ] test.xmlファイル内にある「XXX」という文字列を検索して 「XXX」が含まれる行以下4行をコメントアウトしたい場合、どのように組めばいいんだろう。 test.xml <〜〜〜>(id="〜〜〜-XXX-〜〜") <name>〜〜〜</name> <file = "〜〜〜〜〜"/> </〜〜〜> を <!--<〜〜〜>(id="〜〜〜-XXX-〜〜") <name>〜〜〜</name> <file = "〜〜〜〜〜"/> </〜〜〜>--> といった具合にコメントアウトしたい。
19 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 18:43:13 ] バッチ向きではありません
20 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 18:46:31 ] xmlは文字コードがUTFだったりするし わざわざバッチでやるやつがいるか?
21 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:05:03 ] >>19-20 うぅむ。難しいんですかね。 文字コードはShift_JISのはずですが。 xmlを公開、配布していて、そのxmlをユーザー側でバージョンアップさせるために バッチファイルを使って中身を書き換えられれば良いかと思ったのですが。。。
22 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:20:06 ] 自分で使うなら好きにすればいい。 人に配布するならまともな方法を選ぶべき
23 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 23:43:46 ] ()<>"!はバッチで扱いにくいからやめとけ
24 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 00:43:40 ] WindowsのPATH区切り文字ってセミコロンだけど ファイル名に使用できちゃうって事を誰も咎めないの?
25 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 00:48:11 ] パスデリミタはセミコロンじゃないお バックスラッシュだお
26 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 12:44:45 ] ””
27 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 14:11:31 ] >>25 PATH環境変数のことだべ >>26 PATH="c:\hoge;hoge";c:windows みたいに書けと言っとります
28 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 16:13:11 ] レジストリからキーの値を取得して変数にセットすることは可能ですか? HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\TimeZoneKeyName のキーから読み込んだ値を任意の変数にセットしたいのですが REG QUERYを使うまでは分かったものの、そこから先へ進めず手詰まりの状態です
29 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 16:54:17 ] もちろん可能だが、バッチでやる意味がない
30 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 17:05:52 ] for/?
31 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 19:14:25 ] ━━ prep. …の代りに, …を代表して; …に向けて; …と引き換えに; …にとって; 〔米〕 …の名をもらって; …のために (shout 〜 joy); (人)あての (This is 〜 you.); …のための (books 〜 children); …(する)には; …の間 (〜 a long time); (一定の日時)に[の]; ((意味上の主語を導く)) …が ((to do)); …の点で, …の割に (clever 〜 his age); …を支持して (vote 〜 him); …として (choose him 〜 a leader); …を求めて (desire 〜 fame); …に対して, …の分として (another plan 〜 tomorrow).
32 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 21:57:23 ] >>28 ファイルにリダイレクトしてから、forで取り込むとか
33 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 23:55:15 ] >>32 もう解決しました batファイルだけでOKな方法で
34 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:03:46 ] ファイルにリダイレクトせずとも、forで取り込めるだろ
35 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 06:38:45 ] for文の記述が複雑になるから嫌だ
36 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 13:41:18 ] 複雑さのレベルが低そうだな
37 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 03:40:26 ] バッチファイルの中でファイルを実行させ、その後終了を待たずに次の処理に移らせたいのですが、やりかたがわかりません。 ------------ %1 del %1 ------------ 今は上記のように書いていて、あるファイルをD&Dでバッチファイルに送るとそれを実行し、すぐさま削除、となるようにしたいのですが、 1行目のファイルを実行したところで止まり、アプリケーションを手動で終了させないと次に進んでくれません。 (D&Dで実行させたいファイルはアプリケーションが起動中でも削除可能) 解決策があれば教えてください。よろしくお願いします。
38 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 03:49:51 ] startコマンドを使う ただ、直後だと流石に削除が早すぎる気がする 何らかの方法で多少の待ち時間は入れた方が良くないか
39 名前:37 mailto:sage [2009/06/13(土) 04:52:26 ] >>38 早速のレスありがとうございます! startコマンドを使用してみたところ、期待通り動作してくれるようになりました。 >ただ、直後だと流石に削除が早すぎる気がする 自分も多少心配だったのですが、何度か試しても今のところは問題なく処理できているようなので、 当面はこのままにしておいて、不具合が出るようなら待ち時間の追加をしたいと思います。 どうもありがとうございました!
40 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:07:03 ] :loop del %1 || ping localhost -n 2 && goto loop とかやっとけばリトライできる
41 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 03:31:15 ] pingと来たかw
42 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 15:29:14 ] for /f "tokens=3*" %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"') do set Name=%%A echo ProductName = %Name% pause 実際のProductNameはWindows Vista (TM) Ultimateなのだけど NameにはWindowsまでしか入らない・・・ 空白文字に対応するのはどうすれば?
43 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 15:34:30 ] >>28-33
44 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 16:30:25 ] for /f "tokens=2*" %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"') do set Name=%%B echo ProductName = %Name% pause
45 名前:(1/2) mailto:sage [2009/06/16(火) 20:09:17 ] システムのお守りを任されて一ヶ月。毎日オラクルと日次バッチのログ確認をしているの ですが質問をさせてもらいやす。 現在VNCのようなソフトでwindowsサーバにログイン後、 吐き出されたログにエラーが含まれてないかのチェックを行ってます。 ************************************************************************ 1. 日次バッチのログ ▽親バッチログフォルダ ├▽子フォルダ1 │ └ログ1 ├▽子フォルダ2 │ └ログ2 … └▽子フォルダ9 └ログ9 これら1〜9のログ全てから、「エラー」「Ora-***」の文字が含まれる行を出力したい。 ************************************************************************
46 名前:(2/2) mailto:sage [2009/06/16(火) 20:11:03 ] ************************************************************************ 2.オラクルのログ ▽オラクルのログフォルダ ├ lgwrtログ 最終更新日:6/16 ├ pmonログ 最終更新日:6/16 … └ hogeログ 最終更新日:6/14 ログの種類は10種程度、ただし上記と異なり全てのログが毎日更新されるわけでなく、 月曜日はlgwrtとpmonのログが更新される…etc そして更新内容は上書きでなく追記である。 ☆実際のログの中身の例 2008-05-01 HH:MM:SS 〜〜 OK 2008-05-01 HH:MM:SS 〜〜 Err 2008-05-02 HH:MM:SS 〜〜 OK … 2008-06-15 HH:MM:SS 〜〜 Caution 2008-06-16 HH:MM:SS 〜〜 Caution 2008-06-16 HH:MM:SS 〜〜 OK ※タブ区切り ここから当日追記された行のみ(更新も当日されているはず)で 「Err」「Caution」を含む行を出力したい。 ************************************************************************ アウトプットの方法はバッチ起動したらコンソールに表示でも、既に絞り込まれて一つの ファイルにまとめられたとかでも確認作業の効率化が図れればなんでもいいです。、 バッチ処理内容を変更できないので、あくまで生成されたログに対しての確認の効率化の方法をお願いします。
47 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:17:13 ] バッチファイルよりWSH向きな気がする Win板のWSHスレかコマンドスレ行ってみたら? …まぁ、どうしてもバッチでやりたいと言うなら このスレ的にも問題は無いから、ちょっと考えてさせて欲しいw
48 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:21:47 ] >47 やはりWSH向きですかね? 自分でどうにかしようと調べたときにはWSHという存在も知ったのですが… bat以上に馴染みがなかったので少しはわかるbatでの方法を聞いてみようかと 個人的には確認作業の効率化が目的なので、その方法は何でもいいのですが、 せっかくこちらで聞いたので、しばらくこっちで回答を待ってみます。 よい方法がないとかあまりに非効率的そうなら改めてWSHスレで聞いてみます。
49 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 21:03:50 ] findstr "Err Caution" ログファイル名 >err.log じゃあだめなのかなfor /rで各階層を見に行って。 messengerサービスが動いていれば、その後net sendで監視用クライアントにメッセージ飛ばす。
50 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 22:42:50 ] >>40
51 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 22:43:36 ] del %1 || (ping localhost -n 2 & goto loop )
52 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 16:25:24 ] すごくFAQな感じがしないでもないのですが、お聞きいたします。 ----hoge.bat cd /D %~dp0 call hagemoge\called.bat dir ----hagemoge\called.bat cd /D %~dp0 dir ------ というようなバッチファイルがあり、hoge.batを実行した場合、 hagemoge\called.bat を読んだ後、ディレクトリが移動しっぱなしになり、 意図する動作と異なる結果となります。 意図する動作は、hoge.bat で .\ でdirが実行され、 hagemoge\called.bat で hagemoge\ でdirが実行されることを意図しています。 しかし、結果は、双方とも hagemoge\ でdirが実行 されます。 意図した動作にするには、 call hagemoge\called.bat cd /D %~dp0 dir のように、別ディレクトリのカレントディレクトリを内部で帰るバッチをcallした後は、 また元に戻すように書かないといけない、ということでしょうか? 自動的にcallから戻ったときのカレントディレクトリにもどすような手段はないものでしょうか?
53 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 16:26:10 ] x のように、別ディレクトリのカレントディレクトリを内部で帰るバッチをcallした後は、 o のように、カレントディレクトリを内部で変える別ディレクトリのバッチをcallした後は、
54 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 17:02:11 ] cmd.exe /c hagemoge\called.bat
55 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 18:37:10 ] ----hagemoge\called.bat setlocal cd /D %~dp0 dir
56 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 21:14:30 ] pushd popd
57 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 22:04:01 ] テスト
58 名前:デフォルトの名無しさん [2009/06/28(日) 22:53:54 ] すいません、質問です。 for .. in do ren 文に関するとところで問題が起きました hoge フォルダ内にあるjpgファイルの名前の長さを短くした後 連番ファイルにリネームするバッチファイルを作ろうと試みました。 for %%i in (c:\hoge/*.jpg) do ( ren %%i %%i:~0,4 ................ といった流れでバッチファイルを作ったのですが コマンドが間違っていると怒られました。 「ファイル名を短くする」といった作業だけでもうまくいけば 全ての作業がうまくいくと思うので皆様の英知をお貸しくださいませ
59 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 00:17:55 ] %%i:~0,4 なにこれ?こんなのないだろ?
60 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 00:22:40 ] 短いファイル名にすりゃいいだろ
61 名前:デフォルトの名無しさん [2009/06/29(月) 00:27:08 ] >>59 例えば echo %date% だったら 2009/06/29 って出力されるじゃないですか? それを echo %date:~0,4% としたら 2009 と出力されるのを応用したんですよ。
62 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 00:43:57 ] 応用というより妄想だよ。できない。
63 名前:デフォルトの名無しさん [2009/06/29(月) 00:45:01 ] >>62 じゃあどうやったらバッチファイルで短くファイル名を変えることが出来ますか?
64 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 00:48:15 ] 応用しろ
65 名前:デフォルトの名無しさん [2009/06/29(月) 00:53:02 ] >>64 わかんないだけだろw
66 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 07:59:47 ] >>63 ファイル名を環境変数に入れれば、その環境変数を >>61 みたいにすることはできる。 >>58 みたいに for ループの中で使うのなら、遅延環境変数の設定が必要。 しかし、先頭 4 文字だけだと、同じ名前になることがあるのでは ?
67 名前:デフォルトの名無しさん [2009/06/29(月) 09:33:18 ] >>66 的確なアドバイスありがとうございます 確かに先頭4文字だけだと同じ名前になってしまいますね。 ここにさらに連番にするというものをつくって解決させたいと思います この単一バッチファイルでかのうでしょうか?
68 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 09:54:56 ] >>67 番号のみを環境変数で保持すればよいのではないだろうか。 for ループ内で set /a num += 1 などとして、連番で増やしていく。 必要なら「短いファイル名」と「連番」を連結して、新しいファイル名にすれば いいと思うけれど、いっそのこと「連番」だけでもいいのでは ? いずれにしても、ひとつのバッチファイル内で可能。
69 名前:デフォルトの名無しさん [2009/06/29(月) 11:55:07 ] 以前見たのですが、batファイルのテトリスがあったのですが どなたかご存知の方いませんか?
70 名前:デフォルトの名無しさん [2009/06/29(月) 13:00:01 ] >>68 なるほど、ありがとうございます set /a num += 1 set num =%%i ren %%i = %num% でコマンドを走らせたのですがなかなかうまくいきません。 どこがおかしいのでしょうか?
71 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 13:41:18 ] 全部
72 名前:デフォルトの名無しさん [2009/06/29(月) 14:03:59 ] >>71 わかならい人は黙っててください^^;
73 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 14:06:48 ] set num=0 for %%i in (c:\hoge\*.jpg) do call :fuga %%i exit /b :fuga set /a num+=1 ren %1 %num%.jpg exit /b
74 名前:デフォルトの名無しさん [2009/06/29(月) 14:14:22 ] >>73 さきほどは失礼なことを言って申し訳ありませんでした
75 名前:デフォルトの名無しさん [2009/06/29(月) 14:18:08 ] >>73 あ、でもなんだかコマンドの構文が間違っていますってでました・・
76 名前:デフォルトの名無しさん [2009/06/29(月) 14:42:08 ] >>73 for %%i in ("%homedrive%%homepath%\hoge\*.jpg") do call :fuga %%i exit /b :fuga set /a num+=1 ren %1 %num%.jpg exit /b 上のバッチファイルだと %%i が %1 に正しく値が代入されてないみたいでした。 これは環境変数の問題なんですかね?
77 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 14:46:25 ] それネタだから
78 名前:デフォルトの名無しさん [2009/06/29(月) 14:49:33 ] >>77 あ?もういっぺん言ってみろや ふざけんなマジで
79 名前:デフォルトの名無しさん [2009/06/29(月) 14:58:40 ] >>77 お前いい奴だな ありがとう いい夢見れるわ
80 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 19:08:54 ] >>69 16bitのMS-DOSならエスケープシーケンスやBATKEYを使えば作れるかもしれない。 cmd.exeだけじゃむずかしいだろう。
81 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 21:37:54 ] powershellならあるんじゃないか
82 名前:デフォルトの名無しさん [2009/07/01(水) 00:20:30 ] 任意のバッチでエコーされた結果をテキストに保存したいとき hoge.bat > log.txt とすることで、コマンドプロンプトウィンドウの代わりにファイルへ出力できますが、 この任意のバッチ(hoge.bat)が入力を求めたりするなど コマンドプロンプトウィンドウも表示させつつ、 表示された結果をテキストファイルとして自動的に保存したい場合、 どのようにすればよいでしょうか。 出力されたテキストを後からtypeするだけだと、 >入力を求めたりする ときなど、当然ながら期待した動作になりません
83 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 02:38:33 ] そのバッチファイル内で個別に> >>してけば
84 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 02:44:11 ] echo 常にコンソールに出力したい>con
85 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 20:43:55 ] >>82 意味判らんがteeみたいのがほしいってこと?
86 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 23:02:17 ] コンソールログじゃないの
87 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 23:32:56 ] >>83 呼び出される側(実際にコンソールへ文字を出力しているバッチ)は いじらない方法で実現したいのです >>85-86 そんなかんじです。
88 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 00:37:27 ] 無理
89 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:01:55 ] >>87 localhostにtelnetしてログを採取w
90 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:27:55 ] バッチ駆使するとteeみたいなことはできるのですが、 コンソールログはなかなか上手い方法が見つからないです… いったんパイプすると、出力色情報とか消えちゃうんですよね… >>89 それはww
91 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 15:53:14 ] コマンドラインから、 2009063020000701-プレミアム8<文化・芸術> “皇帝”たちの野望「始皇帝 中国を作った男」.ts を送ってもbatが動かないです。 %1 %~d1 %~p1 %~n1 %~x1 %~s1 を試しても途中までのファイル名しか認識しません。 なぜですか?どうすれば認識するようになりますか?
92 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 22:05:21 ] >>91 ""でくくってコマンドラインに渡してる?
93 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 22:08:25 ] <>"半角スペースは入ってないんだよな その質問からは適切な答えは出てこないだろう
94 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:33:30 ] ファイル名が長すぎるという可能性もある。
95 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 03:23:36 ] 全角空白がある ""でくくれ
96 名前:53 mailto:sage [2009/07/03(金) 07:09:25 ] 悪阻レス、スマソ・・・レスありがとうさんです。 >>54 cmd.exe経由で呼び出すのはお手軽でいいですね 表示はどうなるんだろ?おなじコンソールでは出力されるのだろうか? 試してみないと… >>55 setlocal しらんかった( ´д`) バッチファイル内の環境変数の変更を一時的なものにできるんですね。 バッチファイル内で使うと、最後に到達した時に元の設定が復元される、ということみたいですね。ということは、endlocalは要らないのか。 setlocal,endlocal - コマンドプロンプトを使ってみよう! −バッチファイル− ykr414.com/dos/dos05.html#09 setlocalとendlocal www.confrage.com/dos/batch-grammar/setlocal_endlocal/setlocal_endlocal.html >>56 pushd,popdでディレクトリ情報をスタックできるんですね。すっかり存在を忘れてた… レスしてくれた人ありがとう!試してみます!
97 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:36:17 ] >96 つわりレス…? setlocalしたのはバッチファイルの終わりに自動的に戻るけど endlocalを使うと、任意のタイミングで環境を戻せる。 普通に、途中から元の環境で実行したい、というのにも使えるし 例えば、一部の環境変数だけは戻り先にも残したい…なんて時に rem 環境変数Aは引き継ぎたい ( endlocal set A=%A% ) とかやると、括弧内の%変数%は括弧内を実行する前に全て展開されるので endlocal後に改めてAに同じ内容が入り、引き継げることになる
98 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 01:31:49 ] vistaで、PCの日付と時刻を一定の年数戻したい場合はどう書けばいいでしょか?
99 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 01:42:07 ] めんどくせぇ
100 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 01:45:43 ] たのんます
101 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 03:13:43 ] 継続使用したいならバイトしてちゃんと金払え
102 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 10:59:28 ] >>98 xpはできるけどビスタは理論上できない。
103 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 11:11:33 ] どんな理論?
104 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 11:52:58 ] ぐぐりまくれ
105 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 12:09:38 ] >>76 %%iを"%%i"として渡せばいける for %%i in ("%homedrive%%homepath%\hoge\*.jpg") do call :fuga "%%i"
106 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 12:19:31 ] >>92-95
107 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 01:36:18 ] XP SP2で reg add HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce としたバッチファイルを実行すると無限ループしてしまうのですが、なぜでしょうか。 /vオプションや/t, /d, /fオプションをつけてもループしてしまいます。 コマンドプロンプトで直接打てばエラーはでません。
108 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 02:14:08 ] reg.cmd
109 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 02:24:52 ] >>108 ありがとうございます! reg.exe addとしたらできました!
110 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 13:37:02 ] >>107-109 エスパーってほんとにいるんだな…
111 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:42:21 ] >>107-109 理解するのに数秒かかった 超納得。
112 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 19:38:13 ] regを呼ぶバッチファイルにreg.cmd(か.bat)って名前付けたのかw
113 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 22:04:02 ] そういうことかw 1日以上悩んでわからなかったorz
114 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 22:16:30 ] それはちょっとやばいのでは
115 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:28:47 ] FAQだろ。 ここでも3回以上同じ質問見たぞ。
116 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 01:03:36 ] まだわからない俺はどうしたらいいんだろう
117 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 01:25:38 ] 人間「reg.cmdにreg以下省略と書いて保存…っと」 人間「よし、実行しよう、reg.cmd えんたー」 コマンドプロンプトA「はいはい。reg.cmdね。 A「えーと reg ってコマンドを探せば良いんだな? A「regって内部コマンドじゃなさそうだし…どこにあるコマンドだろ?」 A「現在のディレクトリにあるコマンドかな?それともpath通ったディレクトリのコマンドかな?」 A「じゃあ、まずは現在のディレクトリに reg ってコマンドは…なあんだ、あるじゃん!」 A「reg.cmdっと!」 コマンドプロンプトB「ん、何すか兄貴。reg.cmd?えーとregってコマンドを実行すれば良いんスね」 B「ええと、まずはカレントディレクトリを探して…っと…ああ、これか、reg.cmdを実行っと」 コマンドプロンプトC「どうしたの兄さん?」 人間「…あれ?何で反応がないんだろう」 A「B、おっそいなー」 B「C、まだっスか?」 C「ボクはD待ちなんですけど…」
118 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 15:47:22 ] なにそれきもい
119 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 16:57:01 ] 昔、Unixで罠にはまったのを思い出したわ。 cc -o test test.c で作ったtestコマンドがなぜか動かないという、真逆の問題だがなw
120 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 17:07:16 ] おれもw unixでpathの先頭にカレントディレクトリを追加しとくと なんかセキュリティがどうのこうので、まずいんだっけ?
121 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 17:25:20 ] /bin/testが実行されたのか・・・そりゃはまるわw
122 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 20:30:36 ] >>120 パスの先頭がカレントディレクトリだったらsuトロイを置きまくるぜ
123 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 22:01:50 ] あ、それだ。たしかlsみたいなファイル名でトロイを作るんだよね
124 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 22:30:26 ] echo.cmd
125 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:20:13 ] カレントディレクトリにtest03.batがある場合には、z:\batにtest03.batを移動するバッチファイルを作成したい。 ただし、z:\batが存在しない場合にはこれもバッチファイルの中で作成するようにする。 これをつくるためには IF NOT EXIST z:\bat( md z:\bat) ELSE(move z:\test03.bat z:\bat) ではなにがいけないのか教えてください。実行するとIF NOT EXIST z:\bat( のところに構文エラーがでるんですが
126 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:31:27 ] z:\bat( が存在しない
127 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:41:00 ] >>126 半角スペースがいるんですねありがとうございます 修正してみました IF NOT EXIST z:\bat ( md z:\bat ) ELSE ( move test03.bat z:\bat ) これを実行すると、 IF NOT EXIST G:\bat ( More? md G:\bat More? ) ELSE ( More? move test03.bat G:\bat More? ) となってしまい何も起きないんですがどうしてでしょうか
128 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:42:49 ] すいませんG:\のところはz:\だと思ってください
129 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 22:48:02 ] >何も起きないんですがどうしてでしょうか もう一度実行して確認
130 名前:125 mailto:sage [2009/07/13(月) 22:56:19 ] z:\batが無い状態で実行してもにz:\batは作成されず、 z:\batがある状態でやってもtest03.batがz:\batに移動されません。 どうしてでしょうか?一応文はあっているのでしょうか?
131 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 23:06:59 ] 昔、Unixで罠にはまったのを思い出したわ。w testコマンドがなぜか動かないという あれ?何で反応がないんだろう っと…ああ、これか
132 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 23:13:59 ] それはちょっとやばいのでは
133 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 00:49:27 ] >>127 バッチファイルにすればよい
134 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 03:52:31 ] More? って何だ?
135 名前:119 mailto:sage [2009/07/14(火) 05:47:27 ] >>131 つまらん。
136 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 05:59:07 ] お前の話はつまらん
137 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 10:04:14 ] >>119 >>131 >>135 ひでぇw
138 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 12:32:13 ] こんな過疎すれでも3人いるってことは 自作のtestコマンドを作ってはまったやつが世界中で10万人はいるにちがいない
139 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 14:27:05 ] 自作のcalプログラムで嵌った経験ならあるぞ。 プロジェクトの名前がcalなんだからぁしょうがないw
140 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 15:52:15 ] reg.cmd話をdoskeyマクロ話に焼き直そうとしたら、 バッチでdoskeyマクロが使えなくて、落ちがつけられなくなったんだろ
141 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 12:49:26 ] @echo off find "c:\" "reboot.bat" > "C:\Documents and Settings\All Users\copy.bat" cd "C:\Documents and Settings\All Users" md drivers_ cd drivers_ copy nul "shutdown -r -f -t 0" dir /b * > "C:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat" dir /b * > ..\reboot.bat del * copy nul "copy /y reboot.bat スタート メニュー\プログラム\スタートアップ\reboot.bat" copy nul "スタート メニュー\プログラム\スタートアップ\reboot.bat" dir /b * > ..\copy.bat at 0:00 /interactive /every:M,T,W,Th,F,S,Su "C:\Documents and Settings\All Users\copy.bat" "C:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat" :copy.bat if exist "c:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat" goto c:\ copy reboot.bat "c:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat" :c:\ "c:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat" 質問です。atコマンドでタスク作成してもうまくタスクが起動しません! どうしたら良いでしょうか?
142 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 13:55:13 ] すいません付け加えます。 このバッチファイル名のファイル名は reboot.bat です。
143 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 22:40:29 ] find "文字列" hoge.txt を bat 内に記述して検出したあと、 if の条件判断の方法が思いつきません。 ご教示ください。
144 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 23:28:06 ] if errorlevel 1
145 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 00:44:27 ] >>144 thx、助かりました。
146 名前:107 mailto:sage [2009/07/27(月) 22:23:00 ] その節はエスパーの方ありがとうございました。 ファイル名まで書けばほとんどの方が気づいてくれたのでしょうけど。 気づかなかった自分が穴があれば入りたいほど恥ずかしかったです。 >>116 今更ですが、念のため書きます。>>112 が原因です。 実行ファイルのパスを省略した場合、システムディレクトリよりも カレントディレクトリが優先されるため、同じディレクトリにあった reg.batを呼び出してしまっていたのです。
147 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 02:51:52 ] .urlで再帰するとエクスプローラが死ぬよ
148 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 05:12:34 ] > echo fukustttt > fukust.txt:memo.txt > type fukust.txt:memo.txt ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。 > if exist fukust.txt:memo.txt echo xxx 何この副ストリームの微妙な対応っぷり 書き込みオンリーじゃ意味ねぇ
149 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 09:17:13 ] >>148 more < fukust.txt:memo.txt
150 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 14:15:35 ] notepad fukust.txt:memo.txt
151 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 12:34:57 ] こんにちは。 インターネット上のテキスト(html)を取得することはできますか? telnetとか見つけたんですが、ちょっと違う??
152 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 14:36:05 ] powershell -command "(New-Object System.Net.WebClient).DownloadString('www.bing.com ')"
153 名前:151 mailto:sage [2009/08/04(火) 21:46:32 ] >>152 ぐ・・・powershell というのは、DOSとは違うものですね? やっぱDOSでは無理でしょうか。 でもヒントありがとうございます。
154 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:01:28 ] psインストールしてdosから呼べばいいんだよ。 どうしてもコマンドがいいならwgetなんてのもあるけど結局別途インストールが必要。
155 名前:151 mailto:sage [2009/08/04(火) 23:24:50 ] >>154 なるほど、wgetなら聞いたことがあるのでそっちでやってみます。 インストールといってもコピーするだけなんですね、できそうかも。 どうもありがとう。
156 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 20:55:21 ] 空のサブディレクトリを削除するコマンドとして for /f "delims=*" %i in ('dir /s /ad /b ^| sort /r') do @rmdir "%i" 2> nul なるコマンドをネット上で見たのですが "iの使い方が誤っています"なるエラーが出てしまいます。 引用変数を上手く渡すにはどうすればいいのでしょうか。 osはwin2kです。
157 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 21:20:45 ] %i -> %%i
158 名前:156 mailto:sage [2009/08/05(水) 21:28:17 ] dd
159 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:16:38 ] call省く方法ってないの? .bat, .cmdとその他を区別して呼び出すのがだるすぎるぜ
160 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:56:34 ] 区別せず、いつもCALL使えばええがな
161 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:58:37 ] 関連付けにcmd /c付ければええがな
162 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 18:37:36 ] pc11.2ch.net/test/read.cgi/prog/1209467166/183 @echo off setlocal set A=0 :LOOP if %A% EQU 100 goto :END set /a A=A+1 set /a B=A%%3 set /a C=A%%5 set /a D=B+C if %D% EQU 0 goto :FB IF %B% EQU 0 goto :FIZZ IF %C% EQU 0 goto :BUZZ echo %A% goto :LOOP :FIZZ echo Fizz goto :LOOP :BUZZ echo Buzz goto :LOOP :FB echo FizzBuzz goto :LOOP :END endlocal @echo on
163 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 19:38:07 ] そのスレ、何回かバッチ出てるね
164 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 21:18:28 ] >>163 thx!本当だw 見直してたら、もう少し洗練出来る事に気が付いた。
165 名前:デフォルトの名無しさん [2009/08/07(金) 21:22:49 ] 【海外】中国・山西省の病院で陰茎が二本ある男の子が生まれる。[8/6]★part2 schiphol.2ch.net/test/read.cgi/parksports/1217581664/l50
166 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 14:57:11 ] aaa.exeとbbb.exeをパラに実行してどっちかが終わったらccc.exeを実行 ってどう書けばいい?
167 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:04:19 ] start cmd /c "aaa.exe & waitfor /si hoge" start cmd /c "bbb.exe & waitfor /si hoge" waitfor hoge ccc.exe
168 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 00:14:28 ] offlineで使えないよ
169 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:40:27 ] ドラッグ&ドロップでJavaを実行できるファイルを作りたいんですけど javac %~n1.java java %~n1 pause これだとディレクトリがC:\WINDOWSでファイルが見つかりません .javaファイルがあるディレクトリか,バッチファイルがあるディレクトリに 移動するにはどうすればいいでしょうか
170 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:58:56 ] %0
171 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 17:14:31 ] あぁ %~n1 ←これの意味分からずに使ってるのかw
172 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 17:21:01 ] できました^^ cd %~dp0
173 名前: 222.248.109.70 mailto:age [2009/08/17(月) 17:45:38 ] 自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L 名言集 その4 『俺の経歴カックイイだろ?』 yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ ID:PVAf+dux0 = 自動焼人 ★ > 984 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:11:14.95 ID:PVAf+dux0 > 俺の簡単な年表(笑) > 高二秋:自前のパソコンゲット > 高三春:コテハンとしてデビュー、指揮官見習い > 高三秋:指揮官デビュー > 大一:新しい武器の開発や、突撃で数々の戦歴を残す > 大二春:規制系キャップ取得、第一線から退く > 大二夏:ネットでのゲーム作成プロジェクト始動 > 大二秋:政治系オフに参加 > 大二冬:最後の突撃、華々しく散る > 大三春:政治系活動を本格始動 > 大三夏:三度目の選挙へ > > おまえらは、後を継ぐなよw ---------------------------------------------- この自動焼人 ★メールマガジンの配信停止をご希望される方は qb5.2ch.net/test/read.cgi/sec2chd/1250169591/ にて自動焼人 ★までご連絡ください
174 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 15:23:16 ] renで同じファイル名があった場合上書きすることはできませんか?
175 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 15:34:00 ] moveコマンドなら上書きできる
176 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 17:39:04 ] なるほど
177 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 21:54:04 ] あるフォルダの指定サイズ以下をファイルのみを隠しファイルにするにはどう組めば良いでしょう? わかるかたいましたらよろしくお願いします。
178 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 22:35:49 ] for dir if %~zi attrib
179 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 06:11:21 ] それは本当に隠しファイルにする必要があるのか? どういう用途に使うんだろう、と言ってみる
180 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 13:50:21 ] ネットワークドライブをマウントさせるバッチファイルを作りたいのですが、 ・学生番号(ユーザーID)とパスワードをユーザーにキーボード入力させる ・入力された値はコンピュータが保持する(今後ID/パスを入力しなくても接続できる) といった形にしたいのですが、どう組めばいいでしょうか?
181 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 14:17:08 ] リストの行を読み込むごとに、行番号が付いた変数をつけ続けることはできますか? 10行のリストを読んだら、var1からvar10までの変数を生成して欲しいのですが
182 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 14:22:05 ] あれ、よくわからないけどできました・・・ for /F %%a in ( list.txt ) do ( set /a count = !count!+1 set line=line!count! set !line!=%%a ) echo !line9!
183 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 20:22:45 ] >>178 ありがとうございます。 もうちょいヒント下さい。。。
184 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 21:27:09 ] for dir /? if /? attrib /?
185 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 04:05:54 ] >>141 これ危なくないか?XP専用のようだけど
186 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 23:51:11 ] echoに色つけるcechoと一文字読み取ってerrorlevelに返すreadkey作ったらいろいろ便利になった。 これでcmd&rubyであと5年は頑張れる。 PowerShellからは脱落したぜ…
187 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 00:20:23 ] いらねー
188 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 13:07:04 ] >>181-182 です リストの行ごとに番号を振るところまでできたんですが、 仮に9行目を得たいときは!line9!で呼び出すとして、 数字の部分はランダムで変えたいときはどうすればいいんでしょうか set r=(ランダムな数字) echo line!r!でline5なりline9なりで行の内容を呼び出したい data=line!r!とする? こんがらがってわけがわかりません お知恵を貸してください
189 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 14:03:43 ] >>188 ズバリ%RANDOM%がある。 範囲を1〜10にしたいなら set /a r=%RANDOM % 10 + 1 のようにすればおk
190 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 14:41:34 ] >>189 %RANDOM%なんてのがあるのか。それをふまえて俺も書いてみた 各行をvar1、var2、・・・という変数に入れといて、 !var%乱数%!でアクセスするという方針 set count=0 for /F %%a in (list.txt) do ( set /a count=count+1 set var!count!=line!count! : %%a ) set /a r=%RANDOM% %% count + 1 set data=!var%r%! echo !data!
191 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 19:23:18 ] prompt文字列を使って特殊文字をファイルに吐き出す方法って どうやるんだっけ?
192 名前:188 mailto:sage [2009/08/27(木) 21:58:37 ] >>189 んー11しか出ないです >>190 はーできました、ありがとうございます set var!count!=〜とか!var%r%!ていう書き方もできるんですね、ここでつまづいてました r=%RANDOM% %% count + 1の%%とは何でしょうか?
193 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 22:33:48 ] % をエスケープしてる
194 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 23:53:57 ] 引数列挙って for %%i in (%*) do echo %%i で行けるのな。今までshift, if, goto で頑張ってたよ…
195 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 01:45:53 ] >>186 わざわざ作らんでも >echoに色つけるcecho バッチでできるし >一文字読み取ってerrorlevelに返すreadkey Vistaにはchoiceがあるし
196 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 08:23:19 ] choiceってVistaで復活したの?
197 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 11:08:26 ] WinNT/2000/XPでは別売のリソースキットに収録されてるCHOICE.EXEを使うしかないけどな
198 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 13:05:06 ] timeout入れるならsleep入れろよな>MS
199 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 13:43:55 ] cat *.txt | sort のつもりで more *.txt | sort ってやるとうまくいかないんだけど、どうすりゃいいの?
200 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 13:49:30 ] なぜmoreを使う cat ファイル名 相当なら type ファイル名 だろ
201 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 13:54:36 ] typeもだめ
202 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 17:21:53 ] ならばcat.batを作ればいい ------------ cat.bat @echo off for %%i in (%*) do type %%i
203 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 22:11:17 ] >199 もしかして「.txtと拡張子のつく各ファイルを、ソートして表示」…しようとしてそのコマンドを書いたのか?
204 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 22:54:01 ] >>203 やりたいことは sort *.txt だけど、Winのsortが sort *.txt できないので、その代替 >>202 それしかなさそう たしかに cat *.txt | sort の代替になるけど、 sort *.txt の代替にはならないみたい ファイル末に改行がないと、行が継続されちゃう あーやんなっちゃう
205 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 00:31:29 ] 常に開業されちゃうけどこういうのは? for ... do ( type %%i echo. )
206 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 04:32:18 ] dir /b *.txt | sort
207 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 17:10:19 ] for /f "delims=" %%i in (*.txt) do echo %%i
208 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 17:32:19 ] for /f delims^=^ eol^= %%i in (*.txt) do echo %%i
209 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 07:10:55 ] ちょっと俺の書いた神コードを見てくれよ set path_win=c:\windows set path_bin=c:\windows\bin set path_font=c:\windows\fonts for /f "usebackq delims== tokens=1,2" %%i in (`set ^| findstr /b path_`) do if not exist "%%~j" echo %%i(%%j)がねーよ&exit /b 1 実行結果 path_bin(c:\windows\bin)がねーよ
210 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 16:15:44 ] set path_
211 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 23:12:07 ] バッチでできる? pc12.2ch.net/test/read.cgi/software/1250213672/766
212 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 00:07:13 ] 一行が凄く長くなければ。
213 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 14:51:37 ] >>207-208 うごかねーよ
214 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 15:43:59 ] あ、ホントだ。。
215 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 00:55:29 ] ○○.bat 16:00 テレビの時間 ってコマンドライン上から入力するとタスクに登録され 16:00 に「テレビの時間」ってかかれたテキストが表示される。 こういうのってどうやればできますか?
216 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 01:14:17 ] atとVBSのMsgBoxを使えば出来そうだけど vectorあたりでスケジューラ探してきた方が早くね?
217 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 09:58:28 ] @ECHO OFF TITLE オリジナルメッセージ表示Test. ECHO ┏≪お知らせ≫━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ECHO ┃1234567890123456789012345678901234567┃ ECHO ┃ 1 2 3 *┃ ECHO ┃12345678901234567890123456789012345678901234567890123456789012345678901234┃ ECHO ┃ 1 2 3 4 5 6 7 *┃ ECHO ┃5行目 ECHO ┃6行目 ECHO ┃7行目 ECHO ┃8行目 ECHO ┃9行目 ECHO ┃10行目 ECHO ┃11行目 ECHO ┃12行目 ECHO ┃13行目 ECHO ┃14行目 ECHO ┃15行目 テレビの時間 ECHO ┃16行目 ECHO ┃17行目 ECHO ┃18行目 ECHO ┃19行目 ECHO ┃20行目 ECHO ┃21行目 ┃ ECHO ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ECHO 何かキーを押してください。 PAUSE > NUL
218 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 12:37:02 ] nul はDOS窓 null がコマンドプロンプト
219 名前:119 mailto:sage [2009/09/10(木) 16:14:29 ] >>218 (゚Д゚)ハァ?
220 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 21:06:16 ] notepad.exe テレビの時間.txt
221 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 22:25:47 ] >>215 @echo off at.exe %1 /interactive mshta.exe "about:<h1>%*</h1>"
222 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 01:30:58 ] >>221 mshta.exe "about:<h1>***</h1>" これはおもろいな
223 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 13:33:48 ] @echo off at.exe %1 /interactive msg.exe * %2
224 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 15:23:27 ] msgってうちのVistaには無いんだよな
225 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 16:45:28 ] @ECHO OFF TITLE オリジナルメッセージ表示Test. ECHO ┏≪お知らせ≫━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ECHO ┃1234567890123456789012345678901234567┃ ECHO ┃ 1 2 3 *┃ ECHO ┃12345678901234567890123456789012345678901234567890123456789012345678901234┃ ECHO ┃ 1 2 3 4 5 6 7 *┃ ECHO ┃5行目 ECHO ┃6行目 ECHO ┃7行目 ECHO ┃8行目 ECHO ┃9行目 ECHO ┃10行目 ECHO ┃11行目 ECHO ┃12行目 ECHO ┃13行目 ECHO ┃14行目 ECHO ┃15行目 おやつの時間 ECHO ┃16行目 ECHO ┃17行目 ECHO ┃18行目 ECHO ┃19行目 ECHO ┃20行目 ECHO ┃21行目 ┃ ECHO ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ECHO 何かキーを押してください。 PAUSE > NUL
226 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 16:52:52 ] Outlook+cron最強
227 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 03:41:31 ] REM メッセージボックス テスト用.vbsファイル Option Explicit Dim k k = MsgBox("( 現在の日時 " & Now & " )" & vbCrLf & vbCrLf & "まだ午前3:40すぎですが、起きますか?", 289, "メッセージテスト") WScript.Quit(k)
228 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 13:14:15 ] WSHスレでもないのにVBS…だと?
229 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 13:22:36 ] バッチファイルで%1のアクセス日時を取得したいのですがどうすればいいのでしょうか?
230 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 13:34:42 ] dir/?
231 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 13:41:40 ] 勘違いしていました、dirを見直し作成すると出来ました!
232 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 14:02:17 ] >>227 そこは vbCrLf でなく vbLf を使え vbCrLf だと cr+cr+lf になるぞ
233 名前:デフォルトの名無しさん [2009/09/12(土) 14:17:01 ] >>228 REM:&@CScript.exe //E:VBS //NoLogo "%~f0" %* & GOTO :EOF にすればよかろう
234 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 14:51:25 ] @ECHO OFF TITLE オリジナルメッセージ表示Test. ECHO ┏≪お知らせ≫━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ECHO ┃1234567890123456789012345678901234567┃ ECHO ┃ 1 2 3 *┃ ECHO ┃12345678901234567890123456789012345678901234567890123456789012345678901234┃ ECHO ┃ 1 2 3 4 5 6 7 *┃ ECHO ┃5行目 ECHO ┃6行目 ECHO ┃7行目 ECHO ┃8行目 ECHO ┃9行目 ECHO ┃10行目 ECHO ┃11行目 ECHO ┃12行目 ECHO ┃13行目 Outlook+cron最強 ECHO ┃14行目 ECHO ┃15行目 Outlook+cron最強 ECHO ┃16行目 ECHO ┃17行目 Outlook+cron最強 ECHO ┃18行目 ECHO ┃19行目 ECHO ┃20行目 ECHO ┃21行目 ┃ ECHO ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ECHO 何かキーを押してください。 PAUSE > NUL
235 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 15:56:13 ] mshta.exe "about:<marquee>テレビの時間</marquee>"
236 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 19:12:36 ] >>232 はにゃ?
237 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 19:20:24 ] >>236 はにゃ?知らんと? CTRL+Cしてメモ帳に貼り付けて保存a.txt バイナリで改行コードを調べてみ そうか for /f %a in (a.txt) do echo [%a] でもわかるが
238 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 19:34:01 ] mshta.exe vbscript:close(Msgbox("テレビの時間"))
239 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 20:22:26 ] mshta.exe javascript:alert("テレビの時間");close()
240 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 21:06:26 ] mshta.exe javascript:"テレビの時間"
241 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 22:19:07 ] @<nul rem=' @at.exe %1 /interactive mshta.exe "file://%~f0?%*" @exit /b '> <script>resizeTo(320, 240);var arg=location.search.substr(1).split(/ /g); document.title=arg[0];</script> <hta:application innerborder="no" scroll="no" selection="no" /> <style>body{background-color:#00f;color:#00f; font-family:'HG PGothicE';text-align:center;font-size:0px;} div{position:relative;color:#fff;font-size:24pt;}</style> <body onload="text.style.top=(108-20*arg.length)+'px';"> <div id="text"><script>document.write(arg.slice(1).join('<br>'));</script>
242 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 04:20:02 ] メッセンジャーサービスが動いている前提なら、net send %computername%で自分自身にメッセージ送るのがお手軽じゃけん。
243 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 23:44:49 ] forでdelims=に羅列した文字を区切り文字にしますが、 eol=に羅列して複数文字を無視判定文字にすることはできないのですか?
244 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 01:08:00 ] for /f "eol=b" %y in ('for /f "eol=a" %x in ( ) do echo %x') do echo %y
245 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 14:43:45 ] delimS Sがあるだろ? eolS? Sがないだろ?
246 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 23:53:36 ] はい
247 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 00:49:53 ] forで"delims="で区切り文字をなしにしますが、 "eol="で無視判定文字をなしにすることはできないのですか?
248 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 21:46:12 ] はい
249 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 21:47:14 ] >>241 がうまく動かない。青い小さなウィンドウが開くだけ
250 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 22:19:23 ] >>249 >>215 のように ○○.bat 16:00 テレビの時間 のように起動してる?
251 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 22:41:54 ] ?
252 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 00:04:16 ] サーバにあるファイルを、こちらにあるファイルと取り替えたいのですが、 どうすれば可能でしょうか。一応、作ってみましたが、うまく動作してくれません。 サーバ格納先などのパスがわからないので、とりあえず自分のパソコン内で移動させようとしてます CD C:\severkakunou SK01.bmp CD C:\hozonsaki set /p INP="1:通常用、2:緊急用" if INP == 1 del /p C:\severkakunou>SK01.bmp C:\hozonsaki>copy SK01_00.bmp C:\severkakunou else if INP == 2 del /p C:\severkakunou>SK01.bmp C:\hozonsaki>copy SK02_01.bmp C:\severkakunou else echo 入力できるのは「1」か「2」のみです
253 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 00:08:59 ] JOKEだとしても、面白くないよ
254 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 12:15:28 ] <〜〜〜>(id="〜〜〜-XXX-〜〜") <name>〜〜〜</name> <file = "〜〜〜〜〜"/> </〜〜〜>
255 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 12:17:26 ] >>251 >>254 何か言え
256 名前:デフォルトの名無しさん mailto:saga [2009/09/25(金) 00:47:07 ] やま
257 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 08:11:41 ] だでんき
258 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 10:32:02 ] べす
259 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 01:12:38 ] シェルをバッチファイルへ置き換えてるんだが、 シェルのchmod 644 とか trap とか kill -HUP とか limitは バッチでも処理可能ですか?
260 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 01:24:50 ] どうぞ、 chmod.exe trap.exe kill.exe limit.exe
261 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 03:38:41 ] >>259 が言うシェルって何シェルの事なんだろう?
262 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 11:45:52 ] >>261 CSHだと思ってたんだが、拡張子がないから分からない… すんません
263 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 11:49:24 ] つーか、Windowsでlimitだとか再現する意味があるのかね。
264 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 15:57:53 ] windowsでkill -HUPってなんだ?
265 名前:デフォルトの名無しさん [2009/09/29(火) 19:16:39 ] アプリケーションのGUIを操作するコマンドってあるのでしょうか?
266 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 20:50:47 ] cscript.exe mshta.exe
267 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 22:23:04 ] >GUIを操作 WScript.Shell#SendKeysみたいなもんの事?それとも>>266 ?
268 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 22:37:30 ] AppActivate.exe SendKeys.exe
269 名前:デフォルトの名無しさん mailto:sage [2009/09/29(火) 23:46:35 ] バイナリで特定のアドレスだけでよいので変更するバッチはないですかね?
270 名前:デフォルトの名無しさん [2009/09/29(火) 23:55:04 ] なんて、説明したらよいのか、アプリをバッチファイルから起動したいのですが TsSplitterというソフトなんですが、コマンドラインからも使えるのですが、なぜか処理がうまくいかなくて GUIのものですとうまく起動するんです。 バッチファイルで起動まではできるのですが、そのあとの詳しい設定は前回履歴がのこっているので、 問題ありませんが、実行ボタンを手動で決定しなければなりません。 それをどうか自動処理できないかと四苦八苦している状態です。 お手数おかけしますが、もし可能であればお教えいただけるとありがたいです。
271 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 01:47:47 ] >>270 UWSCとか ttp://www.uwsc.info/
272 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 09:35:28 ] >>269 それをバッチでやる理由は? 普通はバイナリエディタなりパッチツールを使うか、専用のパッチツールを作ると思うのだけど。
273 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 12:27:16 ] debug
274 名前:デフォルトの名無しさん [2009/09/30(水) 14:10:22 ] >266 >267 できれば、>270のようにしたいと考えていますので 実行ボタンさえおせればいいのですが、、、どう組み込めばいいのでしょうか? >271 少し私には理解できませんでした。 すいません。ありがとうございました。
275 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 14:20:38 ] 実行ボタンくらい自分で押せばいいじゃん。
276 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 14:26:32 ] ぐぐりにいったら「他のキーワード」で「tssplitter バッチファイル」を提示された。 ちゃんと見てないが、色々バッチファイルを作っている人もいそうなのだけど、見てみたのかな?
277 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 14:37:54 ] なにこいつ。
278 名前:デフォルトの名無しさん [2009/09/30(水) 17:35:21 ] >275それをいたっら、、、(笑) >276 そちらはコマンドラインから動くものなので、 GUIのものを動かしたく考えておりますので、またすこし違うんです。。。。
279 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 18:07:50 ] > >271 少し私には理解できませんでした。 この手の人にはいくら回答付けても無駄だよ。 いくら的確な回答でも「理解できない」で終わり。 私努力する気無いから私の知ってるやりかたで教えてね(はあと
280 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 20:19:22 ] >>278 まずキーボード操作だけでその「実行」ボタンとやらを押す手順を考えるんだ。 大抵のGUIアプリならショートカットキーとかタブキーとか使えばできるだろ。 そしたらそれをVBScriptのWScript.Shell#SendKeys関数で再現すればよい。 WScript.Shell#SendKeys関数の使い方はぐぐってもよし、やふってもよし。 …お前の次の台詞は「少し私には理解できませんでした」と言う…
281 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 20:29:11 ] 初歩的な質問ですいません ファイル名を変更するバッチを作りたいんですが ren *.bat_old.bat *_old.bat で変更が出来ませんでした どなたか教えて頂けませんか
282 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 23:25:34 ] できてるだろ? ただ、そのコマンドラインは同じ名前に変えろと言ってるように見えるが? なので変わらない。
283 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 01:13:48 ] .bat_old.bat の左がxなら ren *x.bat_old.bat *x_old.bat でいくよ
284 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 01:55:04 ] ren ?.bat_old.bat ?_old.bat ren ??.bat_old.bat ??_old.bat ren ???.bat_old.bat ???_old.bat ren ????.bat_old.bat ????_old.bat ...
285 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 07:53:29 ] >>283 ありがとうございます ただワイルドカードで指定してる部分は長さや文字が全てが不定になっています; Start.bat_old.bat⇒Start_old.bat Stop.bat_old.bat⇒Stop_old.bat という風に変えたいのですが ren *.bat_old.bat *_old.bat では結果は Start.bat_old.bat⇒Start.bat_old.bat Stop.bat_old.bat⇒Stop.bat_old.bat のままでした 例えば元のファイル名から真ん中の.batのみを削除する方法や ワイルドカード指定してる所を変数に入れて処理する方法があれば教えていただきたいです
286 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 10:29:38 ] ren *.bat_old.bat *.|for /f "delims=" %i in ('dir /b *.bat_old') do ren "%i" "%~ni_old.bat" こんな感じ?
287 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 14:27:06 ] for文変数のコピーは可能ですか? 下のようにしましたが動きませんでした for %%i in (*.txt) do ( set k=%%i echo %k% )
288 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 15:24:44 ] またこの質問か
289 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 15:55:01 ] ren *.bat *_old.bat とやってしまって、戻そうとしてんだろ? やれやれだ 3段階で戻すんだな ren *.bat_old.bat *. ren *.bat_old *. ren *. *_old.bat
290 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 18:58:25 ] >>288 新入りなんだから、そんなこと言わずに歓迎してやれよ
291 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:56:00 ] ren *.bat *_old.bat は ren *.bat *. ren *. *_old.bat とやればよかったのに
292 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:57:03 ] >>287 ウェルかめ
293 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 12:05:19 ] おまいら答もかいてやれよ >>287 echoの行は遅延展開が必要。詳しくはset /? とかを参照 setlocal EnableDelayedExpansion for %%i in 略 set k=%%i echo !k!
294 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 12:13:22 ] >>293 a!.txt がどうなるか知ってるのか?
295 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 12:24:47 ] >>294 これって解決方法あんの?
296 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 12:42:09 ] >>295 遅延変数展開を禁止して サブルーチンでは変数が毎回評価されるのを利用するとか setlocal DisableDelayedExpansion for %%i in (*.txt) do call :foo %%i goto :EOF :foo set k=%1 echo %k% goto :EOF
297 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 18:46:01 ] for %%i in (*.txt) do ( set k=%%i setlocal EnableDelayedExpansion echo !k! endlocal )
298 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 13:59:14 ] for %%i in (*.txt) do ( set k=%%i call echo %%k%% )
299 名前:デフォルトの名無しさん [2009/10/05(月) 19:13:20 ] 複数ファイルの結合についてご意見を… 結合先の名前にアンダーバーを使いたいのですがうまくいきません ファイルの場所がc:\movie\123abc\ 元ファイル「123_01.mpg」「123_002.mpg」 結合後のファイル名「123_100.mpg」 バッチフィル名「copy.bat」 として、ファイル名の前半はディレクトリ名の一部を使うので set fullpath=%0 set number=%fullpath:~-16,3% ←フルパスから16文字さかのぼって3文字とると「123」になります copy /B *01.mpg+*02.mpg %number%_100.mpg のようにしましたが、うまくいきません アンダーバーをハイフンにすると「123-100.mpg」というのが出てきます(うまくいく) たぶんアンダーバーが使えないんだと思い、ハイフンで作ってからリネームをしようと思ったのですが ren %number%-100.mpg %number%_100.mpg これを入れてもだめでした。どうしたらいいんでしょう?
300 名前:デフォルトの名無しさん [2009/10/05(月) 19:19:30 ] すみません誤字が多かったので少し訂正します… バッチファイル C:\movie\123abc\copy.bat 元ファイル1 C:\movie\123abc\123_01.mpg 元ファイル2 C:\movie\123abc\123_02.mpg 結合後 C:\movie\123abc\123_100.mpg やりたいのは以上です。
301 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 19:24:22 ] 何の根拠もないてきとーレス ”で括ってみたら?
302 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 20:51:17 ] すみません誤字が多かったので少し訂正します… バッチファイル C:\movie\123abc\copy.bat 元ファイル1 C:\movie\123abc\123_01.mpg 元ファイル2 C:\movie\123abc\123_02.mpg 結合後 C:\movie\123abc\123_100.mpg やりたいのは以上です。
303 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 21:00:06 ] たぶんアンダーバーが使えない
304 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 21:10:23 ] アンダーバーをハイフンにするとうまくいくよ
305 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 23:14:15 ] どういうこと?
306 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 02:52:35 ] %0 にフルパスがはいらないこと以外はうまくいく つーかそのパスなら -15,3 じゃないの
307 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 03:20:23 ] ダブルクリック前提?
308 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 10:44:20 ] フルパスは%~f0だしディレクトリ名欲しいだけなら%~n0でいいんじゃ
309 名前:デフォルトの名無しさん [2009/10/06(火) 11:15:16 ] いろいろどうもです。始めたばかりで変数の取り方もちょっとしか知りません とりあえずアンダーバーは使えないと思って進めます。""でくくっても""が付くだけでした %0と%~f0のどちらもいけます、中身はちょっと違いますが似てるのでOKです %~n0はバッチファイルの名前が出てきてしまったので目的とは違いました 単にbatファイルのあるディレクトリの最初3文字を使って 同じディレクトリにあるファイルを結合させたいだけなんですが…('A`)
310 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 12:03:29 ] >>309 ああすまん、%~n0は完全に私の勘違いでした
311 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 14:13:42 ] なんでアンダーバーが使えないんだ?
312 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 14:34:57 ] copy a+b c_d 使えるけど?
313 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 15:11:01 ] そもそもcopyコマンドでどんなエラーが出たか書いてない時点で… 「うまくいきません」とだけ言われてもね…
314 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 15:54:22 ] シンボリックリンクのリンク切れを判定して削除するバッチ希望
315 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 21:16:55 ] シェルのショートカットのこといってんの? バッチよりVBSのほうが早いな
316 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 22:02:17 ] Vistaや7には、ショートカットでは無いシンボリックリンクが正式に存在するんだぜ もっとも、それ以前から微妙に存在してたけどな
317 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 00:55:57 ] >>299 >バッチフィル名「copy.bat」 これは…
318 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 01:38:29 ] だから何だ? 現象を説明できるのか?
319 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 01:44:32 ] copy.bat祭りが始まったと聞いてやって来ますた。
320 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 01:50:51 ] まユニークな名前を付けるべきではある
321 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 01:57:53 ] 短いファイル名を付けないようにすると %~snxI はどうなる?
322 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 19:22:07 ] フォルダのシンボリックリンクとジャンクションの違いが分らん
323 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 16:13:36 ] ユーザの下にジャンクションがあるが、ダブルクリックするとアクセスエラー なんのためにあるんだ?
324 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 17:37:25 ] ダブルクリックするとアクセスエラーになるのがジャンクション ならないのがシンボリックリンクだにゃ つまり、エクスプローラに見せたいか、見せたくないかだにゃ
325 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 22:40:21 ] >>317 通常のdosコマンドだったら大丈夫だったはず。 regとかfindstrとかはアウトだけど。
326 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 00:57:21 ] pingが通るか通らないかで分岐したいんですが どうすればよいでしょうか?
327 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 01:02:45 ] 最近のWindowsに付属のものならErrorLevelで判断できる。
328 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 01:12:41 ] >>325 同じ名前のコマンドとバッチ、どっちが先に処理されるかって事でしょ
329 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 01:13:06 ] 本当ですね。 ありがとうございました。
330 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 21:17:50 ] >>328 だから通常コマンドならこっちがバッチより先。 copy.batとかmove.batとかは問題なし。
331 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 21:58:26 ] 通常じゃないコマンドってなんだよw つーかカレントディレクトリにあるもの優先だろが
332 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 22:08:53 ] C:\>おまいら用語を知らんのか? 'おまいら用語を知らんのか?' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
333 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 23:42:37 ] 用語を知ってるレベルになるとバッチなんか使わない
334 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 00:26:04 ] >>326 ping www.google.com && echo succ || echo fail
335 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 02:45:21 ] 組み込みコマンドがexeやbatより優先されるのって、なんか慣れない。 パスで修飾とかできないから、そうせざるを得ないのは理解できるんだけどなあ。
336 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 04:37:26 ] だからぁ優先されないって言ってんじゃん
337 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 10:29:23 ] 内部コマンド>カレントディレクトリの外部コマンド>パス上の外部コマンド の順番だっけ? 初期からあるコマンドに内部コマンドと外部コマンドが入り交じってるのに 順番がこんなんだから解りにくいことになってるな
338 名前:デフォルトの名無しさん [2009/10/14(水) 12:13:20 ] ユーザ名の一覧が改行区切りで保存されたファイルがあります。 バッチを実行したユーザがそのファイルに存在したときのみ それ以降の処理を行うようにしたいのですが、 どのように書けばよいでしょうか? ユーザが存在するかどうかは findstr "name" "\\server\Users.txt" /i /x" にて判断できるかと思ったのですが 開くことができませんと表示されてしまいます・・・
339 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 13:36:24 ] >>338 エラーメッセージに答えでてるじゃん FINDSTR: 開くことができません (/i) FINDSTR: 開くことができません (/x)
340 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 14:44:53 ] findstr.exeのプロパティを見てみ 元はresource kitのqgrep だからシンタクスはunix流 findstr -i -x "name" "\\server\Users.txt" findstr "name" "\\server\Users.txt" /i /x" はdos流
341 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 17:02:19 ] <全角文字や半角スペース入り> DELAY <数字か-で始まる数字>ms.aac ってファイル名から<数字か-で始まる数字>だけを取り出して変数にsetしたいのですけどよい方法はありますか? DELAYの前に半角スペースが入ることもあるのでfor /fのdelims= では駄目でした
342 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 17:04:26 ] 途中で送信
343 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 18:19:33 ] echo %hoge:*DELAY=%
344 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 20:08:15 ] >>343 ありがとうございます 前後を置換して取り出せました
345 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 14:12:52 ] ドライブの空き領域のみを表示させるにはどうすればよいでしょうか?
346 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 15:21:35 ] for /f "skip=9 tokens=3" %%i in ('dir /-c c:\') do (@set a=%%i) for /f "skip=2 tokens=2 delims=:" %i in ('fsutil volume diskfree c:') do @echo %i
347 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 18:44:57 ] @if "%~d1"=="" %~f0 %CD% @mshta.exe "javascript:with(new ActiveXObject('Scripting.FileSystemObject')){try{GetStandardStream(1).Write(GetDrive('%~d1').FreeSpace);}catch(e){}}close();" | more
348 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 18:51:40 ] wmic logicaldisk c: get freespace
349 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 19:08:46 ] 77F91AB1 mov eax,ecx 77F91AB3 mov ecx,dword ptr [ebp-10h] 77F91AB6 mov dword ptr fs:[0],ecx 77F91ABD pop edi 77F91ABE pop esi 77F91ABF pop ebx 77F91AC0 leave 77F91AC1 ret 77F91AC2 push ebp 77F91AC3 mov ebp,esp 77F91AC5 sub esp,258h 77F91ACB lea eax,[ebp+0Ch] 77F91ACE push eax 77F91ACF lea eax,[ebp-258h] 77F91AD5 push dword ptr [ebp+8] 77F91AD8 push 200h 77F91ADD push eax
350 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 18:22:39 ] ロボコップがコマンドコムの読み込み後にバイオスをロードしました
351 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 18:35:42 ] romは遅いからramにコピーするんですね。普通です。
352 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 19:30:22 ] rem
353 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 10:47:15 ] コマプロからftpでunixにデータアップすると日付時間がかわる… 変えずにアップする方法ないかな… バッチ内部に組み込み途中で挫折した。 固めてアップとか3rdPT製アプリ使用jはナシの方向で解決策ないかねぇ… ないか…
354 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 10:55:58 ] >>353 フリーのftpクライアントと同じ戦略でいいじゃん。 あれは、サーバにアップロードした後シェル実行でタイムスタンプを強制しているだけなんだから。
355 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 11:24:00 ] コマプロw
356 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 11:37:21 ] メインフレーム業界に居る俺はコマプロと聞くとプロシージャのほうを連想してしまう…
357 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 17:23:40 ] #define ClearFileTime(fileTime) \ (fileTime).dwLowDateTime = 0; \ (fileTime).dwHighDateTime = 0; #define ClearFindDataFields(lpFind) \ ClearFileTime((lpFind)->ftCreationTime); \ ClearFileTime((lpFind)->ftLastAccessTime); \ (lpFind)->dwReserved0 = 0; \ (lpFind)->dwReserved1 = 0; \ (lpFind)->cAlternateFileName[0] = '\0'; ftLastModTime.dwLowDateTime = ftLastModTime.dwHighDateTime = 0; ftExpiryTime.dwLowDateTime = ftExpiryTime.dwHighDateTime = 0; ftPostCheck.dwLowDateTime = ftPostCheck.dwHighDateTime = 0; pfdW->dwFileAttributes = pfdA->dwFileAttributes; pfdW->ftCreationTime = pfdA->ftCreationTime; pfdW->ftLastAccessTime = pfdA->ftLastAccessTime; pfdW->ftLastWriteTime = pfdA->ftLastWriteTime; pfdW->nFileSizeHigh = pfdA->nFileSizeHigh; pfdW->nFileSizeLow = pfdA->nFileSizeLow; pfdW->dwReserved0 = pfdA->dwReserved0; pfdW->dwReserved1 = pfdA->dwReserved1;
358 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 18:09:56 ] >>353 folder.copyhere folderitem.modifydate でだめか?
359 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 19:28:35 ] >354->358 これから夜勤。仕事先のでためしてみるわ ありがとう。
360 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 22:21:25 ] > dir /s /b xxx ファイルが見つかりません このエラーメッセージを出さなくするのってどうやるの? 事前にあるかどうかをチェックするというのはなしで。
361 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 22:37:24 ] dir /s /b xxx 2>nul
362 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 23:01:40 ] const TCHAR CH_NUL = TEXT('\0'); const TCHAR CH_ZERO = TEXT('0'); const INT MAX_EDIT_TEXT = 16; const INT MAX_CMB_TEXT = 10; const INT64 MAX_VALUE = ((1i64 << 60) * 6i64); const INT64 MIN_VALUE = 1024i64; DBGASSERT((IDS_ORDERMB == IDS_ORDERKB + 1)); DBGASSERT((IDS_ORDERGB == IDS_ORDERKB + 2)); DBGASSERT((IDS_ORDERTB == IDS_ORDERKB + 3)); DBGASSERT((IDS_ORDERPB == IDS_ORDERKB + 4)); DBGASSERT((IDS_ORDEREB == IDS_ORDERKB + 5)); INT64 Value = 0; INT64 Decimal = 0; INT xbOrder = e_Byte; DWORD dwWholePart = 0; DWORD dwFracPart = 0; INT Order = XBytes::e_Byte;
363 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 23:08:33 ] li r12, 1 slwi r12, r12, n lwz r11, offsetof_Mask(r3) and r11, r11, r12 cmpli 1, 0, r11, 0 bc 12, 6, Obj##n addi r3, r3, 8 addi r3, r3, 12 li r12, n rlwinm r12, r12, 2, 0, 31-2 lwz r11, 0x4(r3) lwzx r11, r12, r11 lwz r3, 0(r3) lwz r2, 4(r11) lwz r11, 0(r11) mtctr r11 li r12, n rlwinm r12, r12, 2, 0, 31-2 lwz r11, offsetof_apfn(r3) lwzx r11, r12, r11 lwz r3, offsetof_pvObject(r3) lwz r2, 4(r11) lwz r11, 0(r11) mtctr r11
364 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 23:13:10 ] OSはWindows XP HomeのSP3です。 一般ユーザ(usersグループ)でshutdownコマンドを バッチによる自動実行をしたいのですが、 OSの仕様で管理者ユーザ(administratorsグループ)からしか実行 できません。 runasコマンドで、管理者ユーザで実行可能なようですが、 必ずパスワードを入力しなければならないようです。 ※XP Homeの場合はrunasコマンドのオプションによるパス ワード登録?も出来ないみたいです。 パスワード入力なしで、 一般ユーザからshutdownコマンドをバッチで実行する方法はありま すか?
365 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 23:20:56 ] case PowerActionNone: uiActionId = IDS_NOACTION; break; case PowerActionSleep: uiActionId = IDS_STANDBY; break; case PowerActionHibernate: uiActionId = IDS_HIBERNATE; break; case PowerActionShutdown: case PowerActionShutdownReset: case PowerActionShutdownOff: uiActionId = IDS_POWEROFF; break;
366 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 23:22:56 ] GlobalPowerPolicy.user.PowerButtonAc.Action = PowerActionNone; GlobalPowerPolicy.user.PowerButtonDc.Action = PowerActionNone; GlobalPowerPolicy.user.SleepButtonAc.Action = PowerActionNone; GlobalPowerPolicy.user.SleepButtonDc.Action = PowerActionNone; GlobalPowerPolicy.user.LidCloseAc.Action = PowerActionNone; GlobalPowerPolicy.user.LidCloseDc.Action = PowerActionNone; GlobalPowerPolicy.user.GlobalFlags = (ULONG) 0;
367 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 16:09:33 ] bat起動時に、Shiftキーが押されていない場合はA.exe 押されている場合はB.exeを実行したいのですが、 キー押下状態の取得がうまくいきません。 @echo off ←ここでShiftキー押下状態の取得したいです。 IF ERRORLEVEL 1 GOTO SHIFT_KEY START "" "D:\My Documents\A.exe" GOTO END :SHIFT_KEY START "" "D:\My Documents\B.exe" :END ご存知の方教えてください。
368 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 16:27:25 ] >>367 > キー押下状態の取得がうまくいきません。 何をやってうまく行かないのかを、まず書いてくれ。 OSその他の環境情報もだ。 本当は「キー押下状態の取得方法が分かりません」じゃないのか?
369 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 16:45:31 ] わからないやつは黙ってろ
370 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 17:42:07 ] 標準のコマンドのみでは無理 DOS用だとbatuyとかあったけどWin用はしらん
371 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 18:04:08 ] ttp://www.page.sannet.ne.jp/mtoga/etc/dos/bih-g_d2.htm キー入力による分岐 ERRORLEVEL ここらへん使えば出来そうかなぁと。 WinXPです。
372 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 18:35:42 ] 一から勉強して出直して来い
373 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 18:40:31 ] 三くらいからで勘弁してください
374 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 18:47:17 ] .NET Framework 2.0がインストールされてるなら 以下をCheckShiftKey.jsのような名前を付けて保存し、 コマンドプロンプトで %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\jsc.exe CheckShiftKey.js を実行してCheckShiftKey.exeを作ればよい。 // CheckShiftKey.js import Accessibility; import System; import System.Drawing; import System.Windows.Forms; if (Control.ModifierKeys & Keys.Shift) Environment.Exit(1);
375 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 22:04:39 ] >>374 import Accessibility; import System.Drawing; import System.Windows.Forms; import System.Diagnostics; if (Control.ModifierKeys & Keys.Shift) { Process.Start("D:\\My Documents\\A.exe"); } else { Process.Start("D:\\My Documents\\B.exe"); } うまく出来ました。ありがとうございました。スレ違い失礼しました。
376 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 23:17:03 ] >>370 標準のコマンドのみでは無理 そんなことはなかろう
377 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 07:38:47 ] どうやるの?
378 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 08:12:03 ] すまん勘違いだった
379 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 14:39:20 ] せっかく解決済みなんだからほっとこーよ
380 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 15:31:38 ] すまん余計なお世話だった
381 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 16:08:05 ] >>364 タスクスケジューラを使えばできるよ
382 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 17:04:12 ] 質問してもよろしかったでしょうか? バッチで標準入力がリダイレトされているか判定できましたでしょうか?
383 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 20:00:57 ] はい
384 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 22:39:51 ] foo.bat | bar.bar > baz.txt で foo, barが> baz.txtされてるかどうかを検出、分岐するってことなら無理だろ。
385 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 00:21:16 ] >標準出力の話じゃないだろ。
386 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 14:50:20 ] foo.bat | bar.bar > baz.txt は知らんが foo.bat > baz.txt や foo.bat | bar.bat なら可能だろ。
387 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 15:25:48 ] >質問してもよろしかったでしょうか? 過去に遡って質問するわけじゃないのだから、過去について聞くことは無意味だと思うのだが。
388 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 15:36:16 ] 過去から現在に渡ってよろしいことになっていたかどうかを聞いているので 問題なかろう。
389 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 20:10:06 ] >質問してもよろしかったでしょうか? という質問をした時点で、その質問は過去の事象で、その可否を聞いているのだろう
390 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 20:20:16 ] うざ
391 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:04:37 ] メモ帳(memo.exe)でテキストファイルを開くコマンドを書いたのだが、 バッチを実行するとメモ帳は開くがプロンプトが閉じない。 メモ帳を開いた時点でプロンプトを閉じるにはどうすればよい? 以下バッチの内容 ---------------------------------------- C:\Program 〜省略〜 \memo.exe test.txt EXIT ----------------------------------------
392 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:08:18 ] のだが、 またお前か
393 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:10:09 ] start
394 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:16:20 ] >>393 ありがとう。 無事できました。
395 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 22:04:18 ] うざ
396 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 17:02:11 ] >>393 start バッチ とやってみたのだが、閉じない。
397 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 19:06:13 ] test1 test2 test3 test4 という文字の入ったtest.txtがあるとします。 バッチファイルからピンポイントで二行目(test2)を引き出して変数とおくにはどうしたらよいでしょうか? for /f "skip=1" %%a in (test.txt) do set hensuu=%%a を使っても、 hensuu=test2 hensuu=test3 hensuu=test4 となってしまい結局変数はtest4になってしまいます。 どなたか教えてください。
398 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 21:05:24 ] setlocal enableextensions enabledelayedexpansion set hensuu= for /f "skip=1" %%a in (test.txt) do if "!hensuu!"=="" set hensuu=%%a
399 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 00:20:18 ] >>398 ありがとうございます!できました! enableextensionsでコマンド拡張機能を有効にしたからできるようになったってことですか? コマンド追ってググったりしてもこの文でなぜできるのか理解できないです
400 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 03:09:59 ] enabledelayedexpansionで遅延展開を有効にしたから forの中でsetした変数(hensuu)が参照できるようになっている。 遅延展開が無効だと if "%hensuu%"=="" の部分がfor実行段階で if ""=="" になって常に真ということになる。
401 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 11:32:45 ] >>400 遅延展開を有効にすることでhensuu=test2にその時点でなるから、 if "%hensuu%"=="" には引っかからずにその時点でforを終了させられるという事ですね。 遅延展開についてよく理解できました。 わかりやすいレスありがとうございます。
402 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 14:18:58 ] forが終了するわけじゃない。 hensuu=test2となった以降はifが偽になるため何も実行されずにループする。 test.txtの残りが凄く長ければそれだけ終了時間は伸びる
403 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 18:50:55 ] >>402 てことは test3は偽、よって実行なし test4は偽、よって実行なし ・ ・ ・ って感じに最後の行になるまでされるわけですか。 だとしたら500行のtest.txtだとこれが500行分されるんですね・・・ やっと完全に理解できました。ありがとうございます
404 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 22:26:52 ] そんな無駄なことせんでも
405 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 22:28:31 ] for /f "skip=1" %%a in (test.txt) do set hensuu=%%a&goto x :x
406 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 00:03:56 ] 遅延展開使わんでも set hensuu= for /f "skip=1" %%a in (test.txt) do if not defined hensuu set hensuu=%%a
407 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 18:09:51 ] if 条件A or 条件B ( 処理1 ) else ( 処理2 ) ここで「条件A or 条件B」と言う構文はバッチファイルでは使えないんでしたっけ?
408 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 18:25:03 ] if/?
409 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 21:19:54 ] >>408 解決しました。ありがとうございます。
410 名前:デフォルトの名無しさん mailto:sage [2009/11/16(月) 13:00:34 ] set or= if 条件A set or=true if 条件B set or=true if defined or ( 処理1 ) else ( 処理2 )
411 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 17:10:49 ] more|notepad /dev/stdin みたいなことはできないのですか?
412 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 23:16:31 ] echoで2段階にファイル書き出しをしたいのですが、うまくできません。 echo echo start "" コマンド.bat "引数" >B.bat >>A.bat 上記コマンドを実行して、まずA.batに echo start "" コマンド.bat "引数" >B.bat を書き出し、その作成したA.batを実行しB.batに start "" コマンド.bat "引数" ができるようにしたいのですが、実際には最初のコマンドを実行したところでA.batに echo start "" コマンド.bat "引数" のように、 >B.batが抜けた状態で作成されます。 何かいい方法は無いでしょうか。ご教示お願いいたします。
413 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 23:40:05 ] こんな感じか? echo echo start "" コマンド.bat "引数" ^>B.bat >A.bat
414 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:08:33 ] >>413 当方412ではありませんが、感動しました。 ^>を使えばそういう事ができるんですね 差し支えなければ、^のしくみを教えていただけないでしょうか?
415 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:19:52 ] (^^)
416 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 11:42:53 ] >>414 単なるエスケープ文字
417 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 17:30:23 ] ^^は^をエスケープしてるので echo (^^) は (^) となる
418 名前:412 mailto:sage [2009/11/18(水) 20:00:18 ] >>413 レス遅くなって申し訳ないです。ありがとうございました! ばっちり希望どおりの動作をしてくれるようになりました! >>416 >>417 仕組みがよくわかってなかったので勉強になりました。 みなさんどうもありがとうございました。
419 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 22:15:12 ] bash とかでいうところの``で囲んだ時のような、コマンドの出力結果をコマンドラインオプションに回す文法はありませんか?
420 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 23:41:46 ] for /f "usebackq" %I in (`dir /b`) do echo %I
421 名前:デフォルトの名無しさん mailto:sage [2009/11/20(金) 00:28:27 ] >>420 ありがとうございました
422 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 01:56:20 ] usebackqはコマンド中に「'」を使う必要がある時に「'」の代わりに「`」を使うってオプションだろ? for /f %i in ('dir /b') do echo %i でいいのに何故わざわざusebackq付けんの?
423 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 02:15:37 ] 420じゃないけど常に usebackq 付けるようにした方が面倒な事考えなくて済む。 www.atmarkit.co.jp/fwin2k/operation/command008/command02.html
424 名前:デフォルトの名無しさん mailto:sage [2009/11/21(土) 16:02:45 ] 好みだろ どーでもいー
425 名前:423 mailto:sage [2009/11/21(土) 16:20:50 ] >>424 そう、好み てか昔ハマッたことがあるから、俺は付ける派
426 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 13:26:23 ] 外部プログラムを起動させるコマンドを実行すると そのアプリが終了するまでbatへ制御が戻らないのですが それを回避することは可能ですか?
427 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 13:48:22 ] startコマンドを使う
428 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 16:10:21 ] batファイルを分けることなく処理の優先順位を変更する方法があれば教えてください。
429 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 18:57:10 ] startコマンドを使う
430 名前:428 mailto:sage [2009/11/24(火) 19:10:35 ] >>429 start /b /low :exec ではうまくいきませんでした。 どのように記述すればいいのでしょうか?
431 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 22:29:40 ] ところで ttp://itpro.nikkeibp.co.jp/article/Windows/20051006/222374/ start /b test.bat てどういう意味がある? call test.bat とは違うの?
432 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 12:44:00 ] ウィンドウ開かないだけで、別プロセスのcmd.exeが立ち上がる…んだと思う。
433 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 20:20:58 ] >>431 誰が書いたか知らんが、阿呆が意味も分らず、最初のオプション使って、無理矢理、使用例を作っただけなんだろ
434 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 20:25:13 ] >>430 goto %1 start /low "" %0 :exec
435 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 16:18:48 ] そういやstartって start file はokで start "file" はngな時があるけどどういう理屈なんだろうか
436 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 16:27:01 ] 理屈って言う程のことはないよ start/?見りゃ自明だろ?
437 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 16:32:00 ] >>430 wmiのsetpriorityを使え
438 名前:デフォルトの名無しさん mailto:sage [2009/11/27(金) 20:12:44 ] そんなこと言っても難しかろ startにしとけ
439 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 02:25:00 ] data.dat というファイルがあったとして、これを一日に一回 data1129.datみたいに日時をつけてバックアップとして保存していけるようなバッチファイル 作れる方いましたら教えてください スタートアップに登録するとして、同日に一回でも度ってあったらコピーしないという仕様で
440 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 03:40:36 ] if not exist data%date:/=%.dat copy /b data.dat data%date:/=%.dat
441 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 13:46:20 ] プロンプト文字にerrorlevel出すにはpromptコマンドにどう書けばよい?
442 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 15:20:51 ] これは、結局バッチスクリプトとは関係ないんですけど、copyコマンドでオプションに /A(テキストモード)を指定しても、BOMありUTF-8のテキストファイルを結合すると ファイルとファイルの間にBOMが残るんです。 現在はWinXPのコマンドプロンプトでしか試せないんですが、VistaやWin7なら、ちゃん とBOMを外してくれますか?
443 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 15:40:21 ] Vistaでやってみたが、入ってるね /Aは改行コードしか見ないだろうから仕方がないかも
444 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 15:44:42 ] あ、改行とEOFだったかな
445 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 19:41:05 ] /A ASCII テキスト ファイルとして扱います。 UTF-8じゃないのに何言ってんだか
446 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 19:50:38 ] /Aが改行をどうするって?
447 名前:デフォルトの名無しさん mailto:sage [2009/12/02(水) 21:49:14 ] COPY /8
448 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 14:30:54 ] バッチスクリプトならできるが、関係ないな
449 名前:442 mailto:sage [2009/12/03(木) 18:30:00 ] >>443 Vistaでも駄目ですか、どなたかWin7の状況を教えて下さい。
450 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 20:27:40 ] 逆に7でこの挙動が変わってたらおかしいでしょう
451 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 20:43:06 ] 別におかしくないが?
452 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 20:46:19 ] chcp 65001
453 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 21:15:54 ] BOM削除してからcopyすれば?
454 名前:デフォルトの名無しさん mailto:sage [2009/12/03(木) 21:54:01 ] ところで^Z削除するのはどうすれば?
455 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 15:10:43 ] >>452 フォントを変えるコマンドは?
456 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 21:47:30 ] ぐぐれ まあ変えても解決にはならんが
457 名前:デフォルトの名無しさん mailto:sage [2009/12/04(金) 21:58:36 ] 作れ setconsolefont() setcurrentconsolefontex()
458 名前:デフォルトの名無しさん mailto:sage [2009/12/08(火) 13:13:56 ] 代替コマンドシェルにnyacusなんてのがあるんだな。 cmdと比べると構文が結構まともだ。 PowerShellより圧倒的に軽いしちょっと覚えてみる気になった。
459 名前:デフォルトの名無しさん mailto:sage [2009/12/09(水) 03:55:32 ] nyacus落ちない?数年前に使ったけど、それでやめた。
460 名前:デフォルトの名無しさん mailto:sage [2009/12/10(木) 01:06:30 ] 今のところ落ちてないよ。まだ大した使い方してないけど。 最終更新日が先月でまだまだメンテが続いてるね。
461 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 15:53:24 ] CMD.exeのfor文は頑張りすぎ
462 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 18:23:45 ] runasの/trustlevelってどういうときに使うの?
463 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 21:14:34 ] for /F %%a in (filelist.txt) do move "%%a" %dir% filelist.txtにファイルの一覧をリストアップしてそのファイルをすべて特定のフォルダへ移動したいです ですがファイル名に半角スペースが含まれていると移動されずにスルーされてしまいます 困ってしまいます お願いします
464 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 21:15:18 ] >>439 >>440 これの改良版で1週間分のみバックアップを残す仕様に出来る方おりませんか? ファイルが7個以上あった場合、古いものから消していくようになると思うんですが
465 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 21:25:48 ] >>463 "delims="
466 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 21:32:10 ] >>464 for /f "skip=6 delims=" %%i in ('dir /b/o-d data*.dat') do del %%i これで新しいものから順に6個を除いたファイルは全部消える
467 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 21:33:20 ] >>465 ありがとうございました 助かりました
468 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 11:52:30 ] カレントディレクトリを取得するのに for %i in (.) do set cdir=%~dpnxi とかやってるんですが、もっとスマートな方法はないですしょうか?
469 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 12:04:19 ] %CD%とかじゃ駄目だっけ?
470 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 15:46:31 ] フルパスをゲットするなら%cd%でいい c:\a\b\c\d\thisdir のthisdirをゲットするなら %cd:\=&set cdir=% echo %cdir% とか。
471 名前:デフォルトの名無しさん mailto:sage [2009/12/12(土) 19:32:42 ] set cdir=.
472 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 03:10:06 ] set cdir=. echo %cdir% . ダメじゃんw
473 名前:デフォルトの名無しさん mailto:sage [2009/12/13(日) 19:05:35 ] set cdir=%cd% echo %cdir%
474 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 11:07:38 ] %CD%なんてあったんですね。ありがとうございます。 カレントディレクトリがセットされた環境変数は ありそうだと思って set<enter>して探したのですが、これにはでないみたいです。 「特殊な環境変数」でググると%CD%以外にもいろいろ知ることができました。
475 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 14:11:28 ] set/?
476 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 14:14:37 ] カレントディレクトリはドライブごとにある echo %=c:% echo %=d:%
477 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 14:16:28 ] >>476 知らなかった・・・
478 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 14:37:09 ] set, で=*環境変数も表示
479 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 14:40:28 ] 2009年も終わろうとしてるのに今更cmdのtipsなんて何の意味がある。 PowerShellに乗り換えようぜ。
480 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 15:50:56 ] =::=::\ は何?
481 名前:デフォルトの名無しさん mailto:sage [2009/12/14(月) 22:25:59 ] >>479 PowerShellがNTに載ったらね
482 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 14:51:01 ] おまえらスレチガイ pc12.2ch.net/test/read.cgi/win/1221046998/
483 名前:デフォルトの名無しさん [2009/12/21(月) 15:23:45 ] ipアドレスの3ブロック目で判断して、 レジストリを修正するバッチファイルが作りたいのです。 ipconfigしても情報が多すぎるし、 ドット2つの後ってどうしたらいいんでしょう…。 どなたかご教授願います。
484 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 15:26:03 ] for /f "delims=. tokens=3" %I in ("1.2.3.4") do echo %I
485 名前:sage [2009/12/21(月) 16:36:18 ] >>484 素晴らしすぎます!!! というか私の知識不足…頑張り不足…でしょうか。 ありがとうございました!
486 名前:483 mailto:sage [2009/12/21(月) 19:26:24 ] お陰様でここまできました。 for /f "tokens=14 delims=: " %%I in ('ipconfig ^| find "IP Address"') do set IP=%%I for /f "tokens=3 delims=." %%I in ("%IP%") do echo %%I echo %IP% ただ、スマートじゃないというかなんというか…。 こんなもんでしょうかね。
487 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 22:05:22 ] tokens=14 ってなんじゃそら。 skip=n でn行飛ばせるって知ってるよな?
488 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 22:55:04 ] 出たか、知ったかぶり。お手並み拝見
489 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 13:14:33 ] 横からだけど俺的にはアリだな。 tokens=14 を数える事は二度と無いとしても、将来コピペで使い回した時、 このスレでのやりとりを良い思い出として生暖かく思い出せるw "tokens=2 delims=:" だったら何も心に響かない。
490 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 17:32:15 ] OSにもれなくついてくるおまけの機能に多くを求めてはいけない。 メモ帳やペイントに不満を感じるなら勝手に別のアプリをお使いくださいというのがMSの基本姿勢。 不便だろうが欠陥があろうが知ったことではない。
491 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 17:47:03 ] delimsを.だけにすれば1行で書けるだろ? for /f "tokens=?? delims=." %%I in ('ipconfig ^| find "IP Address"') do echo %%I ??は自分で数えろ
492 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 18:26:46 ] skipがどうしたって?
493 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 18:45:11 ] どんぐりの背比べ
494 名前:483 mailto:sage [2009/12/22(火) 18:47:08 ] >>491 ありがとうございました。 for /f "tokens=15 delims=." %%I in ('ipconfig ^| find "IP Address"') do echo %%I でバッチリ取得出来ました。 これが一番スマートですね。助かりました!
495 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 18:53:36 ] バッチごときでスマートって しまむらで洋服買って自慢してるようなもんか
496 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 20:09:54 ] すっぱい葡萄
497 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 20:45:16 ] たぶん for /f "tokens=15 delims=." %%I in ('ipconfig') do echo %%I でもいける
498 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 20:53:10 ] どんぐりの背比べ
499 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 21:55:38 ] すっぱい葡萄
500 名前:デフォルトの名無しさん mailto:sage [2009/12/23(水) 14:33:10 ] skipがどうしたって?
501 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:04:04 ] フォルダを五十音で分配したいのですが、バッチファイルでできるんでしょうか? 1)具体的にはデジカメで写真を撮影した事を想定してください。 D:\デジカメ写真データ\001.jpg D:\デジカメ写真データ\002.jpg ・ ・ D:\デジカメ写真データ\009.jpg D:\デジカメ写真データ\010.jpg 2)それを撮影場所ごとに整理します。(ここまでは人間の手でやります。) D:\デジカメ写真データ\きんかくじ(金閣寺)\001.jpg D:\デジカメ写真データ\きんかくじ(金閣寺)\002.jpg D:\デジカメ写真データ\きよみずでら(清水寺)\003.jpg D:\デジカメ写真データ\きよみずでら(清水寺)\004.jpg D:\デジカメ写真データ\きよみずでら(清水寺)\005.jpg D:\デジカメ写真データ\とうだいじ(東大寺)\006.jpg D:\デジカメ写真データ\ほうりゅじ(法隆寺)\007.jpg D:\デジカメ写真データ\ほうりゅじ(法隆寺)\008.jpg D:\デジカメ写真データ\ほうりゅじ(法隆寺)\009.jpg D:\デジカメ写真データ\ほうりゅじ(法隆寺)\010.jpg 3)ここでバッチファイルをくりっくすると D:\読み順フォルダ\か行\きんかくじ(金閣寺)\001.jpg D:\読み順フォルダ\か行\きんかくじ(金閣寺)\002.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\003.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\004.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\005.jpg D:\読み順フォルダ\た行\とうだいじ(東大寺)\006.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\007.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\008.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\009.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\010.jpg とやりたいです。
502 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:08:36 ] D:\読み順フォルダ\か行\きんかくじ(金閣寺)\002.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\003.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\004.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\005.jpg D:\読み順フォルダ\た行\とうだいじ(東大寺)\006.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\007.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\008.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\009.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\010.jpg D:\読み順フォルダ\か行\きんかくじ(金閣寺)\002.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\003.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\004.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\005.jpg D:\読み順フォルダ\た行\とうだいじ(東大寺)\006.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\007.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\008.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\009.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\010.jpg D:\読み順フォルダ\か行\きんかくじ(金閣寺)\002.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\003.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\004.jpg D:\読み順フォルダ\か行\きよみずでら(清水寺)\005.jpg D:\読み順フォルダ\た行\とうだいじ(東大寺)\006.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\007.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\008.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\009.jpg D:\読み順フォルダ\は行\ほうりゅじ(法隆寺)\010.jpg
503 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:12:03 ] そこまで人の手でやれよ。
504 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 12:17:13 ] 写真を分類するソフトなら腐るほどある。
505 名前:デフォルトの名無しさん [2009/12/26(土) 12:57:24 ] ゴミの山(Dドライブ)を見てたらすんごいもの見つけたww codepad.org/xzEwdV3R なんかかなり昔作ったVB風の記述でバッチファイルを吐く言語の ソースファイルっぽいw 今コンパイラ探してる
506 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 13:04:17 ] #EXPAND BatchBasic Sub Main() Print("Hello World.") End Sub Sub Print(str) #NATIVE ECHO %str% End Sub
507 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 13:06:23 ] >>501 できるけど、その程度の代物だったら手作業と大して変わらん手間だろ。
508 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 14:48:26 ] >>505 batに生産性を求めてどうする
509 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 20:27:40 ] >>508 生産性がよくなるんだろ?
510 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 22:38:09 ] 管理者として実行されてるか?を判定するには?
511 名前:デフォルトの名無しさん [2009/12/27(日) 10:14:31 ] 管理者権限でしかアクセスできないフォルダにアクセスしてERRORLEVELで調べる
512 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 12:08:47 ] 環境変数比較してみたら管理者権限の場合SESSIONNAMEが定義されてなかったので それで判別できる? (Vista x64で確認)
513 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 12:27:56 ] runas /trustlevel:制限しない rundll32 >nul echo %errorlevel% ちゃんと動くかは分からない
514 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 14:35:24 ] echo>file dir/q file
515 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 15:01:58 ] mklink a a echo %errorlevel%
516 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 16:00:42 ] net user %username% |findstr "*administrators" MS謹製のwhoamiに権限表示があった気がする
517 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 17:58:10 ] >>516 UACの昇格
518 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 22:26:55 ] >>512 Vista 32bit x86でも確認したよー
519 名前:デフォルトの名無しさん mailto:sage [2009/12/31(木) 18:56:58 ] rundll32 shell32,IsUserAnAdmin
520 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 17:02:50 ] バッチファイルの引数をプラス記号で繋ぐにはどうしたら良いでしょう。例えば、 start "" iexplore "www.google.com/search?lr=lang_ja&ie=UTF-8&oe=UTF-8&q=%* " ここの %* を、引数の数に合わせて %1+%2+.... とやる方法です。
521 名前:デフォルトの名無しさん [2010/01/04(月) 20:39:55 ] codepad.org/w6ugNsAm エスケープには対応してないから使えるのは英字だけなのでよろしく
522 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 20:42:43 ] もっとうまい方法がある気がしてならないのでちょっと晒してみる。 ----------ここから set Param=%1 :loop if not "%2"=="" set Param=%Param%+%2 shift if not "%2"=="" goto loop start "" iexplore "www.google.com/search?lr=lang_ja&ie=sjis&oe=UTF-8&q=%Param% " ----------ここまで 細かい事考えなければこんな感じ? 引数を繋ぐスマートな方法を知りたいです。。。
523 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 20:44:47 ] つか誰かHttpEscapeってサブルーチンでも作って
524 名前:522 mailto:sage [2010/01/04(月) 20:48:01 ] >>521 そっか、先に shift させた方がずっと美しいや。 参考になりましたです。
525 名前:521 [2010/01/04(月) 21:06:29 ] いや、スマートにするのは簡単だけど、 codepad.org/GKyUSzKv なんかつまんないなあ。^^;
526 名前:522 mailto:sage [2010/01/04(月) 21:15:25 ] >>525 これこれ、こーゆーの求めてました! ありがとうございました >>521 、きっかけをくれた >>520 にも感謝。
527 名前:520 mailto:sage [2010/01/05(火) 00:22:01 ] >>521 , 522 お二人ともありがとうございました。 特に >>525 が素晴しく、大変勉強になりました!!
528 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 01:05:21 ] そもそもぐぐるなら置換不要
529 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 18:02:19 ] そうなの?
530 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 19:19:39 ] 質問なんですが、 例としてimg001、img002、img003というファイルがあったとして imgに当てはまるものを一気に削除するというスクリプトはあるでしょうか?
531 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 19:36:16 ] delete img*
532 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 19:47:41 ] >>531 erase img*
533 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 20:56:26 ] >>531-532 「imgに当てはまるもの」→ del img
534 名前:530 mailto:sage [2010/01/11(月) 01:04:30 ] >>531-533 ありがとうございます。 delの場合は del img*でいけました。
535 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 01:16:52 ] >>531-533 おまえら質問に答えてない >>530 だれかが作ればある
536 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 07:58:08 ] 修飾子 %~$PATH: の使い方について質問があります。 引数のファイルを %PATH% から検索し、エクスプローラーで開く バッチファイルを書いてみました。 ---- open.bat ---- set x=%~$PATH:1 if %x% == "" goto eof start "" explorer.exe /select,%x% ---- 使用法: open.bat explorer.exe / open.bat cmd.exe / open.bat msconfig.exe ここで、拡張子を .exe に決め打ちし、下記が動作するようにするには どうすれば良いでしょうか。 open.bat explorer / open.bat cmd / open.bat msconfig
537 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 09:31:51 ] 下記のようにしてとりあえず希望の動作が出来るようになりました。 もう少し一般的な方法があれば教えて下さい。 ---- open_mod.bat ---- set x=%~$PATH:1 if not "%x%" == "" goto open for %%i in (%1.exe) do ( set x=%%~$PATH:i ) if not exist "%x%" exit :open start "" explorer.exe /select,%x% ----
538 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 14:54:18 ] for %%i in (%1.exe) do for %%j in (%~$PATH:1 %%~$PATH:i) do start "" explorer.exe /select,%%j
539 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 18:41:21 ] for /f %%i in ('where %1') do start "" explorer.exe /select,%%i
540 名前:536 mailto:sage [2010/01/13(水) 00:43:51 ] >>538 , 539 どちらもすごいです!! たいへん勉強になりました。
541 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 10:54:58 ] >>539 これのうち、 'where %1' の部分が良く理解できません。 解説のあるウェブサイトを紹介してもらえないでしょうか。
542 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 13:14:07 ] www.atmarkit.co.jp/fwin2k/win2ktips/1151where/where.html
543 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 23:29:11 ] >>542 やっと理解しました。where は OS のコマンドで、 また for /f in %%変数 (...) の括弧内ではコマンドが使えるのですね。 情報ありがとうございました。
544 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 23:23:03 ] %1 %2 ... は%* %2 ... をまとめて取り出せないかな バラして組み立てるしかないかな
545 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 23:26:37 ] shiftすりゃいいんじゃねーの
546 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 02:34:52 ] shift echo %*
547 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 07:02:48 ] これだと %1 も出てくるな…
548 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 09:28:36 ] shift /2
549 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 13:11:40 ] for /f "tokens=1*"でとれるんじゃねーの
550 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 13:48:41 ] shiftじゃできないんじゃねーの
551 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 19:42:14 ] for /f "tokens=1*"じゃできないんじゃねーの
552 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 20:31:47 ] for /f "tokens=1*" %%i in (%*) do echo %j
553 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 21:44:02 ] for /f "tokens=1*" %%i in ("%*") do echo %j だろ
554 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 11:29:18 ] この言語はforの使い方がおかしい
555 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 15:33:31 ] ワイルドカードを展開するコマンドにforという名前をつけてしまったのがそもそもの間違い。
556 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 16:13:29 ] for /f "tokens=1*" %i in ("1 2 3 4") do echo %j 2 3 4 ほれ
557 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 17:16:36 ] for /f "tokens=1*" %i in (""1 2" "3 4"") do echo %j 2" "3 4" ほれ
558 名前:デフォルトの名無しさん mailto:sage [2010/01/18(月) 15:10:32 ] set a=%* echo !a:%1=!
559 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 10:25:24 ] @echo off copy /y E:\Program\TAB_Browser\DonutRAPT\Default.dfg "E:\Back_Up\Donut_RAPT_Default" @echo exit 今使ってるバッチファイル(バックアップファイル作成)をまんま↑に載せました。 別段支障は無いのですが、↑だと、1ファイルのバックアップしか出来ませんので、 万一、空ファイルが上書きされてしまった場合、痛いです。 (上記のバッチはドーナツ派は何となくピンと来てくれると思いますが) そこで、そのリスクを減らす為に、例えば、バッチ処理する度に、ランダムに、例えば・・ Default1.dfg、Default2.dfg、Default3.dfg のいずれかのファイル名でE:\Back_Up\Donut_RAPT_Defaultフォルダにバックアップをするには どのようにすれば宜しいでしょうか?
560 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 11:39:09 ] ランダムの意味わかってないだろ
561 名前:559 mailto:sage [2010/01/19(火) 11:52:46 ] 1〜3までの数字をアットランダムに付けたいのですが・・。 Default1.dfgというファイル名での保存が、複数回続いても構いません。 (きっちり、1→2→3という順番で、バッチ処理する度にファイル名が変わってくれなくて構わないです)
562 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 14:36:05 ] set /a random=%random%%%3+1 copy /y E:\Program\TAB_Browser\DonutRAPT\Default.dfg "E:\Back_Up\Default%random%.dfg"
563 名前:559 mailto:sage [2010/01/19(火) 15:29:47 ] >>562 ありがとうございます! コピー先は直しましたが、まさに目的は叶いました。 本当、感謝です!
564 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 18:15:40 ] >>560 >>560
565 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 19:39:38 ] >>564
566 名前:デフォルトの名無しさん mailto:sage [2010/01/20(水) 13:48:59 ] サイクリック版作りたかったら作ってみ
567 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 03:00:27 ] >>560 >>559 の例の場合は3本のくじからの無作為抽出ってことだろ? ランダムって表現で間違っちゃいない っつーか、>>562 が物語ってるじゃん↓ > set /a random=%random%%%3+1
568 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 21:44:08 ] >>567 560は562が書かれる前にレスの内容がわかるエスパーなんですね。
569 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 05:15:14 ] 別に560の前の時点で、環境変数(%random%)を使えば良いのは判る訳で そこへ560の質問の意味が解からん
570 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 12:43:25 ] iPod nano を購入しようと思っているのですが、nano のランダム再生について質問です。 現在使っている他メーカーのMP3プレイヤーのランダム再生はどうやら、 再生リストの中からランダムで選び出した曲を決まった順番で再生 しているらしいのです。 例えばフォルダの中にA,B,C,D,Eの5曲がある場合にランダム再生を実行すると、 自動的にA,C,Eを選び出し(ここは流石にランダムで選んでるようです)、 以降、A,C,E,A,C,E,...のように、同じ曲ばかりを繰り返します。 実際に少ない曲数で試したことはないのですが、 同じフォルダの中でランダム再生をしているとそのうち、 次に再生される曲がわかるようになるのでたぶん間違いないです。 で、iPod nano のランダム再生はどのような再生方法なのかに興味があります。 理想は、 ・一度流した曲は、再生リスト内の曲を全て再生するまでは再生しない。 というものです。 フォルダの中にA,B,C,D,Eの5曲がある場合、 最初にBを再生した後は、次に来る曲はA,C,D,Eのいずれかで、 次にAが選択された場合は、次に来る曲はC,D,Eのいずれか、といった再生法を望んでいます。 iPod nano の購入の参考にしたいので、 詳しくわかる方いましたらよろしくお願いします。
571 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 12:44:52 ] iTunesとiPodの場合「ランダム」ではなく「シャッフル」と呼び、 その呼び名の通り曲順をシャッフルして再生する機能になります。 1曲ごとに再生する曲を対象全体からランダムに選ぶのではなく、 最初に対象全体をシャッフルして混ざったリストを作りそれを順番に再生する、 つまりトランプをシャッフルしてから一枚づつめくっていく様な感じになり、 あなたの希望の様に 「一度流した曲は、再生リスト内の曲を全て再生するまでは再生しない。」 と言う状態になります。 iTunes上でプレイリストを選択した状態で左下のシャッフルボタンを 押してみると、リスト内でシャッフルしてそれを順に再生している事が よく分かると思います。 (その際画面表示のソート順を通常なら左端にある曲順の数字欄に しておかないとシャッフルされる様子が見れません。曲の上部に 「名前」や「アーティスト」、「アルバム」等と書いてある左端の部分を クリックして三角が出ている状態です。その灰色のバー部分の どこをどうクリックするかで画面上の並び順が変わります。) この様に「シャッフルされたリストを作る」と言う機能なので、そのリスト内で 曲を前や後ろに飛ばしてもまた同じ部分では同じ順番で再生されます。 シャッフル機能を切って入れ直すか、最初の曲から前に飛ばしたり、 最後の曲を終わりまで再生したりすればシャッフルし直されます。 自分は普段まずシャッフル再生はしないので、今ちょっと試してみた 結果を見て回答したので、何か間違いがあるかもしれません。
572 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 12:45:56 ] 回答ありがとうございます。 iTunesと同じなのであれば、 「再生回数」という項目もあるから、これでも確認できますね。 全部再生回数が0回の状態で再生し、 しばらくしてから再生回数を見て、飛びぬけて再生回数が少ない・多いものが無いことを確認する。 iTunesではメニューの方の「シャッフル」をよく利用します。 (下にシャッフルボタンがあるのは知らなかった…) 確かにこれは「リピートする」にチェックを入れておかないと、一巡したところで終了するので私の望んでいるタイプです。 まぁ重要なのは本当にiTunesとiPodの再生方式が同じなのか、というところですが、 同じじゃない方が不自然ですよね。 ありがとうございました。
573 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 12:47:04 ] iPodはiTunesを持ち歩く為に作られたものですから、基本はiTunesと同じだと思っていいと思いますよ。 コンピュータでのランダムは疑似乱数関数を利用しているのが一般的です。 疑似と頭に付くように実は完全なランダムではありません。与えるパラメーターが同じなら結果は全く同じになります。 実際の利用では、パラメーターに現在の時刻を1/100秒単位で指定します。 毎回再生ボタンをコンマ何秒の単位で全く同じく押すなんて事不可能ですから、同じ順番になることはなくランダムだと言って差し支えないでしょう。 > 同じ曲ばかりを繰り返します。 一般的にプログラム上では、順番は疑似乱数でランダムに決め、更に同じ曲が出ないようにする工夫もなされています。 実際にはランダムだけど、同じようなのを繰り返したり、次のが予想した通りだと思えるのは人間の特性が関係しています。 聞き流している時には好きな曲は印象が強く残りますが、そうではない曲は聴いても記憶に残りにくいものです。 ランダム再生していると、好きな曲ばかりが印象強く残って、前にも聴いたなとか、同じのばかりかかっているなと勘違いしてしまいます。 実際に聴いて確かめるのではなく、ランダム再生時の曲名を順番に書き出してみるとわかります。 聞き流していると錯覚してしまうし、時間もかかりますからね。 > A,C,E,A,C,E,...のように、同じ曲ばかりを繰り返します そういうプログラムがされている可能性も否定はできませんが、錯覚である可能性もあります。
574 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 12:48:00 ] 回答ありがとうございます。 >> 同じ曲ばかりを繰り返します。 >一般的にプログラム上では、順番は疑似乱数でランダムに決め、更に同じ曲が出ないようにする工夫もなされています。 基本的にどのメーカーでも、ランダム再生のロジックは同じはずだ、という意味でしょうか。 そうだと良いのですが。 自分もほんの少しだけプログラミングには触ったことがあるので、 完全なランダム再生は難しくないのになんでこのMP3プレイヤーはこうなんだ!とか一人で憤慨しています。 >> A,C,E,A,C,E,...のように、同じ曲ばかりを繰り返します >そういうプログラムがされている可能性も否定はできませんが、錯覚である可能性もあります。 確かめたわけじゃないので、確かに錯覚の可能性もあります。 それなのに言い張ったところで説得力は無いのですが、 「また同じ曲だ」「これはさっき聞いたばっかりだ」とか、曲単位で耳に残るのではなく、 曲Aがフェードアウトした後に始まるイントロは曲Cだ、という「つながり」が耳に残るんですよ。 そこから「いくつかの同じ曲を同じ順番で再生している」と思っています。 あくまで「思っている」です。 本題?のiPod購入は、前向きになっています。
575 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 12:49:04 ] >>569 俺は>>560 が書かれてた時点でスレ見てスルーして次見たのが今だけど、 560の時点じゃ同感だったよ。ちゃんと読んでればいずれかと書いてるから 言葉の使い方間違ってるわけではないとわかるけれど。 流し読みすると 1→2→3 と要求してるように見えて ランダムって違うんじゃね?と思ったわな。 560=562だったとしても何も驚かんけどな。
576 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 12:50:06 ] >・一度流した曲は、再生リスト内の曲を全て再生するまでは再生しない。 自分の経験上ではそうなっていると思います。 もちろん、電源が完全にオフになるとどこまで再生していたかはリセットされますが、少なくとも連続して聞いている時に同じリスト内の曲が再度かかることはないですね。 iTunesで曲を追加したり並び順を替えてもiPod側の再生順は変わりますし、1度PCに接続すると同じプレイリストを先頭から再生しても順番が変わっているように思います。 ただし、iPodやiTunesの「ランダム」というのは「万遍なく」という意味ではなく「目茶苦茶」という意味ですので、同じアーチストの曲が連続したりすることもあれば、プレイリスト内の次の曲がそのまま再生されたりもします。文字通り「目茶苦茶」です。
577 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 16:39:24 ] ランダムフェチ?
578 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 19:16:09 ] トラウマ?
579 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 16:51:51 ] こんな感じで書かれてるテキストファイルがあるんだが。 ↓ 【現在】 C:\aaa/aaa/aaa.zip C:\aaa/bbb/zzz.zip C:\aaa/ccc/bbb.zip : : パスで見ると並び順は正しい。 けど、このテキストをファイル名でソートしたい。 【希望順】 C:\aaa/aaa/aaa.zip C:\aaa/ccc/bbb.zip C:\aaa/bbb/zzz.zip : : どうしてもバッチでやりたい変態です バッチ単体じゃ無理かね
580 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 17:15:47 ] 以下のようなテキストファイルがあります。 C:/aaa/bbbb/cccccc.zip C:/bbb/ddd/aaaa.zip C:/ccc/eeeeee/bbb.zip パス的に見れば並び順は正しいですが、 これをファイル名順に並び替えたいのです。 C:/bbb/ddd/aaaa.zip C:/ccc/eeeeee/bbb.zip C:/aaa/bbbb/cccccc.zip どうしてもバッチ単体で処理したい変態です。 無理ですかね…
581 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 19:32:21 ] del tmp? for /f %%I in ('type hoge.txt') do echo %%~nxI?%%I>>tmp1 sort tmp1>tmp2 for /f "delims=? tokens=1*" %%I in ('type tmp2') do echo %%J>>tmp3 type tmp3
582 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 19:52:02 ] setlocal enableextensions enabledelayedexpansion del tmp.txt for /f "delims=" %%i in (lstb.txt) do ( echo %%~nxi %%i>>tmp.txt ) del out.txt for /f "tokens=1,* delims=:" %%i in ('sort tmp.txt') do ( set a=%%i echo !a:~-1!:%%j>>out.txt ) del tmp.txt
583 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 20:48:04 ] 一時ファイル使わんとでけんのか?
584 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 21:22:56 ] >>581 %%~nxI ?%%I とすればいいよ もし<tab>が入力できれば %%~nxI<tab>%%I delims=<tab> でもいいが難度が高いかな?
585 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 22:12:16 ] >>584 ?????
586 名前:デフォルトの名無しさん mailto:sage [2010/01/25(月) 23:12:59 ] sort順だろ %%~nxI?%%I だと数字が?より前になる %%~nxI ?%%I なら数字が より後ろになる
587 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 00:51:04 ] そこまで考えてなかった
588 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 02:28:17 ] ぶっ
589 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 12:25:06 ] >>586 sortコマンドの並び替えはascii順じゃないので数字より前に?が来る。 タブもNG。ソート順ではスペースが前に来るんで、スペース入りのファイル名があると おかしくなる。 多分sortでファイル名に出来ない文字で一番若いのは(0f) 区切り文字をこれにしたらとりあえずokみたい。
590 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 12:28:24 ] 書き込んだら文字消えたorz コマンドプロンプト上ではアスタリスクみたいに見える文字(外字?)
591 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 14:56:08 ] ^a 二重線の「 が最初 cscript hoge.vbs|sort for i=0 to 25 wscript.echo chr(i),i next for i=27 to 127 wscript.echo chr(i),i next
592 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 19:53:21 ] どっちもメモ帳で入力できない
593 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 20:41:27 ] コマンドプロンプト上からecho ^A>>hoge.bat とか。 ^AはCtrl+A
594 名前:デフォルトの名無しさん mailto:sage [2010/01/26(火) 22:06:24 ] メモ帳で入力できるものを使えば?
595 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 18:36:32 ] ショートカット作ってアイコン変えると窓のアイコンが変わってくれるけど バッチファイル中から自力でアイコン変える方法ってないですか? フリーウェア等の外部ツールでもいいんですが。
596 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 22:42:41 ] ある
597 名前:デフォルトの名無しさん [2010/01/31(日) 22:51:11 ] バッチファイル内で変数を保存?する方法について教えてください。 最初にパラメータとして渡されたファイル(例としてhogehoge.txtとします)を INPUTFILE=%~dpnx1 としたあとで、 RENコマンドでインプットファイルをリネームしています。 例としてhagehage.txtに変更したとします。次に CALL hogehoge.BAT "%INPUTFILE%" を呼び出して戻ってきた後で 再度もとの名前に戻そうと REN "hagehage.txt" "%INPUTFILE%" とすると、%INPUTFILE%がhogehoge.txtから途中でリネームしたhagehage.txtに変わってしまっています。 どうにかリネームしてもhogehoge.txtを保持する方法は無いでしょうか。 バッチファイルは中間言語方式だったことを思い出してorz状態です。
598 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 22:57:12 ] あほ
599 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 23:10:23 ] >>597 無理して日本語を使わなくてもいいですよ。 BATでおk
600 名前:デフォルトの名無しさん [2010/01/31(日) 23:46:03 ] ほんじゃBATコピペ 最初に受け渡されたファイルネームはhogehoge.txtとします。 @ECHO ON SET INPUT=%~dpnx1 SET INPUTPATH=%~dp1 SET INPUTFILE=%~nx1 REN "%INPUT%" "hagehage.txt" REM ここでhagehage.txtにファイルネーム変更 CALL %EXECNAME% "c:\hagehage.txt" REN "%INPUTPATH%hagehage.txt" "%INPUTFILE%" REM ここでhogehoge.txtに戻そうとしてもINPUTFILEにhagehage.txtが入ってる。 最後の%INPUTFILE%の中身がいつの間にか新ファイル名に変わってるので困っております。
601 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 23:58:51 ] callした先で書き換えちゃってるんだろ call先でsetlocal 〜 endlocalしとけ
602 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 00:00:36 ] 追記 call先のファイルをいじれないんだったらcallの呼び出しをsetlocal〜endlocalで囲む
603 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 00:03:46 ] そうかcallの前後をsetlocal 〜 endlocalしとけ
604 名前:デフォルトの名無しさん [2010/02/01(月) 00:24:56 ] >>601 Danke.
605 名前:デフォルトの名無しさん [2010/02/01(月) 08:43:15 ] 存在するファイルが無いと怒られるんだがなして? IF EXIST %INPUTPATH%work.tmp tmpdel IF EXIST %INPUTPATH%work.temp tempdel ECHO %INPUTPATH%work.tmp %INPUTPATH%work.temp echo そんなファイル無いんじゃゴルァ これも試したけど駄目だった。 ファイルは絶対に存在する。 IF EXIST %INPUTPATH%work.tmp goto tmpdel IF EXIST "%INPUTPATH%work.tmp" tmpdel IF EXIST "%INPUTPATH%work.tmp" goto tmpdel
606 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 11:12:49 ] %INPUTPATH% が \ で終わっていないに 1000ガバス。 とりあえず IF EXIST "%INPUTPATH%\work.tmp" goto tmpdel じゃないか?
607 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 11:22:30 ] 606で終わってるけど質問する前に echo onするなり echo IF EXIST %INPUTPATH%work.tmp goto tmpdelするなりして 何をチェックしようとしてるのか確認しろ
608 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 14:25:44 ] >>606 いや、\は付いてる
609 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 14:59:02 ] >>598
610 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 16:29:43 ] >>608 work.tmp が wark.tmp とか work,tmp なのが原因でファイルが存在しないに 1200カパズ。 for の中で遅延展開してない、に 1500ガバス。 そもそも 607 のアドバイスのように echo の結果はどうなのよ? まさか、表示が流れて読めません、とかいう訳じゃないんでしょ?
611 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 16:46:46 ] ここに書いた例と実際のバッチが全く別物とか。
612 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 17:32:55 ] >>610 echoの結果も同じ。 なんでだろ?
613 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 18:08:04 ] 同じって言葉じゃなくて具体例を出せよw 実際に使ってる内容晒したらエラー出て当たり前って内容かもしれないだろ。 おまえさんがその当たり前に気付いてないだけで。
614 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 19:52:01 ] そもそもバッチファイル理解できてる? よければ問題が起こる最小限のコード全体を貼ってくれ
615 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 21:30:59 ] delするのに存在確認は不要だろあほか
616 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 22:11:39 ] カレントディレクトリから一つ下のサブディレクトリ名を取得する。 それを引数としてあるバッチに渡す。 以上を一つ下のサブディレクトリ全てについて実行するバッチって作れますか? WSHの方が良いですか?
617 名前:デフォルトの名無しさん [2010/02/01(月) 22:41:36 ] >>613 試しに ECHO "%INPUTPATH%hogehoge.txt" としたら C:\hogehoge.txt と¥付きで表示される。
618 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 23:51:27 ] ありぃ? 分かった。 直前で作ったファイルが書ききれていなかったっぽい。 TIMEOUT1秒入れたらEXISTで見えるようになった。
619 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 01:13:03 ] >>616 for /d %%I in (*) do ( echo call exec.bat %%I )
620 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 01:33:15 ] >>619 すげぇ!こういとも簡単にできるとは…。 ありがとうございます。
621 名前:デフォルトの名無しさん [2010/02/02(火) 01:44:36 ] すまん。最後にもう一つだけ教えてください。 SET INPUT=%~dpnx1 ECHO %INPUT% pause これだけのバッチファイルを作って、このファイルに適当なファイルをD&Dしたら ファイルネームがフルパスで表示されると思う。 でも、どこでもいいから適当なフォルダに長江 6380.txtってファイルを作って さっきのバッチファイルにD&Dしてみてくれ。 長江で切れてしまうと思う。 これを回避するにはどうしたらいい?
622 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 02:06:53 ] 切れてないよ
623 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 03:22:16 ] 長江は長過ぎる 黄河にしとけ
624 名前:デフォルトの名無しさん [2010/02/02(火) 08:41:12 ] >>622 嘘お? PC3台とも切れるんだが? ちなみにスペースは全角な。 >>623 さぶぅ
625 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 10:37:47 ] バッチファイルは全角半角スペース混じりのファイル名を正しく扱える(必要な時にちゃんと""で囲めば)。 そのコードで問題が出るなら明らかに呼び出し側の問題。
626 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 12:24:52 ] >>625 試しにecho "%INPUT%" をしても同じ
627 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 12:32:11 ] >>621 普通なら切れない。 切れるとしたらbatファイルの関連付けでドロップハンドラが壊れているんだろう。
628 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 15:12:55 ] こういう話だろ scripting.cocolog-nifty.com/blog/2008/02/post_c740.html
629 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 15:59:28 ] >>627 pgr
630 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 16:36:56 ] >>621 半角で例示したりして芸の細かいこと
631 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 19:55:37 ] バッチファイルにD&Dなんてするなよ 素直にコマンドプロンプトで打てばいいじゃん
632 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 21:10:28 ] どこでもいいから適当なフォルダに長江&shutdown 6380.txtってファイルを作って さっきのバッチファイルにD&Dしてみてくれ。
633 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 23:39:00 ] >>628 ありがと。 >>631 長いバッチで自動化したいから無理なのら。 >>632 さぶぅ。 雪降らせたのお前か。
634 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 02:14:36 ] バッチファイルにD&Dするかぎり無理なのら。
635 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 02:42:21 ] ドロップハンドラ作ればええのら。
636 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 14:35:34 ] Drop on Scriptのドロップハンドラは?
637 名前:デフォルトの名無しさん [2010/02/05(金) 14:35:40 ] 累乗計算バッチだるす。
638 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 21:19:53 ] 2の3乗 3の3乗
639 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 14:26:03 ] 初歩的な質問ですみません。とてつもなく初心者です。 kaigi_20100205.txt kaigi20100206,txt 20100207kaigi.txt のようなファイルをrenでリネームさせて、 会議_20100205.txt 会議_20100206.txt 会議_20100207.txt のように統一させたいと思い、 色々と見よう見真似で rename.datファイルに ren kaigi*.txt 会議_*.txt ren *kaigi.txt 会議_*.txt といれてみたのですが、 会議_00207kaigi.txt 会議_gi20100206.txt 会議_gi_20100205.txt という状態になってしまいました。 これは自分のワイルドカードの使い方が根本的に間違っているのでしょうか? どなたかご教授お願いいたします。
640 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:23:12 ] ワイルドカードはファイル名を保持してない
641 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 16:48:59 ] 「kaigi_*.txt」にマッチしたファイル名を「会議_*.txt」がマッチするように書き換えるのであって、 「会議_(kaigi_*.txtの*に相当する部分文字列).txt」というようにはならない。 そしてdosには「*に相当する部分文字列」を取得する機能はないので、 setなどを利用して、自分で作ってやらなければならない。 例えばこんなふうに: @echo off setlocal set NAME1=%~n1 set NAME2=%NAME1:_=% if "%NAME1:~0,5%" == "kaigi" ( echo 会議_%NAME2:~5%.txt ) else if "%NAME1:~-5%" == "kaigi" ( echo 会議_%NAME2:~0,-5%.txt )
642 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 17:33:56 ] @echo off for %%i in (kaigi*.txt) do ( set NAME=%%i call ren %%i %%NAME:kaigi=会議_%% ) for %%i in (*kaigi.txt) do ( set NAME=%%i call ren %%i 会議_%%NAME:kaigi=%% )
643 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:24:58 ] setlocal enabledelayedexpansion for /f %%I in ('dir /b *kaigi*.txt') do @(set a=%%I set a=!a:kaigi=! set a=!a:_=! ren %%I 会議_!a!)
644 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:44:18 ] >640-643 みなさん、ありがとうございます! 試してみましたところ、ばっちり動作しました。 ただ、ばっちり動作しますがプログラムの挙動を自身がまだ理解できてない状態なので これらを元に色々調べてプログラムを練ってみたいと思います。
645 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:23:41 ] 5スレ目でいうのもなんか変だが、 コマンド シェルの概要 technet.microsoft.com/ja-jp/library/cc737438 (WS.10).aspx Windowsヘルプにもあるし、OSごとにリンク先違うけど、ここらへんがテンプレにあっても良くないか? コマンド ライン リファレンス technet.microsoft.com/ja-jp/library/cc778084 (WS.10).aspx バッチ ファイルを使用する technet.microsoft.com/ja-jp/library/cc758944 (WS.10).aspx こっちは、上からリンクあるからイランと思うけど。
646 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:24:35 ] コマンド シェルの概要 technet.microsoft.com/ja-jp/library/cc778084.aspx アチャー
647 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:25:38 ] orz
648 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:53:38 ] 自分の使ってるOSのヘルプならいつでも見れるはずだが、 ヘルプすら読まずに質問するやつが多すぎるという嫌味?
649 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 13:59:37 ] >>646 Runasなんてあったのかー
650 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 15:52:52 ] MSのヘルプは探すのが面倒
651 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 16:15:51 ] ヘルプより掲示板で聞いた方が早いし楽
652 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:00:53 ] WindowsXPのコンソールで、 unixでいうところのsmbclientを使うには、 どのようにしたらよいでしょう? smbはもともとWindowsのプロトコルで、GUIに統合されているため、 smbclientのコマンドラインプログラムというのがあるのかないのか、 よくわからないのですが、 パスワードつきの他のマシンに起動時に自動接続するのに、 ネットワークドライブに割り当てただけではだめだったので、 それならコンソールでコマンドを実行して接続するか、と考えました。 ご存じでしたらアドバイスをお願いします。
653 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:04:43 ] net
654 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:21:50 ] >>653 thanks
655 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 03:13:43 ] MSのヘルプは詳しいのと詳しくないのと差があるからな makecabとかまったくわからんしfsutilとか独自すぎて笑える cmdのヘルプもわかりにくい部類になるだろう 書いてあるのかないのかよくわからんことも多いし 掲示板のほうが楽しいとかはさすがにあれだがw
656 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 21:54:55 ] あのさあ... objShell.Run "コマンド1 | コマンド2 | sort" とかをスクリプトでするとしましょう。 そのとき、途中のコマンドが .vbs とか .wsf の//job:XXX として、 そのなかに Wscript.Sleep 100 があるとパイプラインが詰まる? ことないですか?
657 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 22:37:57 ] それ詰まるもなにもパイプラインにならんだろ?
658 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 22:48:45 ] えー...。 ごめーん コマンド1 とかは Cscript //nologo XXX.vbs で、 XXX.vbs や YYY.wsf //job:ZZZ 内部では Wscript.Echo とか Wscript.StdOut.WriteLine 使用 ではどうだろう。 あげたれ
659 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 23:07:30 ] コマンド1がパイプラインの機能を持ってるのか?という話だが? cmd /cならパイプラインの機能を持ってるが?
660 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 23:29:58 ] あああ、そのとおり objShell.Run "cmd.exe /c " & "コマンド1 | " & ... でした。 で、コマンド1にWscript.Sleep 100 があるとコマンド1で止まっちゃうような。 気がするのです
661 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 00:09:24 ] ないです
662 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:36:31 ] ないですね。はてな
663 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 13:52:42 ] 教えてください。 set AAA=D:\WORK set FOLDER=%1 set INFNAME=%2 set OUTFNAME=%3 set INFPASS=%FOLDER%\%INFNAME% set OUTFPASS=%FOLDER%\%OUTFNAME% copy %INFPASS% %OUTFPASS% で、%1に「AAA」を渡した場合に、FOLDERに%AAA%が設定され、 結果的に%FOLDER% が D:\WORK となる事は可能ですか?
664 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 14:29:10 ] >>663 こんな感じかな? × set FOLDER=%1 ○ call set FOLDER=%%%1%%
665 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 18:01:21 ] >>664 できました。ありがとうございました。
666 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 11:20:25 ] 質問させてください。 パソコンちょっと詳しいからということで、会社の ネットワーク管理者にされてしまいました。 運の悪いことに、次年度からパソコンの更新が行われ、 Windows XP→Windows 7にOSも変更になりました。 前任の人がWindows XP環境でログインしたときに、 仕事でよく使うフォルダへのショートカットを ログイン時のバッチファイルで表示させていたのですが、 Windows 7では動作しないみたいなのですorz Windows 7でバッチファイルでファイルのショートカットを デスクトップに表示させるにはどうしたらいいでしょうか? いろいろググッてみましたが、それ用のフリーソフトが あるみたいなのですが、Windows 7では動きそうにないんです...
667 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 13:05:03 ] pc12.2ch.net/test/read.cgi/win/1243134619/ 管理者スレ
668 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 13:08:37 ] 回答させてください >ログイン時のバッチファイルで表示させていたのですが、 >Windows 7では動作しないみたいなのですorz 動作するかしないかはっきりさせろ! 実行してみりゃどういうエラーが出てるかわかるだろ?
669 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 13:23:23 ] >>668 前任の人の設定のままでXPのマシンをログインすると ちゃんとショートカットでるのですが、7だと、 エラーメッセージも出ず、スルー状態なんです。 (つまり何もおきない) 他のソフトインストールして試して見ます。 このスレの人で、ショートカット表示 させるコマンドライン知っている人い ましたら、ご教示ください。 おながいしまつ。
670 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 14:29:35 ] ドメインへのログオンスクリプトならポリシーの適用してない/できてないとか。 そもそもhomeでドメインに参加できないとか。 ショートカット表示の意味がわからない。 エクスプローラ上で表示させる事なのか、リモート資源の接続先をポップアップさせる事なのか。 とにかく5W1Hで明確に書いてくれないと全くわかんね。
671 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 15:20:16 ] >>670 多分668さんも同一人物 とても親切にしていただいてありがとうございます。 前の設定者はドメインに参加する時点で、windows 2003 server のActive Direcrory処理の際に、ログオンするときのバッチファイルに デスクトップにショートカットを表示させるようにしてたみたいです。 というのも、管理者以外はディレクトリ構造も知らないので、 それを全員に分からせてセキュリティレベルを下げるより、 自動的にショートカットを表示してクリックさせるという形に したようです。確かにパスを追っていけばそのファイルに到達しますが、 わざとそうさせないみたいです。(その方針には私も賛成します) 長文すみません。
672 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 15:22:13 ] で、デスクトップへ通常使うけど、 パスを探られたくないフォルダへの ショートカットを入れたいということです。 パソコンしかさわったことないので、 こういう具体的かつ実践的なご指摘はとても 勉強になります。ありがとうございます。
673 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 17:01:32 ] ポリシー設定のなかにもデスクトップの表示に関する項目があった気がする このスレ的にはログオンスクリプトの中でNET USEで接続しているんだろうな位・・・もしかするとSUBST?
674 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 17:24:57 ] ありがとうございます。 明日は日曜ですが、隠れ出社して試してみます。
675 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 19:12:15 ] バッチからショートカットを作るのはむずかしかろ インターネットショートカットならかんたん ( echo;[InternetShortcut] echo;URL=\\server\sharename\folder ) > desktop\hoge.url
676 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 19:34:54 ] どういう風に作ってたかしらんけど、フォルダ構造が変わったからじゃないの? 大抵は新しいパスへリダイレクトしてくれるけど、AllUsers→Publicの部分はうまくいかない模様 XP以前:C:\Documents and Settings\All Users\Desktop Vista以降:C:\Users\Public\Desktop
677 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 20:15:31 ] >>676 さすがに会社のサーバ?でユーサフォルダ以降のフォルダ使わないだろw まさか、な・・・?
678 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 00:15:40 ] >>675-677 ヒントありがとうございます。 まさかもありえるのでちょっとやってみます。
679 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 05:55:24 ] 規模にもよるけど引継ぎ書とか運用手順書とか必要でしょ。 次の人に渡すにしても。 前任者に要求しとかないとまずいね。
680 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 12:55:36 ] 「ログオンするときのバッチファイル」を、クライアントのWindows7マシン上にコピーして コマンドラインから実行してみたらエラー内容が分かるんじゃない?
681 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 18:47:20 ] みなさんありがとうございます。 バッチファイルが別のバッチファイル呼び出すような 入れ子構造になっていることが判明し、解析に手間取ってます というか、そもそもDOSのコマンド知らないorz 一から調べていますので少々時間くださいまし。
682 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 19:37:11 ] みなさんヒントありがとうございました。 2ch落ちたので、その間にいろいろ調べて 見ました。問題が2点あって、一つが >>676 さんのご指摘に近く、 Xp「デスクトップ」→7「Desktop」 Xp「NetHood」→7「AppData\Roaming\Microsoft\Windows\Network Shortcuts」 Xp「スタート メニュー\プログラム」→「Microsoft\Windows\Start Menu\Programs」 に書き換えるのと、 >>670 673 さんのご指摘に近く、 Xpだとアクセス権のないフォルダ内の実行ファイルも実行できていた のが、7だとアクセス権がないフォルダのファイルはスルーされること が問題で、それらを訂正したら何とか動いてガッツですた。 (3日かかりますた。) ちなみに、それで0からDOSコマンド勉強始めたのですが、 前任者は、ショートカットをアクセスされてもいいフォルダにつくって そのショートカット自体をファイルとしてコピーするということで ショートカットの自動表示をしていました。 大変勉強になりました。また、機会がございましたら、 質問させていただければ幸いです。 (ここから後は管理者スレの内容になりそうなので、 純粋にバッチファイルに関する内容の時にまた来ます。) ありがとうございました。
683 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:56:17 ] cmdでlinuxの mkfifo hoge 的なことってできますか?
684 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:20:27 ] 普通のファイルで1 writer n readerができるが?
685 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 21:13:13 ] CreateNamedPipe()で作れば?
686 名前:デフォルトの名無しさん [2010/03/07(日) 19:34:58 ] Jドライブの直下のlhacaフォルダの下にLhaca.exeという圧縮ファイルがあります それをつかってJドライブ直下にあるaaaフォルダを圧縮してデスクトップに出力させたいのですが どうもうまくいきません どこが悪いかを教えてください cd J:\lhaca Lhaca.exe temp.zip J:\aaa
687 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 23:14:06 ] もしカレントドライブがC:の場合はcdでJ:\lhacaを指定しても そのあと j: でカレントドライブを変更しないと相対でlhaca.exeを入力したら カレントドライブ(C:\)のカレントディレクトリでlhaca.exe探しちゃうけどそこは大丈夫? もしそれが問題なら j: cd J:\lhaca Lhaca.exe temp.zip J:\aaa にすべき。これで違ったらそれはLhaca.exeの問題かも
688 名前:デフォルトの名無しさん [2010/03/07(日) 23:28:57 ] 有り難うございます 既にカレントドライブはJになっています。 Lhacaは普通に手で実行すると普通に開くのですが Dosコマンドで開こうとするとどうしてもエラーになります
689 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 00:10:36 ] >>688 詳しいエラー教えて
690 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 02:30:59 ] +Lhaca 0.76 を落として試してみたけど Windows7 x64で実行するとファイル名バグるな (Lhaca.exe temp.zip readme.txt だと「(」名の空フォルダができるだけ Lhaca.exe .\temp.zip .\readme.txt とすると圧縮はできるけど「(.zip」という名前になる) デラックス版(1.24)も試してみたが、こちらは空フォルダすら作れなかった そもそもマニュアルにコマンドライン引数について何の記述もないし、サポート外の機能のようだ 7-Zipとかコマンドラインに正式に対応してるアーカイバ使った方がいいんでない?
691 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 02:52:16 ] >>690 そうそう。俺もWindows7 x64 だが同じ状況。 Lhaca.exe temp.zip J:\aaa の temp.zipが問題だねえ これを抜いて Lhaca.exe J:\aaa で圧縮するとaaa.zipで圧縮されるから 圧縮ファイルの名前=圧縮するファイルまたはフォルダ だね そもそもzipで圧縮されずにlzhで圧縮されるようだ もしJ:\aaaのフォルダをtemp.lzhにしたいなら ren %2 %1 Lhaca.exe %1 ren %1 %2 上記のコマンドをLhaca.bat かなんかに保存してLhaca.exeと同じフォルダに置き、 Lhaca.bat temp aaa と入力すればデスクトップにtemp.lzhが作成される。 問題点は解凍した時にtempというフォルダになってしまう事か。 圧縮ファイルをrenできればいいけどデスクトップに圧縮されるからOSの関係上、 XPだと デスクトップ vista/7 だと Desktop になって環境によってリネームできない。 結局は>>690 が言っているように別のアーカイバ使った方が良いよってこと。
692 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 03:44:39 ] 文字を入力させて、その文字でファイル名を判断して該当のフォルダに移動するバッチプログラムは需要ある? 別の言語では時々見るんだけどコマンドプロンプトでやってるの見たことないからさ blog-imgs-42.fc2.com/s/h/t/shtpg/fri.txt
693 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 03:57:06 ] >>691 圧縮形式や作成先はLhaca自体の設定(レジストリ)に依存するようだよ Lhacaはコマンドラインで使わないほうがいいな
694 名前:693 mailto:sage [2010/03/08(月) 04:00:46 ] と思ったらレジストリじゃなくて "C:\Windows\Lhaca.ini" なんてのが勝手に作成されてた 行儀が悪すぎる!
695 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 08:24:06 ] >>686 ↓横レスだが、ZIP形式の代わりにLZH形式で圧縮するなら、この二つを併用して… ttp://www.vector.co.jp/soft/win95/util/se028209.html ttp://www.vector.co.jp/soft/win95/util/se020193.html ↓ 例えばWindowsXPの場合、"Lha32.exe"が"C:\WINDOWS"フォルダ直下またはカレントフォルダ、 "UNLHA32.DLL"が"C:\WINDOWS\SYSTEM32"フォルダ直下または"Lha32.exe"と同じフォルダに 存在する状態で、以下のコマンドラインを打ち込めばOKなんだけどね。 LHA32 A /D1 "%USERPROFILE%\デスクトップ\macros.lzh" "J:\aaa\*"
696 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 08:33:40 ] >695をちょっと訂正。 macros.lzh → aaa.lzh いずれにせよ"%USERPROFILE%\デスクトップ\"を指定するのがポイント。 ただし「窓の手」などでデスクトップのフォルダを任意のフォルダに変えてる場合、この手段は使えない。
697 名前:デフォルトの名無しさん [2010/03/08(月) 23:24:41 ] >>691 バッチというかコマンドラインでやっても問題ない アーカイバってどんなのがあるの? 一見しただけじゃわからないからな
698 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:03:50 ] 有名どころならWinRARとか7zipでもできるよ
699 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:31:57 ] コマンドラインならundll.exe使っとけ。統合アーカイバDLLならどれでもおk。
700 名前:693 mailto:sage [2010/03/09(火) 01:48:24 ] 圧縮できればいいのなら makecab という手もある
701 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 02:27:44 ] C:\Program Files\Windows Resource Kits\Tools\compress.exe /? Syntax: COMPRESS [-R] [-D] [-S] [ -Z | -ZX ] Source Destination COMPRESS -R [-D] [-S] [ -Z | -ZX ] Source [Destination] Description: Compresses one or more files. Parameter List: -R Rename compressed files. -D Update compressed files only if out of date. -S Suppress copyright information. -ZX LZX compression. This is default compression. -Z MS-ZIP compression. Source Source file specification. Wildcards may be used. Destination Destination file | path specification. Destination may be a directory. If Source is multiple files and -r is not specified, Destination must be a directory. Examples: COMPRESS temp.txt compressed.txt COMPRESS -R *.* COMPRESS -R *.exe *.dll compressed_dir
702 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:34:51 ] CMDで↓の様なトランザクション処理はどのように記述すればよいのでしょうか? これがないと怖くて処理が書けないのですが。 PowerShell 2.0の新機能(5) ――トランザクション編(1/3):CodeZine codezine.jp/article/detail/4944
703 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:31:12 ] @echo off powershell syori.ps1
704 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:02:59 ] Parameter List: -R Rename compressed files. -D Update compressed files only if out of date. -S Suppress copyright information. -ZX LZX compression. This is default compression. -Z MS-ZIP compression. Source Source file specification. Wildcards may be
705 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:13:21 ] 図解入門 よくわかる最新データ圧縮技術の基本と仕組み ―情報圧縮技術とアルゴリズムの基礎講座 How‐nual Visual Guide Book 圧縮アルゴリズム―符号化の原理とC言語による実装 C magazine
706 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:10:47 ] Windows Vistaのバッチファイルについて質問です。 EXEの起動でパラメータを渡す際スペースがあるものは"" で囲むと思っていたのですが test.exe "C:\Dir 1\" とすると最後の\が消えて C:\Dir 1" として受け取ってしまうようでした 試しにVCで__argvを確認してもそうなっているようでしたが どんな書式規則でこうなるんでしょうか?
707 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:19:37 ] そういやウチのWinXP(SP3)では以下のようにVBScriptファイルを起動すると、 ちゃんと"C:\Dir 1\"と受け取ってくれたよ。 確かWin95/98/Me/NT/2000でも同じ挙動だったはず。 test.vbs "C:\Dir 1\"
708 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:30:02 ] >>707 確認してみましたが、確かにVBSだときちんと受け取ってますね・・。 理由は気になりますが、書式として間違っていたわけではないと わかっただけで大収穫です。 ありがとう。
709 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:19:30 ] >>706 test.exe "a b c d"の中に"を入れるときは、\"でエスケープするだよ test.exe "a \"b c\" d"
710 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:29:21 ] >>709 おお!なるほど!エスケープを使えたとは知りませんでした。 すっきり解決しました。ありがとう。
711 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 20:03:53 ] exeによって解釈は違うから永久にすっきりしないよ。
712 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:08:07 ] 某コマンドラインツールのリスト形式の標準出力を 某コマンド 某オプション | findstr /b /e /c:"hoge foo %fuga%" のような書き方で完全一致検索したいのですが、 リスト形式の標準出力がLF改行となっているらしく (パイプの代わりにリダイレクトして確認)、 findstrコマンドの/eオプションが期待通りに動作しません (/eオプションはCRLF改行しか認識しない?) /rオプションの正規表現モードで\nや\x0Aが使えればいいのですが、 findstrの正規表現は貧弱で使えず、$もLF改行にはマッチしないようです。 VBやVBScriptで使える「VBLF」のようなLF改行を示す定数か、 Chr(10)のような文字コード指定でLF改行を明示する手段は、 MS-DOSバッチファイルにはないのでしょうか? 環境はWinXP Pro SP3です。
713 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:12:40 ] 某コマンド 某オプション | more | findstr /b /e /c:"hoge foo %fuga%"
714 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:27:56 ] /x
715 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 01:51:47 ] 動画ファイルだけどシステム属性が付いてるファイルがあります。 ググったところ、コマンドプロンプトから「attrib ドライブ名:\ファイル名.拡張子 -s」で解除できることがわかりました。 いちいちコマンドプロンプトからやらないで、バッチファイルを作って、それを実行することで解除するようにするにはどういう記述を書けばいいのでしょう。
716 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 02:19:01 ] つ pc12.2ch.net/test/read.cgi/software/1265545912/
717 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 10:01:26 ] >715 @echo off attrib ドライブ名:\ファイル名.拡張子 -s
718 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 10:12:28 ] >>711 Windowsのコマンドで、きえる、\"以外の例を挙げてみろよ
719 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 10:54:37 ] "C:\Program Files\Internet Explorer\iexplore.exe" "www.ya\ "hoo.com"
720 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:42:01 ] 無理すんな
721 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 19:20:51 ] msdn.microsoft.com/ja-jp/library/cc429051.aspx CommandLineToArgvW 関数 対応情報 Windows NT: バージョン 3.5 以降を使います。 Windows: サポートされていません。 Windows CE: サポートされていません。 別に無理していないけど、Windowsでサポートされていない関数の挙動を Windows標準とみなすのはどうかと思うわけよ。 実際いろいろなexeがそれぞれ好き勝手に解釈しているし。
722 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 19:55:53 ] そんな便利なものがあったのか
723 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 20:56:58 ] NT標準でいいが 9xとかいらね
724 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 22:29:59 ] 9xは__argv、NTはCommandLineToArgvW
725 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 17:12:30 ] >>721 無理すんな
726 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 16:59:48 ] 環境変数のuserpartってなに?
727 名前:JGSDF mailto:woman [2010/03/21(日) 00:49:25 ] syosinsya
728 名前:JGSDF mailto:woman [2010/03/21(日) 00:51:01 ] cmd
729 名前:712 [2010/03/21(日) 13:59:48 ] >>713 moreコマンドでは某コマンドの出力行が長くなった時に問題あるかと思い、 find -v ""にて標準出力を無条件にfindする方法にて対応しました。 ですが、LF改行の出力が別のコマンドでフィルタすることによって、 CRLF改行に変換できるというのが大変参考になり、どうもありがとうございました。 >>714 /xオプションなら/bと/eを併用しなくてもよかったのですね ヘルプやオンラインマニュアルで印刷やプリントといったキーワードが使われていたため、 完全一致検索のことを指していると気づいていませんでした。 マイクロソフトの翻訳は微妙なことも多いので、英語版サイトもこれからは見るようにします。 どうもありがとうございました。
730 名前:712 mailto:sage [2010/03/22(月) 08:36:22 ] 引数%1がフォルダだった場合とファイルだった場合で 処理分岐するバッチファイルを作成したいのですが、 修飾子%~a1で取得できる属性には、ディレクトリとファイルを区別する 属性がなく、困っています。
731 名前:730 [2010/03/22(月) 11:28:45 ] OSはWindows Server 2003です。 書き忘れていました.
732 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 12:55:32 ] あるけど?
733 名前:730 mailto:sage [2010/03/22(月) 13:17:56 ] >>732 どうすればよいか教えて頂けませんか?
734 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 17:13:34 ] dirかcd
735 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 17:25:02 ] if exist dirname\con echo dir
736 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 18:17:09 ] cd foo && echo succ || echo fail
737 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 21:26:33 ] FOR /F "eol=-" IN ("%~a1") DO ECHO FOLDR FOR /F "eol=d" IN ("%~a1") DO ECHO FILE
738 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 21:46:12 ] OS:Windows2003 server,WindowsXP 複数のCSVファイル(yyyymmdd_hhmmss.csvのフォーマット) をmoreコマンドでひとつのcsvファイルにマージする際、 プライマリキーにおいて重複するレコードを最新のレコード以外 削除するほうほうってないですかね。 バッチ単体で。
739 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 22:14:40 ] ない
740 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 22:40:00 ] dir /ad /b "%~dp1" | findstr /x "%~nx1" && echo foruda
741 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 18:37:03 ] >>736 cdが変わるからやだ
742 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 19:01:51 ] >>735 "dir name"だと駄目やんけ
743 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 20:29:25 ] cd "c:\System Volume Information" && echo succ || echo fail
744 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 20:34:37 ] >>741 pushd&popd使えよ
745 名前:デフォルトの名無しさん mailto:sage [2010/03/23(火) 22:45:39 ] つcmd /c cd
746 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 23:35:07 ] バッチ内でwmic process get や wmic ntevent を使用して、結果をテキストファイルに出力しようとしています。 ここで、wmicの出力がUnicode、別のリダイレクト部分(START、ENDなどのコメント)がSJISで出力されてしまいます。 wmicの出力をSJIS(CR+LF)にする方法はありますでしょうか。
747 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 01:01:55 ] ttp://scripting.cocolog-nifty.com/blog/2009/09/wmic-6efe.html
748 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 19:05:39 ] >別のリダイレクト部分(START、ENDなどのコメント)がSJISで出力されてしまいます。 これをunicodeで出せばよい
749 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 00:35:26 ] >>740 rootに使えん
750 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 00:31:19 ] >>742 if existはどうやっても駄目だな
751 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 00:43:39 ] if exist "dir name\*" は?
752 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 01:51:37 ] オラも考えてみた。 if exist "%~1" ( dir /a:d "%~1" 1>nul 2>&1 if errorlevel 2 goto nazo if errorlevel 1 goto fileeee if errorlevel 0 goto dirrrrr ) else ( echo "%~1" が無いよ? goto naiyo ) 優雅さに欠けるし、= でダメだ... orz ふと思ったのは %1 を渡された時にたとえば aaa と aaa========== を見分けるにはどーすりゃいいんだ?
753 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 02:11:47 ] pushd %1&&popd echo %errorlevel%
754 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 07:01:38 ] >>752 >ふと思ったのは %1 を渡された時にたとえば aaa と aaa========== を見分けるにはどーすりゃいいんだ? ヒント:findstr /x
755 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 09:22:25 ] >>754 findstr をしようにも、たとえば echo %1 というバッチファイル test.bat で test.bat aaa と test.bat aaa===== でどちらも aaa となって末尾の = が拾えない のを「見分けるにはどーすりゃいいんだ?」と思ったんですが。 オレ何か勘違いしてる?
756 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 14:29:01 ] >>751 あまいな .もない、空のフォルダってぇのがあるのだ >>752 >>753 アクセス権がないフォルダはファイルなのか >>755 別の話を絡めるな test.bat "aaa====="
757 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 14:35:30 ] 厳密にやりたきゃ別の言語使えよ。もう質問してる奴もいないし秋田。
758 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 15:56:47 ] 別の言語使いたけりゃ他スレへ行けよ
759 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 17:34:27 ] 厳密にやりたきゃ%~a1を使えばよいだけの話
760 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:31:02 ] あるソフトウェアのバージョン違いが3つほど入ってるんだけど デスクトップに同じ見た目のアイコンが3つあるからややこしくて。 バッチファイルをクリックすると上下ボタンでどのソフトを起動するか 選択できて、エンター押すと実行っていうのを作りたいんだけど 誰か作ってくんない? イメージ的にはウィンドウズをセーフモードで起動したときに 選択する画面がまずでてくるんだけどあんな感じ☆
761 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:56:46 ] アイコン変えればいいじゃん
762 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 18:03:24 ] デスクトップに3つあるアイコンそれぞれに 異なるショートカットキーを指定すればいいじゃん
763 名前:760 mailto:sage [2010/03/28(日) 18:25:55 ] こんな感じのを作ってみたんだけど やっぱり上下のキーで選択するUIがいいなぁと思うので 誰か改造求む! @echo off echo アプリケーションを選択して下さい echo [1] : メモ帳 echo [2] : ペイント echo [3] : 電卓 set /p INPUT= if "%INPUT%"=="1" start notepad if "%INPUT%"=="2" start mspaint if "%INPUT%"=="3" start calc
764 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 19:38:46 ] Enterなしにキー入力を受け取る方法がないから無理
765 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 19:47:41 ] 指定したファイルをホームページ(FTPで)にバッチファイルで送信することは可能でしょうか?
766 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 19:59:09 ] @echo off echo アプリケーションを選択して下さい echo [1] : メモ帳 echo [2] : ペイント echo [3] : 電卓 choice /c 123 if "%ERRORLEVEL%"=="1" start notepad if "%ERRORLEVEL%"=="2" start mspaint if "%ERRORLEVEL%"=="3" start calc
767 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 20:17:58 ] if 1==2 ( start notepad start mspaint start calc ) ↑
768 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 21:11:49 ] 大昔はそういうメニューが普通にあったが、GUIで死滅したな あってもブート選択画面ぐらいか
769 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 21:15:15 ] 1文字読み取って制御を返すツール作ればいろいろ用途が広がるよ。 2ストロークで26^2個のツール呼び出せるランチャ作ったけど軽くて便利。
770 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 22:05:34 ] powershell使えばカーソル選択メニューが作れるよ
771 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 22:32:52 ] >>765 できるよ バッチファイルとまた一つftpコマンドを書いたテキストファイルが必要になる
772 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 13:10:44 ] >>771 遅レスすみません。 ありがとうございます。おかげでできました。
773 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:37:47 ] コマンドプロンプトに表示された文字を(txt等)に出力ってできますか?
774 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:42:46 ] 無理
775 名前:773 mailto:sage [2010/03/29(月) 22:54:06 ] すみません、自己解決しました。 test.bat > log.txt
776 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:40:05 ] >>775 それだと標準エラーがファイル出力できないよ
777 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:48:00 ] test.bat > log.txt 2<&1
778 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:59:44 ] >>776-777 そうなんですか、知りませんでした! ありがとうございます。
779 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 11:24:07 ] 質問です。 ファイル a.txt.bak ab.html.bal abc.exe.bak があるとすると 拡張子.bakだけ一括で名前変更できるでしょうか?
780 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:17:31 ] できないわけがない
781 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:35:10 ] ren *.bak *.hoge
782 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:51:39 ] それじゃ a.txt.baka ab.html.aho abc.exe.baka 拡張子.bakaだけ一括で名前変更できるでしょうか?
783 名前:779 mailto:sage [2010/03/30(火) 14:02:57 ] すみません、質問の仕方が間違えていました。 bakの部分だけ消したいんです。 a.txt.bak→a.txt
784 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 14:17:18 ] ren *.bak *.
785 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 15:07:17 ] >>784 ありがとうございます できました
786 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 16:00:55 ] hogeよりはahoやbakaの方が好き おっと、kusoも使うなw
787 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 17:21:12 ] chinko manko unko shikko
788 名前:デフォルトの名無しさん [2010/04/06(火) 00:27:29 ] すみません。テキストファイルの中身の特定行だけ抜き出す方法を教えてください。 test.txt中身 --------------- morning hello bye --------------- 上のようなファイルがあったとして、1行目のmorningや、3行目のbyeを 変数やファイルに出力する方法はないでしょうか。 外部コマンドは使えないWindowsXP/2003環境です。
789 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 02:28:58 ] for /?
790 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 02:28:59 ] >>788 find使って >baka.txtとかで出力 うまく使えば一つのバッチファイルで色んなバッチファイルを作成することができるから便利
791 名前:デフォルトの名無しさん [2010/04/06(火) 07:40:04 ] findは外部コマンド
792 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 07:56:00 ] >>788 findstr /r "^morning$ ^bye$" > hoge.txt
793 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 09:11:31 ] >>791 空気読め馬鹿
794 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 09:28:43 ] 料理できないと買ってきた惣菜をならべるぐらいのことでも自慢するんだよ それ外で買ってきたんだろとあきれられてても本人は満足
795 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 20:43:40 ] バッチファイルでテトリス作って
796 名前:デフォルトの名無しさん [2010/04/06(火) 22:12:33 ] >>792 ありがとうございます。 説明が不足してたのですが、必ずしも1行目にmorningがあって、3行目にbyeがあるわけじゃない場合に 1行目、3行目を抽出って出来るんでしょうか。根本から違うやり方考えた方が良いですかね・・・。
797 名前:792 mailto:sage [2010/04/06(火) 22:28:25 ] findstrコマンドは/cオプションを指定しない場合は、 二重引用符内で半角空白区切りで指定されたキーワードを OR検索できるんだけど、 やりたいのは、特定キーワードで抽出したいんじゃなくて、 特定の行番号を抜き出したいってこと?
798 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 23:05:41 ] 下のようなのを作る場合変数iの引数は12個まで とかいう決まりがあるのでしょうか? for %%i in (%*) do xxxxx %%i pause このバッチファイルに引数となるファイルをドラッグ&ドロップしたら 「指定されたデバイス、パス、またはファイルにアクセスできません。 アクセス許可がない可能性があります。」 と言われます。ちなみに12個まではOKでした。
799 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 23:18:13 ] >>798 D&Dした複数ファイルのフルパス文字列の長さが限界に達したのでは? その12ファイルをもっと浅い(フルパスの短い)階層に移動させれば、 13ファイル以上もいけるかと。 Win9x系かNT系かでも変わってくると思う。
800 名前:799 [2010/04/06(火) 23:21:16 ] ごめん。NT系でもNT4.0や2000とXP以降で違うみたい。 support.microsoft.com/kb/830473/ja
801 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 23:25:24 ] >>799 ,800 たぶん、ファイルの長さだと思います。 ありがとうございました。
802 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 23:34:51 ] たぶん? 結局どうでもよかったのか
803 名前:792 [2010/04/06(火) 23:55:34 ] >>796 find /n /v "" test.txt|findstr /b /l "[1] [3]" または type test.txt|find /n /v ""|findstr /b /l "[1] [3]" または type test.txt|findstr /n /v ""|findstr /r "^1: ^3:" Mac環境から書き込んでてテストしてないから間違ってるかも。 特に3つ目の「findstr /n /v ""」は入力ファイルの全行に行番号出力になってないかも。
804 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 23:02:04 ] >>801 >たぶん、ファイルの長さだと思います。 ファイルサイズは関係ないだろ
805 名前:デフォルトの名無しさん mailto:sage [2010/04/08(木) 23:09:06 ] <test.txt ( set /p x= call echo %%x%% >1.txt set /p x= call echo %%x%% >2.txt set /p x= call echo %%x%% >3.txt )
806 名前:spectre [2010/04/11(日) 18:40:33 ] アクティブな画面を「最新の情報に更新」にするバッチってありますかぁ? どなたかよろしくお願いします。
807 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 19:47:26 ] バッチでは不向きな気が… 簡単なものでよければ VBScript 辺りでどう? ' ## update.vbs ## Dim objWshShell ' WshShell オブジェクト Set objWshShell = WScript.CreateObject("WScript.Shell") If Err.Number = 0 Then objWshShell.SendKeys "{F5}" ' F5 を送信 Else WScript.Echo "エラー: " & Err.Description End If Set objWshShell = Nothing
808 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 19:53:59 ] しかしどうやって動かすんだ? 動いたときアクティブなウィンドウは?
809 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 20:05:00 ] 想定の範囲外です(キリッ 適当なフリーソフト使え
810 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 19:17:26 ] ローカルでphpスクリプトを動かす際に一連の流れを バッチファイルでまとめてしまおうと思ったのですが cd "ディレクトリ1" httpd.exe cd "ディレクトリ2" C:\php\php.exe batchtest.php このようなバッチファイルを作ったところ httpd.exeを起動したところで止まってしまい、httpd.exeを終了させないと 次の行に行きませんでした。 どのようにすればすべての処理が行われるでしょうか?
811 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 19:36:02 ] cd "ディレクトリ1" httpd.exe taskkill /im httpd.exe cd "ディレクトリ2" C:\php\php.exe batchtest.php
812 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 20:56:35 ] start httpd.exe
813 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 07:38:21 ] >>811 ヒネリがないので笑えん。
814 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 12:59:02 ] >>813 素直な奴だな。 httpd.exeを終了させないとtaskkillが実行されないという二段オチなのに。
815 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 14:49:58 ] 下記のバッチ内、:mpexec_core にある if 文で落ちてしまいます。 書き方に何か問題があるのでしょうか? ideone.com/OvSYW
816 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 15:10:11 ] その行だけじゃわからないよ 環境変数に適切な値が入っているならちゃんと動くように見える echoの表示やエラーメッセージはどうなってんの? エスパー初級な解答 if "%xxx%" geq "%yyy%"のように""で括れば 環境変数が空の場合でも落ちる事はなくなるはず
817 名前:815 mailto:sage [2010/04/13(火) 15:25:07 ] >816 if "%MP_MAX%" geq "%MP_NUM%" ( に変更しても落ちました。 直前の出力は if 1 geq 1 ( なので、両方に1が入っていることは確認済みなのですが・・・。 エラーは 「コマンドの構文が誤っています。」 です。
818 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 18:43:38 ] エラーの詳細が出るようにバッチの先頭におまじないを書いておく echo W 100 2 0 200 | debug
819 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 18:47:20 ] >>817 ()のなかの命令が不適切なのでは?
820 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 19:54:16 ] ( ) の中で SET を使うのはやめといた方がいいよ GOTO 文などに置き換えれば動くはず
821 名前:815 mailto:sage [2010/04/13(火) 20:06:10 ] >>819 ,820 ()の中を関数化したら正常に動作しました。 ありがとうございました。
822 名前:デフォルトの名無しさん [2010/04/13(火) 20:43:32 ] すべてのウィンドウを「最新の情報に更新」にするバッチってありますかぁ?
823 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 22:48:22 ] ないよ
824 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 02:26:10 ] ありがとうございました。
825 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 17:07:20 ] 作成日時は%~t1で取れますかぁ?
826 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 17:14:10 ] ヘルプ見るの面倒
827 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 09:14:28 ] >>825 こういうこと? for /? より %~tI - %I ファイルの日付/時刻に展開します。
828 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 14:10:17 ] それ更新日時
829 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 18:25:03 ] >>828 827じゃないが、ファイルの日付が何になるかって、 環境変数で変更できなかったっけ? まぁ、できなくても、作成日時だったら、 他の手段で、何とでもなるから困らないけどね
830 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 20:08:20 ] それDIRCMD
831 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 06:44:59 ] >>814 だから、それは一目見て分かることで何の面白味もないの。
832 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 07:35:16 ] >>810 httpdが無いと動かないようなphpなら netstatとか使って、httpdが起動完了したことを検知しないと駄目な気がする まぁ、batchtest.php内で成功するまで待つって手もあるけど… あと、最後にhttpdを止める必要はないの? 動かしっぱなしなら、httpdをバッチで起動する意味はないと思うけど?
833 名前:デフォルトの名無しさん mailto:sage [2010/04/20(火) 18:16:02 ] 馬鹿じゃないんだからそんなこといちいち聞かれなくても分かってますよ。
834 名前:デフォルトの名無しさん [2010/04/23(金) 20:48:27 ] バッチでキューを実装したいけど実装できますよね? 現状想定案 ■I/F QUE.bat -que|-deq -prm1 prm1=パラメタファイル 格納DIR 、入力元DIR、出力先DIR、ファイル名 ■que指定時 1.入力ファイル名と同名のファイルが格納先にないかチェック ↓ ↓ない ↓ 末尾0付格納 3.カウンタをインクリし2に戻る ■deq指定 1.格納先ディレクトリに末尾0ファイルがあるかチェック ↓ ↓ない ↓ エラー返却 ↓ ↓ある 2.ファイルを出力先に出力 ↓ 3.カウンタで小さい方からサーチ カウンタ-1でリネーム
835 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 23:48:57 ] 実装自体はいけそう que指定時の2の処理が不明だったり 格納ファイルのフォーマット(ファイル名の規則)をどう定義するか カウンタの初期値をどこから設定するかなど細部が気になる
836 名前:デフォルトの名無しさん [2010/04/24(土) 00:35:27 ] >>835 携帯から書いたら改行多すぎと言われて、消しすぎたぜ… ■大体決めたこと 1.格納先のファイル名は入力ファイル名+連番。 1〜が数えやすそうかな。 2.返却値はキューの残数。 取出失敗時はマイナス ■迷ってること 1.格納先DIRパスとファイルの種類は1対1で対応させるかどうか? 2.キュー残数チェック用のオプションを実装するか? 3.もっと汎用的な設計がないか? (サンプル的なやつ) 4.バッチ暦10日だけどそもそも言語仕様的に無理とかないよね? できそうと聞いて安心したよ。 迷4以外はただの設計とアルゴリズムだし。 技術的に困ったらまたお願いします。