【.cmd】 バッチファイルスクリプト %5 【.bat】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/05/14(木) 11:29:31【.cmd】 バッチファイルスクリプト %4 【.bat】
http://pc12.2ch.net/test/read.cgi/tech/1229955189/
0002デフォルトの名無しさん
2009/05/14(木) 11:32:130003デフォルトの名無しさん
2009/05/14(木) 11:37:18DOSでプログラミング
http://pc11.2ch.net/test/read.cgi/tech/1047001533/
HTAをもっと流行らせる計画 Part2
http://pc11.2ch.net/test/read.cgi/tech/1220874815/
WSH(・∀・)スレッド! Part 3
http://pc11.2ch.net/test/read.cgi/tech/1208948450/
Windows板:お前ら、wsh使ってますか? Part7
http://pc11.2ch.net/test/read.cgi/win/1190548945/
Windows板:Windows PowerShell 2.0
http://pc11.2ch.net/test/read.cgi/win/1221046998/
Windows板:初心者〜管理者まで必読!コマンドライン(DOS Pt.7)
http://pc11.2ch.net/test/read.cgi/win/1217738171/
Windows板:MS-DOS・Win3.1総合スレッド2.01
http://pc11.2ch.net/test/read.cgi/win/1212957424/
OS板:DOS全般を語るスレ 2
http://pc11.2ch.net/test/read.cgi/os/1179114566/
OS板:■★▲DOSはまだ現役! Drive.B:
http://pc11.2ch.net/test/read.cgi/os/1046875141/
昔のPC板:MS-DOS総合スレッド 2
http://gimpo.2ch.net/test/read.cgi/i4004/1144778720/
0004デフォルトの名無しさん
2009/05/14(木) 13:03:220005デフォルトの名無しさん
2009/05/14(木) 13:04:160006デフォルトの名無しさん
2009/05/14(木) 13:05:050007デフォルトの名無しさん
2009/05/14(木) 14:19:43「コマンド.exe 1> テキスト.txt」 と "1" が入るのだが何故なんだぜ?
0008デフォルトの名無しさん
2009/05/14(木) 14:27:44標準出力が1で標準エラー出力が2
数字を省略すると1、つまり標準出力とみなされる
0009デフォルトの名無しさん
2009/05/14(木) 14:35:05どうもありがとう。
0010デフォルトの名無しさん
2009/05/17(日) 23:26:450011デフォルトの名無しさん
2009/05/18(月) 22:17:19STARTとENDという文字列があり、
STARTの方が、ファイルの先にあり、ENDが後にあると
判定するにはどうすれば良いでしょうか。
test.txt-----------------------------------
ランダムな文字列ランダムな文字列ランダムな文字列
ランダムな文字列ランダムな文字列 START
ランダムな文字列ランダムな文字列ランダムな文字列
ランダムな文字列ランダムな文字列ランダムな文字列
ランダムな文字列ランダムな文字列 END
ランダムな文字列ランダムな文字列ランダムな文字列
-------------------------------------------
0012デフォルトの名無しさん
2009/05/18(月) 23:36:27gawk "/START/{s=1}/END/{exit s}" textfile.txt
if errorlevel 1 echo OK
0013デフォルトの名無しさん
2009/05/21(木) 20:27:16set /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 だよ
0014デフォルトの名無しさん
2009/05/21(木) 20:30:03つかえないんだっけ?
0015デフォルトの名無しさん
2009/05/23(土) 15:31:270016デフォルトの名無しさん
2009/05/24(日) 01:27:240017デフォルトの名無しさん
2009/05/24(日) 02:43:500018デフォルトの名無しさん
2009/05/24(日) 18:30:11「XXX」が含まれる行以下4行をコメントアウトしたい場合、どのように組めばいいんだろう。
test.xml
<〜〜〜>(id="〜〜〜-XXX-〜〜")
<name>〜〜〜</name>
<file = "〜〜〜〜〜"/>
</〜〜〜>
を
<!--<〜〜〜>(id="〜〜〜-XXX-〜〜")
<name>〜〜〜</name>
<file = "〜〜〜〜〜"/>
</〜〜〜>-->
といった具合にコメントアウトしたい。
0019デフォルトの名無しさん
2009/05/24(日) 18:43:130020デフォルトの名無しさん
2009/05/24(日) 18:46:31わざわざバッチでやるやつがいるか?
0021デフォルトの名無しさん
2009/05/24(日) 19:05:03うぅむ。難しいんですかね。
文字コードはShift_JISのはずですが。
xmlを公開、配布していて、そのxmlをユーザー側でバージョンアップさせるために
バッチファイルを使って中身を書き換えられれば良いかと思ったのですが。。。
0022デフォルトの名無しさん
2009/05/24(日) 19:20:06人に配布するならまともな方法を選ぶべき
0023デフォルトの名無しさん
2009/05/24(日) 23:43:460024デフォルトの名無しさん
2009/06/01(月) 00:43:40ファイル名に使用できちゃうって事を誰も咎めないの?
0025デフォルトの名無しさん
2009/06/01(月) 00:48:11バックスラッシュだお
0026デフォルトの名無しさん
2009/06/01(月) 12:44:450027デフォルトの名無しさん
2009/06/01(月) 14:11:31>>26 PATH="c:\hoge;hoge";c:windows みたいに書けと言っとります
0028デフォルトの名無しさん
2009/06/02(火) 16:13:11HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\TimeZoneKeyName
のキーから読み込んだ値を任意の変数にセットしたいのですが
REG QUERYを使うまでは分かったものの、そこから先へ進めず手詰まりの状態です
0029デフォルトの名無しさん
2009/06/02(火) 16:54:170030デフォルトの名無しさん
2009/06/02(火) 17:05:520031デフォルトの名無しさん
2009/06/02(火) 19:14:25〔米〕 …の名をもらって; …のために (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).
0032デフォルトの名無しさん
2009/06/07(日) 21:57:23ファイルにリダイレクトしてから、forで取り込むとか
0033デフォルトの名無しさん
2009/06/07(日) 23:55:15もう解決しました
batファイルだけでOKな方法で
0034デフォルトの名無しさん
2009/06/08(月) 12:03:460035デフォルトの名無しさん
2009/06/09(火) 06:38:450036デフォルトの名無しさん
2009/06/09(火) 13:41:180037デフォルトの名無しさん
2009/06/13(土) 03:40:26------------
%1
del %1
------------
今は上記のように書いていて、あるファイルをD&Dでバッチファイルに送るとそれを実行し、すぐさま削除、となるようにしたいのですが、
1行目のファイルを実行したところで止まり、アプリケーションを手動で終了させないと次に進んでくれません。
(D&Dで実行させたいファイルはアプリケーションが起動中でも削除可能)
解決策があれば教えてください。よろしくお願いします。
0038デフォルトの名無しさん
2009/06/13(土) 03:49:51ただ、直後だと流石に削除が早すぎる気がする
何らかの方法で多少の待ち時間は入れた方が良くないか
003937
2009/06/13(土) 04:52:26早速のレスありがとうございます!
startコマンドを使用してみたところ、期待通り動作してくれるようになりました。
>ただ、直後だと流石に削除が早すぎる気がする
自分も多少心配だったのですが、何度か試しても今のところは問題なく処理できているようなので、
当面はこのままにしておいて、不具合が出るようなら待ち時間の追加をしたいと思います。
どうもありがとうございました!
0040デフォルトの名無しさん
2009/06/13(土) 22:07:03del %1 || ping localhost -n 2 && goto loop
とかやっとけばリトライできる
0041デフォルトの名無しさん
2009/06/14(日) 03:31:150042デフォルトの名無しさん
2009/06/16(火) 15:29:14echo ProductName = %Name%
pause
実際のProductNameはWindows Vista (TM) Ultimateなのだけど
NameにはWindowsまでしか入らない・・・
空白文字に対応するのはどうすれば?
0043デフォルトの名無しさん
2009/06/16(火) 15:34:300044デフォルトの名無しさん
2009/06/16(火) 16:30:25echo ProductName = %Name%
pause
0045(1/2)
2009/06/16(火) 20:09:17ですが質問をさせてもらいやす。
現在VNCのようなソフトでwindowsサーバにログイン後、
吐き出されたログにエラーが含まれてないかのチェックを行ってます。
************************************************************************
1. 日次バッチのログ
▽親バッチログフォルダ
├▽子フォルダ1
│ └ログ1
├▽子フォルダ2
│ └ログ2
…
└▽子フォルダ9
└ログ9
これら1〜9のログ全てから、「エラー」「Ora-***」の文字が含まれる行を出力したい。
************************************************************************
0046(2/2)
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」を含む行を出力したい。
************************************************************************
アウトプットの方法はバッチ起動したらコンソールに表示でも、既に絞り込まれて一つの
ファイルにまとめられたとかでも確認作業の効率化が図れればなんでもいいです。、
バッチ処理内容を変更できないので、あくまで生成されたログに対しての確認の効率化の方法をお願いします。
0047デフォルトの名無しさん
2009/06/16(火) 20:17:13Win板のWSHスレかコマンドスレ行ってみたら?
…まぁ、どうしてもバッチでやりたいと言うなら
このスレ的にも問題は無いから、ちょっと考えてさせて欲しいw
0048デフォルトの名無しさん
2009/06/16(火) 20:21:47やはりWSH向きですかね? 自分でどうにかしようと調べたときにはWSHという存在も知ったのですが…
bat以上に馴染みがなかったので少しはわかるbatでの方法を聞いてみようかと
個人的には確認作業の効率化が目的なので、その方法は何でもいいのですが、
せっかくこちらで聞いたので、しばらくこっちで回答を待ってみます。
よい方法がないとかあまりに非効率的そうなら改めてWSHスレで聞いてみます。
0049デフォルトの名無しさん
2009/06/17(水) 21:03:50じゃあだめなのかなfor /rで各階層を見に行って。
messengerサービスが動いていれば、その後net sendで監視用クライアントにメッセージ飛ばす。
0050デフォルトの名無しさん
2009/06/17(水) 22:42:500051デフォルトの名無しさん
2009/06/17(水) 22:43:360052デフォルトの名無しさん
2009/06/28(日) 16:25:24----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から戻ったときのカレントディレクトリにもどすような手段はないものでしょうか?
0053デフォルトの名無しさん
2009/06/28(日) 16:26:10o のように、カレントディレクトリを内部で変える別ディレクトリのバッチをcallした後は、
0054デフォルトの名無しさん
2009/06/28(日) 17:02:110055デフォルトの名無しさん
2009/06/28(日) 18:37:10setlocal
cd /D %~dp0
dir
0056デフォルトの名無しさん
2009/06/28(日) 21:14:30popd
0057デフォルトの名無しさん
2009/06/28(日) 22:04:010058デフォルトの名無しさん
2009/06/28(日) 22:53:54for .. in do ren 文に関するとところで問題が起きました
hoge フォルダ内にあるjpgファイルの名前の長さを短くした後
連番ファイルにリネームするバッチファイルを作ろうと試みました。
for %%i in (c:\hoge/*.jpg) do (
ren %%i %%i:~0,4
................
といった流れでバッチファイルを作ったのですが
コマンドが間違っていると怒られました。
「ファイル名を短くする」といった作業だけでもうまくいけば
全ての作業がうまくいくと思うので皆様の英知をお貸しくださいませ
0059デフォルトの名無しさん
2009/06/29(月) 00:17:55なにこれ?こんなのないだろ?
0060デフォルトの名無しさん
2009/06/29(月) 00:22:400061デフォルトの名無しさん
2009/06/29(月) 00:27:08例えば
echo %date%
だったら
2009/06/29
って出力されるじゃないですか?
それを
echo %date:~0,4%
としたら
2009
と出力されるのを応用したんですよ。
0062デフォルトの名無しさん
2009/06/29(月) 00:43:570063デフォルトの名無しさん
2009/06/29(月) 00:45:01じゃあどうやったらバッチファイルで短くファイル名を変えることが出来ますか?
0064デフォルトの名無しさん
2009/06/29(月) 00:48:150065デフォルトの名無しさん
2009/06/29(月) 00:53:02わかんないだけだろw
0066デフォルトの名無しさん
2009/06/29(月) 07:59:47ファイル名を環境変数に入れれば、その環境変数を >>61 みたいにすることはできる。
>>58 みたいに for ループの中で使うのなら、遅延環境変数の設定が必要。
しかし、先頭 4 文字だけだと、同じ名前になることがあるのでは ?
0067デフォルトの名無しさん
2009/06/29(月) 09:33:18的確なアドバイスありがとうございます
確かに先頭4文字だけだと同じ名前になってしまいますね。
ここにさらに連番にするというものをつくって解決させたいと思います
この単一バッチファイルでかのうでしょうか?
0068デフォルトの名無しさん
2009/06/29(月) 09:54:56番号のみを環境変数で保持すればよいのではないだろうか。
for ループ内で set /a num += 1 などとして、連番で増やしていく。
必要なら「短いファイル名」と「連番」を連結して、新しいファイル名にすれば
いいと思うけれど、いっそのこと「連番」だけでもいいのでは ?
いずれにしても、ひとつのバッチファイル内で可能。
0069デフォルトの名無しさん
2009/06/29(月) 11:55:07どなたかご存知の方いませんか?
0070デフォルトの名無しさん
2009/06/29(月) 13:00:01なるほど、ありがとうございます
set /a num += 1
set num =%%i
ren %%i = %num%
でコマンドを走らせたのですがなかなかうまくいきません。
どこがおかしいのでしょうか?
0071デフォルトの名無しさん
2009/06/29(月) 13:41:180072デフォルトの名無しさん
2009/06/29(月) 14:03:59わかならい人は黙っててください^^;
0073デフォルトの名無しさん
2009/06/29(月) 14:06:48for %%i in (c:\hoge\*.jpg) do call :fuga %%i
exit /b
:fuga
set /a num+=1
ren %1 %num%.jpg
exit /b
0074デフォルトの名無しさん
2009/06/29(月) 14:14:22さきほどは失礼なことを言って申し訳ありませんでした
0075デフォルトの名無しさん
2009/06/29(月) 14:18:08あ、でもなんだかコマンドの構文が間違っていますってでました・・
0076デフォルトの名無しさん
2009/06/29(月) 14:42:08for %%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 に正しく値が代入されてないみたいでした。
これは環境変数の問題なんですかね?
0077デフォルトの名無しさん
2009/06/29(月) 14:46:250078デフォルトの名無しさん
2009/06/29(月) 14:49:33あ?もういっぺん言ってみろや
ふざけんなマジで
0079デフォルトの名無しさん
2009/06/29(月) 14:58:40お前いい奴だな
ありがとう
いい夢見れるわ
0080デフォルトの名無しさん
2009/06/29(月) 19:08:5416bitのMS-DOSならエスケープシーケンスやBATKEYを使えば作れるかもしれない。
cmd.exeだけじゃむずかしいだろう。
0081デフォルトの名無しさん
2009/06/30(火) 21:37:540082デフォルトの名無しさん
2009/07/01(水) 00:20:30hoge.bat > log.txt
とすることで、コマンドプロンプトウィンドウの代わりにファイルへ出力できますが、
この任意のバッチ(hoge.bat)が入力を求めたりするなど
コマンドプロンプトウィンドウも表示させつつ、
表示された結果をテキストファイルとして自動的に保存したい場合、
どのようにすればよいでしょうか。
出力されたテキストを後からtypeするだけだと、
>入力を求めたりする
ときなど、当然ながら期待した動作になりません
0083デフォルトの名無しさん
2009/07/01(水) 02:38:330084デフォルトの名無しさん
2009/07/01(水) 02:44:110085デフォルトの名無しさん
2009/07/01(水) 20:43:55意味判らんがteeみたいのがほしいってこと?
0086デフォルトの名無しさん
2009/07/01(水) 23:02:170087デフォルトの名無しさん
2009/07/01(水) 23:32:56呼び出される側(実際にコンソールへ文字を出力しているバッチ)は
いじらない方法で実現したいのです
>>85-86
そんなかんじです。
0088デフォルトの名無しさん
2009/07/02(木) 00:37:270089デフォルトの名無しさん
2009/07/02(木) 01:01:55localhostにtelnetしてログを採取w
0090デフォルトの名無しさん
2009/07/02(木) 01:27:55コンソールログはなかなか上手い方法が見つからないです…
いったんパイプすると、出力色情報とか消えちゃうんですよね…
>>89
それはww
0091デフォルトの名無しさん
2009/07/02(木) 15:53:142009063020000701-プレミアム8<文化・芸術> “皇帝”たちの野望「始皇帝 中国を作った男」.ts
を送ってもbatが動かないです。
%1
%~d1
%~p1
%~n1
%~x1
%~s1
を試しても途中までのファイル名しか認識しません。
なぜですか?どうすれば認識するようになりますか?
0092デフォルトの名無しさん
2009/07/02(木) 22:05:21""でくくってコマンドラインに渡してる?
0093デフォルトの名無しさん
2009/07/02(木) 22:08:25その質問からは適切な答えは出てこないだろう
0094デフォルトの名無しさん
2009/07/03(金) 01:33:300095デフォルトの名無しさん
2009/07/03(金) 03:23:36""でくくれ
009653
2009/07/03(金) 07:09:25>>54
cmd.exe経由で呼び出すのはお手軽でいいですね
表示はどうなるんだろ?おなじコンソールでは出力されるのだろうか?
試してみないと…
>>55
setlocal しらんかった( ´д`)
バッチファイル内の環境変数の変更を一時的なものにできるんですね。
バッチファイル内で使うと、最後に到達した時に元の設定が復元される、ということみたいですね。ということは、endlocalは要らないのか。
setlocal,endlocal - コマンドプロンプトを使ってみよう! −バッチファイル−
http://ykr414.com/dos/dos05.html#09
setlocalとendlocal
http://www.confrage.com/dos/batch-grammar/setlocal_endlocal/setlocal_endlocal.html
>>56
pushd,popdでディレクトリ情報をスタックできるんですね。すっかり存在を忘れてた…
レスしてくれた人ありがとう!試してみます!
0097デフォルトの名無しさん
2009/07/03(金) 13:36:17つわりレス…?
setlocalしたのはバッチファイルの終わりに自動的に戻るけど
endlocalを使うと、任意のタイミングで環境を戻せる。
普通に、途中から元の環境で実行したい、というのにも使えるし
例えば、一部の環境変数だけは戻り先にも残したい…なんて時に
rem 環境変数Aは引き継ぎたい
(
endlocal
set A=%A%
)
とかやると、括弧内の%変数%は括弧内を実行する前に全て展開されるので
endlocal後に改めてAに同じ内容が入り、引き継げることになる
0098デフォルトの名無しさん
2009/07/04(土) 01:31:490099デフォルトの名無しさん
2009/07/04(土) 01:42:070100デフォルトの名無しさん
2009/07/04(土) 01:45:430101デフォルトの名無しさん
2009/07/04(土) 03:13:430102デフォルトの名無しさん
2009/07/04(土) 10:59:28xpはできるけどビスタは理論上できない。
0103デフォルトの名無しさん
2009/07/04(土) 11:11:330104デフォルトの名無しさん
2009/07/04(土) 11:52:580105デフォルトの名無しさん
2009/07/06(月) 12:09:38%%iを"%%i"として渡せばいける
for %%i in ("%homedrive%%homepath%\hoge\*.jpg") do call :fuga "%%i"
0106デフォルトの名無しさん
2009/07/06(月) 12:19:310107デフォルトの名無しさん
2009/07/09(木) 01:36:18reg add HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
としたバッチファイルを実行すると無限ループしてしまうのですが、なぜでしょうか。
/vオプションや/t, /d, /fオプションをつけてもループしてしまいます。
コマンドプロンプトで直接打てばエラーはでません。
0108デフォルトの名無しさん
2009/07/09(木) 02:14:080109デフォルトの名無しさん
2009/07/09(木) 02:24:52ありがとうございます!
reg.exe addとしたらできました!
0110デフォルトの名無しさん
2009/07/09(木) 13:37:02エスパーってほんとにいるんだな…
0111デフォルトの名無しさん
2009/07/09(木) 23:42:21理解するのに数秒かかった
超納得。
0112デフォルトの名無しさん
2009/07/10(金) 19:38:130113デフォルトの名無しさん
2009/07/10(金) 22:04:021日以上悩んでわからなかったorz
0114デフォルトの名無しさん
2009/07/10(金) 22:16:300115デフォルトの名無しさん
2009/07/10(金) 23:28:47ここでも3回以上同じ質問見たぞ。
0116デフォルトの名無しさん
2009/07/11(土) 01:03:360117デフォルトの名無しさん
2009/07/11(土) 01:25:38人間「よし、実行しよう、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待ちなんですけど…」
0118デフォルトの名無しさん
2009/07/11(土) 15:47:220119デフォルトの名無しさん
2009/07/11(土) 16:57:01cc -o test test.c で作ったtestコマンドがなぜか動かないという、真逆の問題だがなw
0120デフォルトの名無しさん
2009/07/11(土) 17:07:16unixでpathの先頭にカレントディレクトリを追加しとくと
なんかセキュリティがどうのこうので、まずいんだっけ?
0121デフォルトの名無しさん
2009/07/11(土) 17:25:200122デフォルトの名無しさん
2009/07/11(土) 20:30:36パスの先頭がカレントディレクトリだったらsuトロイを置きまくるぜ
0123デフォルトの名無しさん
2009/07/11(土) 22:01:500124デフォルトの名無しさん
2009/07/11(土) 22:30:260125デフォルトの名無しさん
2009/07/13(月) 22:20:13ただし、z:\batが存在しない場合にはこれもバッチファイルの中で作成するようにする。
これをつくるためには
IF NOT EXIST z:\bat(
md z:\bat)
ELSE(move z:\test03.bat z:\bat)
ではなにがいけないのか教えてください。実行するとIF NOT EXIST z:\bat(
のところに構文エラーがでるんですが
0126デフォルトの名無しさん
2009/07/13(月) 22:31:27が存在しない
0127デフォルトの名無しさん
2009/07/13(月) 22:41:00修正してみました
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? )
となってしまい何も起きないんですがどうしてでしょうか
0128デフォルトの名無しさん
2009/07/13(月) 22:42:490129デフォルトの名無しさん
2009/07/13(月) 22:48:02もう一度実行して確認
0130125
2009/07/13(月) 22:56:19z:\batがある状態でやってもtest03.batがz:\batに移動されません。
どうしてでしょうか?一応文はあっているのでしょうか?
0131デフォルトの名無しさん
2009/07/13(月) 23:06:59testコマンドがなぜか動かないという
あれ?何で反応がないんだろう
っと…ああ、これか
0132デフォルトの名無しさん
2009/07/13(月) 23:13:590133デフォルトの名無しさん
2009/07/14(火) 00:49:27バッチファイルにすればよい
0134デフォルトの名無しさん
2009/07/14(火) 03:52:310136デフォルトの名無しさん
2009/07/14(火) 05:59:070137デフォルトの名無しさん
2009/07/14(火) 10:04:14>>131
>>135
ひでぇw
0138デフォルトの名無しさん
2009/07/14(火) 12:32:13自作のtestコマンドを作ってはまったやつが世界中で10万人はいるにちがいない
0139デフォルトの名無しさん
2009/07/14(火) 14:27:05プロジェクトの名前がcalなんだからぁしょうがないw
0140デフォルトの名無しさん
2009/07/14(火) 15:52:15バッチでdoskeyマクロが使えなくて、落ちがつけられなくなったんだろ
0141デフォルトの名無しさん
2009/07/18(土) 12:49:26find "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コマンドでタスク作成してもうまくタスクが起動しません!
どうしたら良いでしょうか?
0142デフォルトの名無しさん
2009/07/18(土) 13:55:13このバッチファイル名のファイル名は reboot.bat です。
0143デフォルトの名無しさん
2009/07/21(火) 22:40:29if の条件判断の方法が思いつきません。
ご教示ください。
0144デフォルトの名無しさん
2009/07/21(火) 23:28:060145デフォルトの名無しさん
2009/07/22(水) 00:44:27thx、助かりました。
0146107
2009/07/27(月) 22:23:00ファイル名まで書けばほとんどの方が気づいてくれたのでしょうけど。
気づかなかった自分が穴があれば入りたいほど恥ずかしかったです。
>>116
今更ですが、念のため書きます。>>112が原因です。
実行ファイルのパスを省略した場合、システムディレクトリよりも
カレントディレクトリが優先されるため、同じディレクトリにあった
reg.batを呼び出してしまっていたのです。
0147デフォルトの名無しさん
2009/07/28(火) 02:51:520148デフォルトの名無しさん
2009/08/03(月) 05:12:34> type fukust.txt:memo.txt
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
> if exist fukust.txt:memo.txt echo xxx
何この副ストリームの微妙な対応っぷり
書き込みオンリーじゃ意味ねぇ
0149デフォルトの名無しさん
2009/08/03(月) 09:17:13more < fukust.txt:memo.txt
0150デフォルトの名無しさん
2009/08/03(月) 14:15:350151デフォルトの名無しさん
2009/08/04(火) 12:34:57インターネット上のテキスト(html)を取得することはできますか?
telnetとか見つけたんですが、ちょっと違う??
0152デフォルトの名無しさん
2009/08/04(火) 14:36:050153151
2009/08/04(火) 21:46:32ぐ・・・powershell というのは、DOSとは違うものですね?
やっぱDOSでは無理でしょうか。
でもヒントありがとうございます。
0154デフォルトの名無しさん
2009/08/04(火) 22:01:28どうしてもコマンドがいいならwgetなんてのもあるけど結局別途インストールが必要。
0155151
2009/08/04(火) 23:24:50なるほど、wgetなら聞いたことがあるのでそっちでやってみます。
インストールといってもコピーするだけなんですね、できそうかも。
どうもありがとう。
0156デフォルトの名無しさん
2009/08/05(水) 20:55:21for /f "delims=*" %i in ('dir /s /ad /b ^| sort /r') do @rmdir "%i" 2> nul
なるコマンドをネット上で見たのですが
"iの使い方が誤っています"なるエラーが出てしまいます。
引用変数を上手く渡すにはどうすればいいのでしょうか。
osはwin2kです。
0157デフォルトの名無しさん
2009/08/05(水) 21:20:450158156
2009/08/05(水) 21:28:170159デフォルトの名無しさん
2009/08/07(金) 14:16:38.bat, .cmdとその他を区別して呼び出すのがだるすぎるぜ
0160デフォルトの名無しさん
2009/08/07(金) 14:56:340161デフォルトの名無しさん
2009/08/07(金) 14:58:370162デフォルトの名無しさん
2009/08/07(金) 18:37:36@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
0163デフォルトの名無しさん
2009/08/07(金) 19:38:070164デフォルトの名無しさん
2009/08/07(金) 21:18:28thx!本当だw
見直してたら、もう少し洗練出来る事に気が付いた。
0165デフォルトの名無しさん
2009/08/07(金) 21:22:49http://schiphol.2ch.net/test/read.cgi/parksports/1217581664/l50
0166デフォルトの名無しさん
2009/08/13(木) 14:57:11ってどう書けばいい?
0167デフォルトの名無しさん
2009/08/16(日) 21:04:19start cmd /c "bbb.exe & waitfor /si hoge"
waitfor hoge
ccc.exe
0168デフォルトの名無しさん
2009/08/17(月) 00:14:280169デフォルトの名無しさん
2009/08/17(月) 16:40:27javac %~n1.java
java %~n1
pause
これだとディレクトリがC:\WINDOWSでファイルが見つかりません
.javaファイルがあるディレクトリか,バッチファイルがあるディレクトリに
移動するにはどうすればいいでしょうか
0170デフォルトの名無しさん
2009/08/17(月) 16:58:560171デフォルトの名無しさん
2009/08/17(月) 17:14:310172デフォルトの名無しさん
2009/08/17(月) 17:21:01cd %~dp0
名言集 その4
『俺の経歴カックイイだろ?』
http://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
----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください
0174デフォルトの名無しさん
2009/08/20(木) 15:23:160175デフォルトの名無しさん
2009/08/20(木) 15:34:000176デフォルトの名無しさん
2009/08/20(木) 17:39:040177デフォルトの名無しさん
2009/08/21(金) 21:54:04わかるかたいましたらよろしくお願いします。
0178デフォルトの名無しさん
2009/08/21(金) 22:35:49dir
if
%~zi
attrib
0179デフォルトの名無しさん
2009/08/22(土) 06:11:21どういう用途に使うんだろう、と言ってみる
0180デフォルトの名無しさん
2009/08/22(土) 13:50:21・学生番号(ユーザーID)とパスワードをユーザーにキーボード入力させる
・入力された値はコンピュータが保持する(今後ID/パスを入力しなくても接続できる)
といった形にしたいのですが、どう組めばいいでしょうか?
0181デフォルトの名無しさん
2009/08/22(土) 14:17:0810行のリストを読んだら、var1からvar10までの変数を生成して欲しいのですが
0182デフォルトの名無しさん
2009/08/22(土) 14:22:05for /F %%a in ( list.txt ) do (
set /a count = !count!+1
set line=line!count!
set !line!=%%a
)
echo !line9!
0183デフォルトの名無しさん
2009/08/22(土) 20:22:45ありがとうございます。
もうちょいヒント下さい。。。
0184デフォルトの名無しさん
2009/08/22(土) 21:27:09dir /?
if /?
attrib /?
0185デフォルトの名無しさん
2009/08/25(火) 04:05:54これ危なくないか?XP専用のようだけど
0186デフォルトの名無しさん
2009/08/26(水) 23:51:11これでcmd&rubyであと5年は頑張れる。
PowerShellからは脱落したぜ…
0187デフォルトの名無しさん
2009/08/27(木) 00:20:230188デフォルトの名無しさん
2009/08/27(木) 13:07:04リストの行ごとに番号を振るところまでできたんですが、
仮に9行目を得たいときは!line9!で呼び出すとして、
数字の部分はランダムで変えたいときはどうすればいいんでしょうか
set r=(ランダムな数字)
echo line!r!でline5なりline9なりで行の内容を呼び出したい
data=line!r!とする?
こんがらがってわけがわかりません
お知恵を貸してください
0189デフォルトの名無しさん
2009/08/27(木) 14:03:43ズバリ%RANDOM%がある。
範囲を1〜10にしたいなら
set /a r=%RANDOM % 10 + 1
のようにすればおk
0190デフォルトの名無しさん
2009/08/27(木) 14:41:34%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!
0191デフォルトの名無しさん
2009/08/27(木) 19:23:18どうやるんだっけ?
0192188
2009/08/27(木) 21:58:37んー11しか出ないです
>>190
はーできました、ありがとうございます
set var!count!=〜とか!var%r%!ていう書き方もできるんですね、ここでつまづいてました
r=%RANDOM% %% count + 1の%%とは何でしょうか?
0193デフォルトの名無しさん
2009/08/27(木) 22:33:480194デフォルトの名無しさん
2009/08/27(木) 23:53:57for %%i in (%*) do echo %%i
で行けるのな。今までshift, if, goto で頑張ってたよ…
0195デフォルトの名無しさん
2009/08/28(金) 01:45:53わざわざ作らんでも
>echoに色つけるcecho
バッチでできるし
>一文字読み取ってerrorlevelに返すreadkey
Vistaにはchoiceがあるし
0196デフォルトの名無しさん
2009/08/28(金) 08:23:190197デフォルトの名無しさん
2009/08/28(金) 11:08:260198デフォルトの名無しさん
2009/08/28(金) 13:05:060199デフォルトの名無しさん
2009/08/28(金) 13:43:55のつもりで
more *.txt | sort
ってやるとうまくいかないんだけど、どうすりゃいいの?
0200デフォルトの名無しさん
2009/08/28(金) 13:49:30cat ファイル名 相当なら type ファイル名 だろ
0201デフォルトの名無しさん
2009/08/28(金) 13:54:360202デフォルトの名無しさん
2009/08/28(金) 17:21:53------------ cat.bat
@echo off
for %%i in (%*) do type %%i
0203デフォルトの名無しさん
2009/08/28(金) 22:11:17もしかして「.txtと拡張子のつく各ファイルを、ソートして表示」…しようとしてそのコマンドを書いたのか?
0204デフォルトの名無しさん
2009/08/28(金) 22:54:01やりたいことは
sort *.txt
だけど、Winのsortが
sort *.txt
できないので、その代替
>>202
それしかなさそう
たしかに
cat *.txt | sort
の代替になるけど、
sort *.txt
の代替にはならないみたい
ファイル末に改行がないと、行が継続されちゃう
あーやんなっちゃう
0205デフォルトの名無しさん
2009/08/29(土) 00:31:29for ... do (
type %%i
echo.
)
0206デフォルトの名無しさん
2009/08/29(土) 04:32:180207名無しさん@そうだ選挙に行こう
2009/08/30(日) 17:10:190208名無しさん@そうだ選挙に行こう
2009/08/30(日) 17:32:190209デフォルトの名無しさん
2009/08/31(月) 07:10:55set 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)がねーよ
0210デフォルトの名無しさん
2009/08/31(月) 16:15:440211デフォルトの名無しさん
2009/09/01(火) 23:12:07http://pc12.2ch.net/test/read.cgi/software/1250213672/766
0212デフォルトの名無しさん
2009/09/02(水) 00:07:130213デフォルトの名無しさん
2009/09/06(日) 14:51:37うごかねーよ
0214デフォルトの名無しさん
2009/09/06(日) 15:43:590215デフォルトの名無しさん
2009/09/10(木) 00:55:29ってコマンドライン上から入力するとタスクに登録され
16:00 に「テレビの時間」ってかかれたテキストが表示される。
こういうのってどうやればできますか?
0216デフォルトの名無しさん
2009/09/10(木) 01:14:17vectorあたりでスケジューラ探してきた方が早くね?
0217デフォルトの名無しさん
2009/09/10(木) 09:58:28TITLE オリジナルメッセージ表示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
0218デフォルトの名無しさん
2009/09/10(木) 12:37:02null がコマンドプロンプト
0220デフォルトの名無しさん
2009/09/10(木) 21:06:160221デフォルトの名無しさん
2009/09/10(木) 22:25:47@echo off
at.exe %1 /interactive mshta.exe "about:<h1>%*</h1>"
0222デフォルトの名無しさん
2009/09/11(金) 01:30:58mshta.exe "about:<h1>***</h1>"
これはおもろいな
0223デフォルトの名無しさん
2009/09/11(金) 13:33:48at.exe %1 /interactive msg.exe * %2
0224デフォルトの名無しさん
2009/09/11(金) 15:23:270225デフォルトの名無しさん
2009/09/11(金) 16:45:28TITLE オリジナルメッセージ表示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
0226デフォルトの名無しさん
2009/09/11(金) 16:52:520227デフォルトの名無しさん
2009/09/12(土) 03:41:31Option Explicit
Dim k
k = MsgBox("( 現在の日時 " & Now & " )" & vbCrLf & vbCrLf & "まだ午前3:40すぎですが、起きますか?", 289, "メッセージテスト")
WScript.Quit(k)
0228デフォルトの名無しさん
2009/09/12(土) 13:14:150229デフォルトの名無しさん
2009/09/12(土) 13:22:360230デフォルトの名無しさん
2009/09/12(土) 13:34:420231デフォルトの名無しさん
2009/09/12(土) 13:41:400232デフォルトの名無しさん
2009/09/12(土) 14:02:17そこは vbCrLf でなく vbLf を使え
vbCrLf だと cr+cr+lf になるぞ
0233デフォルトの名無しさん
2009/09/12(土) 14:17:01REM:[email protected] //E:VBS //NoLogo "%~f0" %* & GOTO :EOF
にすればよかろう
0234デフォルトの名無しさん
2009/09/12(土) 14:51:25TITLE オリジナルメッセージ表示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
0235デフォルトの名無しさん
2009/09/12(土) 15:56:130236デフォルトの名無しさん
2009/09/12(土) 19:12:36はにゃ?
0237デフォルトの名無しさん
2009/09/12(土) 19:20:24はにゃ?知らんと?
CTRL+Cしてメモ帳に貼り付けて保存a.txt
バイナリで改行コードを調べてみ
そうか
for /f %a in (a.txt) do echo [%a]
でもわかるが
0238デフォルトの名無しさん
2009/09/12(土) 19:34:010239デフォルトの名無しさん
2009/09/12(土) 20:22:260240デフォルトの名無しさん
2009/09/12(土) 21:06:260241デフォルトの名無しさん
2009/09/12(土) 22:19:07@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>
0242デフォルトの名無しさん
2009/09/13(日) 04:20:020243デフォルトの名無しさん
2009/09/14(月) 23:44:49eol=に羅列して複数文字を無視判定文字にすることはできないのですか?
0244デフォルトの名無しさん
2009/09/15(火) 01:08:000245デフォルトの名無しさん
2009/09/15(火) 14:43:45eolS? Sがないだろ?
0246デフォルトの名無しさん
2009/09/15(火) 23:53:360247デフォルトの名無しさん
2009/09/19(土) 00:49:53"eol="で無視判定文字をなしにすることはできないのですか?
0248デフォルトの名無しさん
2009/09/20(日) 21:46:120249デフォルトの名無しさん
2009/09/23(水) 21:47:140250デフォルトの名無しさん
2009/09/23(水) 22:19:23>>215のように
○○.bat 16:00 テレビの時間
のように起動してる?
0251デフォルトの名無しさん
2009/09/23(水) 22:41:540252デフォルトの名無しさん
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」のみです
0253デフォルトの名無しさん
2009/09/24(木) 00:08:590254デフォルトの名無しさん
2009/09/24(木) 12:15:28<name>〜〜〜</name>
<file = "〜〜〜〜〜"/>
</〜〜〜>
0255デフォルトの名無しさん
2009/09/24(木) 12:17:26何か言え
0256デフォルトの名無しさん
2009/09/25(金) 00:47:070257デフォルトの名無しさん
2009/09/25(金) 08:11:410258デフォルトの名無しさん
2009/09/26(土) 10:32:020259デフォルトの名無しさん
2009/09/29(火) 01:12:38シェルのchmod 644 とか trap とか kill -HUP とか limitは
バッチでも処理可能ですか?
0260デフォルトの名無しさん
2009/09/29(火) 01:24:50chmod.exe
trap.exe
kill.exe
limit.exe
0261デフォルトの名無しさん
2009/09/29(火) 03:38:410262デフォルトの名無しさん
2009/09/29(火) 11:45:52CSHだと思ってたんだが、拡張子がないから分からない…
すんません
0263デフォルトの名無しさん
2009/09/29(火) 11:49:240264デフォルトの名無しさん
2009/09/29(火) 15:57:530265デフォルトの名無しさん
2009/09/29(火) 19:16:390266デフォルトの名無しさん
2009/09/29(火) 20:50:47mshta.exe
0267デフォルトの名無しさん
2009/09/29(火) 22:23:04WScript.Shell#SendKeysみたいなもんの事?それとも>>266?
0268デフォルトの名無しさん
2009/09/29(火) 22:37:30SendKeys.exe
0269デフォルトの名無しさん
2009/09/29(火) 23:46:350270デフォルトの名無しさん
2009/09/29(火) 23:55:04TsSplitterというソフトなんですが、コマンドラインからも使えるのですが、なぜか処理がうまくいかなくて
GUIのものですとうまく起動するんです。
バッチファイルで起動まではできるのですが、そのあとの詳しい設定は前回履歴がのこっているので、
問題ありませんが、実行ボタンを手動で決定しなければなりません。
それをどうか自動処理できないかと四苦八苦している状態です。
お手数おかけしますが、もし可能であればお教えいただけるとありがたいです。
0271デフォルトの名無しさん
2009/09/30(水) 01:47:47UWSCとか
ttp://www.uwsc.info/
0272デフォルトの名無しさん
2009/09/30(水) 09:35:28それをバッチでやる理由は? 普通はバイナリエディタなりパッチツールを使うか、専用のパッチツールを作ると思うのだけど。
0273デフォルトの名無しさん
2009/09/30(水) 12:27:160274デフォルトの名無しさん
2009/09/30(水) 14:10:22>267
できれば、>270のようにしたいと考えていますので
実行ボタンさえおせればいいのですが、、、どう組み込めばいいのでしょうか?
>271 少し私には理解できませんでした。
すいません。ありがとうございました。
0275デフォルトの名無しさん
2009/09/30(水) 14:20:380276デフォルトの名無しさん
2009/09/30(水) 14:26:32ちゃんと見てないが、色々バッチファイルを作っている人もいそうなのだけど、見てみたのかな?
0277デフォルトの名無しさん
2009/09/30(水) 14:37:540278デフォルトの名無しさん
2009/09/30(水) 17:35:21>276
そちらはコマンドラインから動くものなので、
GUIのものを動かしたく考えておりますので、またすこし違うんです。。。。
0279デフォルトの名無しさん
2009/09/30(水) 18:07:50この手の人にはいくら回答付けても無駄だよ。
いくら的確な回答でも「理解できない」で終わり。
私努力する気無いから私の知ってるやりかたで教えてね(はあと
0280デフォルトの名無しさん
2009/09/30(水) 20:19:22まずキーボード操作だけでその「実行」ボタンとやらを押す手順を考えるんだ。
大抵のGUIアプリならショートカットキーとかタブキーとか使えばできるだろ。
そしたらそれをVBScriptのWScript.Shell#SendKeys関数で再現すればよい。
WScript.Shell#SendKeys関数の使い方はぐぐってもよし、やふってもよし。
…お前の次の台詞は「少し私には理解できませんでした」と言う…
0281デフォルトの名無しさん
2009/10/01(木) 20:29:11ファイル名を変更するバッチを作りたいんですが
ren *.bat_old.bat *_old.bat
で変更が出来ませんでした
どなたか教えて頂けませんか
0282デフォルトの名無しさん
2009/10/01(木) 23:25:34ただ、そのコマンドラインは同じ名前に変えろと言ってるように見えるが?
なので変わらない。
0283デフォルトの名無しさん
2009/10/02(金) 01:13:48ren *x.bat_old.bat *x_old.bat
でいくよ
0284デフォルトの名無しさん
2009/10/02(金) 01:55:04ren ??.bat_old.bat ??_old.bat
ren ???.bat_old.bat ???_old.bat
ren ????.bat_old.bat ????_old.bat
...
0285デフォルトの名無しさん
2009/10/02(金) 07:53:29ありがとうございます
ただワイルドカードで指定してる部分は長さや文字が全てが不定になっています;
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のみを削除する方法や
ワイルドカード指定してる所を変数に入れて処理する方法があれば教えていただきたいです
0286デフォルトの名無しさん
2009/10/02(金) 10:29:38こんな感じ?
0287デフォルトの名無しさん
2009/10/02(金) 14:27:06下のようにしましたが動きませんでした
for %%i in (*.txt) do (
set k=%%i
echo %k%
)
0288デフォルトの名無しさん
2009/10/02(金) 15:24:440289デフォルトの名無しさん
2009/10/02(金) 15:55:01とやってしまって、戻そうとしてんだろ?
やれやれだ
3段階で戻すんだな
ren *.bat_old.bat *.
ren *.bat_old *.
ren *. *_old.bat
0290デフォルトの名無しさん
2009/10/02(金) 18:58:25新入りなんだから、そんなこと言わずに歓迎してやれよ
0291デフォルトの名無しさん
2009/10/02(金) 20:56:00は
ren *.bat *.
ren *. *_old.bat
とやればよかったのに
0292デフォルトの名無しさん
2009/10/02(金) 20:57:03ウェルかめ
0293デフォルトの名無しさん
2009/10/03(土) 12:05:19>>287
echoの行は遅延展開が必要。詳しくはset /? とかを参照
setlocal EnableDelayedExpansion
for %%i in 略
set k=%%i
echo !k!
0294デフォルトの名無しさん
2009/10/03(土) 12:13:22a!.txt
がどうなるか知ってるのか?
0295デフォルトの名無しさん
2009/10/03(土) 12:24:47これって解決方法あんの?
0296デフォルトの名無しさん
2009/10/03(土) 12:42:09遅延変数展開を禁止して
サブルーチンでは変数が毎回評価されるのを利用するとか
setlocal DisableDelayedExpansion
for %%i in (*.txt) do call :foo %%i
goto :EOF
:foo
set k=%1
echo %k%
goto :EOF
0297デフォルトの名無しさん
2009/10/03(土) 18:46:01set k=%%i
setlocal EnableDelayedExpansion
echo !k!
endlocal
)
0298デフォルトの名無しさん
2009/10/04(日) 13:59:14set k=%%i
call echo %%k%%
)
0299デフォルトの名無しさん
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
これを入れてもだめでした。どうしたらいいんでしょう?
0300デフォルトの名無しさん
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
やりたいのは以上です。
0301デフォルトの名無しさん
2009/10/05(月) 19:24:22”で括ってみたら?
0302デフォルトの名無しさん
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
やりたいのは以上です。
0303デフォルトの名無しさん
2009/10/05(月) 21:00:060304デフォルトの名無しさん
2009/10/05(月) 21:10:230305デフォルトの名無しさん
2009/10/05(月) 23:14:150306デフォルトの名無しさん
2009/10/06(火) 02:52:35つーかそのパスなら -15,3 じゃないの
0307デフォルトの名無しさん
2009/10/06(火) 03:20:230308デフォルトの名無しさん
2009/10/06(火) 10:44:200309デフォルトの名無しさん
2009/10/06(火) 11:15:16とりあえずアンダーバーは使えないと思って進めます。""でくくっても""が付くだけでした
%0と%~f0のどちらもいけます、中身はちょっと違いますが似てるのでOKです
%~n0はバッチファイルの名前が出てきてしまったので目的とは違いました
単にbatファイルのあるディレクトリの最初3文字を使って
同じディレクトリにあるファイルを結合させたいだけなんですが…('A`)
0310デフォルトの名無しさん
2009/10/06(火) 12:03:29ああすまん、%~n0は完全に私の勘違いでした
0311デフォルトの名無しさん
2009/10/06(火) 14:13:420312デフォルトの名無しさん
2009/10/06(火) 14:34:57使えるけど?
0313デフォルトの名無しさん
2009/10/06(火) 15:11:01「うまくいきません」とだけ言われてもね…
0314デフォルトの名無しさん
2009/10/06(火) 15:54:220315デフォルトの名無しさん
2009/10/06(火) 21:16:55バッチよりVBSのほうが早いな
0316デフォルトの名無しさん
2009/10/06(火) 22:02:17もっとも、それ以前から微妙に存在してたけどな
0317デフォルトの名無しさん
2009/10/07(水) 00:55:57>バッチフィル名「copy.bat」
これは…
0318デフォルトの名無しさん
2009/10/07(水) 01:38:290319デフォルトの名無しさん
2009/10/07(水) 01:44:320320デフォルトの名無しさん
2009/10/07(水) 01:50:510321デフォルトの名無しさん
2009/10/07(水) 01:57:530322デフォルトの名無しさん
2009/10/09(金) 19:22:070323デフォルトの名無しさん
2009/10/11(日) 16:13:36なんのためにあるんだ?
0324デフォルトの名無しさん
2009/10/11(日) 17:37:25ならないのがシンボリックリンクだにゃ
つまり、エクスプローラに見せたいか、見せたくないかだにゃ
0325デフォルトの名無しさん
2009/10/12(月) 22:40:21通常のdosコマンドだったら大丈夫だったはず。
regとかfindstrとかはアウトだけど。
0326デフォルトの名無しさん
2009/10/13(火) 00:57:21どうすればよいでしょうか?
0327デフォルトの名無しさん
2009/10/13(火) 01:02:450328デフォルトの名無しさん
2009/10/13(火) 01:12:41同じ名前のコマンドとバッチ、どっちが先に処理されるかって事でしょ
0329デフォルトの名無しさん
2009/10/13(火) 01:13:06ありがとうございました。
0330デフォルトの名無しさん
2009/10/13(火) 21:17:50だから通常コマンドならこっちがバッチより先。
copy.batとかmove.batとかは問題なし。
0331デフォルトの名無しさん
2009/10/13(火) 21:58:26つーかカレントディレクトリにあるもの優先だろが
0332デフォルトの名無しさん
2009/10/13(火) 22:08:53'おまいら用語を知らんのか?' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
0333デフォルトの名無しさん
2009/10/13(火) 23:42:370334デフォルトの名無しさん
2009/10/14(水) 00:26:04ping www.google.com && echo succ || echo fail
0335デフォルトの名無しさん
2009/10/14(水) 02:45:21パスで修飾とかできないから、そうせざるを得ないのは理解できるんだけどなあ。
0336デフォルトの名無しさん
2009/10/14(水) 04:37:260337デフォルトの名無しさん
2009/10/14(水) 10:29:23の順番だっけ?
初期からあるコマンドに内部コマンドと外部コマンドが入り交じってるのに
順番がこんなんだから解りにくいことになってるな
0338デフォルトの名無しさん
2009/10/14(水) 12:13:20バッチを実行したユーザがそのファイルに存在したときのみ
それ以降の処理を行うようにしたいのですが、
どのように書けばよいでしょうか?
ユーザが存在するかどうかは
findstr "name" "\\server\Users.txt" /i /x"
にて判断できるかと思ったのですが
開くことができませんと表示されてしまいます・・・
0339デフォルトの名無しさん
2009/10/14(水) 13:36:24エラーメッセージに答えでてるじゃん
FINDSTR: 開くことができません (/i)
FINDSTR: 開くことができません (/x)
0340デフォルトの名無しさん
2009/10/14(水) 14:44:53元はresource kitのqgrep
だからシンタクスはunix流
findstr -i -x "name" "\\server\Users.txt"
findstr "name" "\\server\Users.txt" /i /x"
はdos流
0341デフォルトの名無しさん
2009/10/14(水) 17:02:19ってファイル名から<数字か-で始まる数字>だけを取り出して変数にsetしたいのですけどよい方法はありますか?
DELAYの前に半角スペースが入ることもあるのでfor /fのdelims= では駄目でした
0342デフォルトの名無しさん
2009/10/14(水) 17:04:260343デフォルトの名無しさん
2009/10/14(水) 18:19:330344デフォルトの名無しさん
2009/10/14(水) 20:08:15ありがとうございます
前後を置換して取り出せました
0345デフォルトの名無しさん
2009/10/15(木) 14:12:520346デフォルトの名無しさん
2009/10/15(木) 15:21:35for /f "skip=2 tokens=2 delims=:" %i in ('fsutil volume diskfree c:') do @echo %i
0347デフォルトの名無しさん
2009/10/15(木) 18:44:57@mshta.exe "javascript:with(new ActiveXObject('Scripting.FileSystemObject')){try{GetStandardStream(1).Write(GetDrive('%~d1').FreeSpace);}catch(e){}}close();" | more
0348デフォルトの名無しさん
2009/10/15(木) 18:51:400349デフォルトの名無しさん
2009/10/15(木) 19:08:4677F91AB3 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
0350デフォルトの名無しさん
2009/10/21(水) 18:22:390351デフォルトの名無しさん
2009/10/21(水) 18:35:420352デフォルトの名無しさん
2009/10/21(水) 19:30:220353デフォルトの名無しさん
2009/10/22(木) 10:47:15変えずにアップする方法ないかな…
バッチ内部に組み込み途中で挫折した。
固めてアップとか3rdPT製アプリ使用jはナシの方向で解決策ないかねぇ…
ないか…
0354デフォルトの名無しさん
2009/10/22(木) 10:55:58フリーのftpクライアントと同じ戦略でいいじゃん。
あれは、サーバにアップロードした後シェル実行でタイムスタンプを強制しているだけなんだから。
0355デフォルトの名無しさん
2009/10/22(木) 11:24:000356デフォルトの名無しさん
2009/10/22(木) 11:37:210357デフォルトの名無しさん
2009/10/22(木) 17:23:40(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;
0358デフォルトの名無しさん
2009/10/22(木) 18:09:56folder.copyhere
folderitem.modifydate
でだめか?
0359デフォルトの名無しさん
2009/10/22(木) 19:28:35これから夜勤。仕事先のでためしてみるわ
ありがとう。
0360デフォルトの名無しさん
2009/10/28(水) 22:21:25ファイルが見つかりません
このエラーメッセージを出さなくするのってどうやるの?
事前にあるかどうかをチェックするというのはなしで。
0361デフォルトの名無しさん
2009/10/28(水) 22:37:240362デフォルトの名無しさん
2009/10/28(水) 23:01:40const 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;
0363デフォルトの名無しさん
2009/10/28(水) 23:08:33slwi 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
0364デフォルトの名無しさん
2009/10/28(水) 23:13:10OSはWindows XP HomeのSP3です。
一般ユーザ(usersグループ)でshutdownコマンドを
バッチによる自動実行をしたいのですが、
OSの仕様で管理者ユーザ(administratorsグループ)からしか実行
できません。
runasコマンドで、管理者ユーザで実行可能なようですが、
必ずパスワードを入力しなければならないようです。
※XP Homeの場合はrunasコマンドのオプションによるパス
ワード登録?も出来ないみたいです。
パスワード入力なしで、
一般ユーザからshutdownコマンドをバッチで実行する方法はありま
すか?
0365デフォルトの名無しさん
2009/10/28(水) 23:20:56uiActionId = 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;
0366デフォルトの名無しさん
2009/10/28(水) 23:22:56GlobalPowerPolicy.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;
0367デフォルトの名無しさん
2009/11/01(日) 16:09:33押されている場合は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
ご存知の方教えてください。
0368デフォルトの名無しさん
2009/11/01(日) 16:27:25> キー押下状態の取得がうまくいきません。
何をやってうまく行かないのかを、まず書いてくれ。
OSその他の環境情報もだ。
本当は「キー押下状態の取得方法が分かりません」じゃないのか?
0369デフォルトの名無しさん
2009/11/01(日) 16:45:310370デフォルトの名無しさん
2009/11/01(日) 17:42:07DOS用だとbatuyとかあったけどWin用はしらん
0371デフォルトの名無しさん
2009/11/01(日) 18:04:08キー入力による分岐 ERRORLEVEL
ここらへん使えば出来そうかなぁと。
WinXPです。
0372デフォルトの名無しさん
2009/11/01(日) 18:35:420373デフォルトの名無しさん
2009/11/01(日) 18:40:310374デフォルトの名無しさん
2009/11/01(日) 18:47:17以下を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);
0375デフォルトの名無しさん
2009/11/01(日) 22:04:39import 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");
}
うまく出来ました。ありがとうございました。スレ違い失礼しました。
0376デフォルトの名無しさん
2009/11/02(月) 23:17:03そんなことはなかろう
0377デフォルトの名無しさん
2009/11/03(火) 07:38:470378デフォルトの名無しさん
2009/11/03(火) 08:12:030379デフォルトの名無しさん
2009/11/03(火) 14:39:200380デフォルトの名無しさん
2009/11/03(火) 15:31:380381デフォルトの名無しさん
2009/11/03(火) 16:08:05タスクスケジューラを使えばできるよ
0382デフォルトの名無しさん
2009/11/03(火) 17:04:12バッチで標準入力がリダイレトされているか判定できましたでしょうか?
0383デフォルトの名無しさん
2009/11/03(火) 20:00:570384デフォルトの名無しさん
2009/11/03(火) 22:39:51で
foo, barが> baz.txtされてるかどうかを検出、分岐するってことなら無理だろ。
0385デフォルトの名無しさん
2009/11/04(水) 00:21:160386デフォルトの名無しさん
2009/11/04(水) 14:50:20は知らんが
foo.bat > baz.txt
や
foo.bat | bar.bat
なら可能だろ。
0387デフォルトの名無しさん
2009/11/04(水) 15:25:48過去に遡って質問するわけじゃないのだから、過去について聞くことは無意味だと思うのだが。
0388デフォルトの名無しさん
2009/11/04(水) 15:36:16問題なかろう。
0389デフォルトの名無しさん
2009/11/04(水) 20:10:06という質問をした時点で、その質問は過去の事象で、その可否を聞いているのだろう
0390デフォルトの名無しさん
2009/11/04(水) 20:20:160391デフォルトの名無しさん
2009/11/04(水) 21:04:37バッチを実行するとメモ帳は開くがプロンプトが閉じない。
メモ帳を開いた時点でプロンプトを閉じるにはどうすればよい?
以下バッチの内容
----------------------------------------
C:\Program 〜省略〜 \memo.exe test.txt
EXIT
----------------------------------------
0392デフォルトの名無しさん
2009/11/04(水) 21:08:18またお前か
0393デフォルトの名無しさん
2009/11/04(水) 21:10:090394デフォルトの名無しさん
2009/11/04(水) 21:16:20ありがとう。
無事できました。
0395デフォルトの名無しさん
2009/11/04(水) 22:04:180396デフォルトの名無しさん
2009/11/05(木) 17:02:11start バッチ
とやってみたのだが、閉じない。
0397デフォルトの名無しさん
2009/11/11(水) 19:06:13test2
test3
test4
という文字の入ったtest.txtがあるとします。
バッチファイルからピンポイントで二行目(test2)を引き出して変数とおくにはどうしたらよいでしょうか?
for /f "skip=1" %%a in (test.txt) do set hensuu=%%a
を使っても、
hensuu=test2
hensuu=test3
hensuu=test4
となってしまい結局変数はtest4になってしまいます。
どなたか教えてください。
0398デフォルトの名無しさん
2009/11/11(水) 21:05:24set hensuu=
for /f "skip=1" %%a in (test.txt) do if "!hensuu!"=="" set hensuu=%%a
0399デフォルトの名無しさん
2009/11/12(木) 00:20:18ありがとうございます!できました!
enableextensionsでコマンド拡張機能を有効にしたからできるようになったってことですか?
コマンド追ってググったりしてもこの文でなぜできるのか理解できないです
0400デフォルトの名無しさん
2009/11/12(木) 03:09:59forの中でsetした変数(hensuu)が参照できるようになっている。
遅延展開が無効だと
if "%hensuu%"=="" の部分がfor実行段階で if ""=="" になって常に真ということになる。
0401デフォルトの名無しさん
2009/11/12(木) 11:32:45遅延展開を有効にすることでhensuu=test2にその時点でなるから、
if "%hensuu%"=="" には引っかからずにその時点でforを終了させられるという事ですね。
遅延展開についてよく理解できました。
わかりやすいレスありがとうございます。
0402デフォルトの名無しさん
2009/11/12(木) 14:18:58hensuu=test2となった以降はifが偽になるため何も実行されずにループする。
test.txtの残りが凄く長ければそれだけ終了時間は伸びる
0403デフォルトの名無しさん
2009/11/12(木) 18:50:55てことは
test3は偽、よって実行なし
test4は偽、よって実行なし
・
・
・
って感じに最後の行になるまでされるわけですか。
だとしたら500行のtest.txtだとこれが500行分されるんですね・・・
やっと完全に理解できました。ありがとうございます
0404デフォルトの名無しさん
2009/11/13(金) 22:26:520405デフォルトの名無しさん
2009/11/13(金) 22:28:31:x
0406デフォルトの名無しさん
2009/11/14(土) 00:03:56set hensuu=
for /f "skip=1" %%a in (test.txt) do if not defined hensuu set hensuu=%%a
0407デフォルトの名無しさん
2009/11/15(日) 18:09:51処理1
) else (
処理2
)
ここで「条件A or 条件B」と言う構文はバッチファイルでは使えないんでしたっけ?
0408デフォルトの名無しさん
2009/11/15(日) 18:25:030409デフォルトの名無しさん
2009/11/15(日) 21:19:54解決しました。ありがとうございます。
0410デフォルトの名無しさん
2009/11/16(月) 13:00:34if 条件A set or=true
if 条件B set or=true
if defined or (
処理1
) else (
処理2
)
0411デフォルトの名無しさん
2009/11/17(火) 17:10:49みたいなことはできないのですか?
0412デフォルトの名無しさん
2009/11/17(火) 23:16:31echo 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が抜けた状態で作成されます。
何かいい方法は無いでしょうか。ご教示お願いいたします。
0413デフォルトの名無しさん
2009/11/17(火) 23:40:05echo echo start "" コマンド.bat "引数" ^>B.bat >A.bat
0414デフォルトの名無しさん
2009/11/18(水) 01:08:33当方412ではありませんが、感動しました。
^>を使えばそういう事ができるんですね
差し支えなければ、^のしくみを教えていただけないでしょうか?
0415デフォルトの名無しさん
2009/11/18(水) 01:19:520416デフォルトの名無しさん
2009/11/18(水) 11:42:53単なるエスケープ文字
0417デフォルトの名無しさん
2009/11/18(水) 17:30:23echo (^^)
は
(^)
となる
0418412
2009/11/18(水) 20:00:18レス遅くなって申し訳ないです。ありがとうございました!
ばっちり希望どおりの動作をしてくれるようになりました!
>>416>>417
仕組みがよくわかってなかったので勉強になりました。
みなさんどうもありがとうございました。
0419デフォルトの名無しさん
2009/11/19(木) 22:15:120420デフォルトの名無しさん
2009/11/19(木) 23:41:460421デフォルトの名無しさん
2009/11/20(金) 00:28:27ありがとうございました
0422デフォルトの名無しさん
2009/11/21(土) 01:56:20for /f %i in ('dir /b') do echo %i
でいいのに何故わざわざusebackq付けんの?
0423デフォルトの名無しさん
2009/11/21(土) 02:15:37http://www.atmarkit.co.jp/fwin2k/operation/command008/command02.html
0424デフォルトの名無しさん
2009/11/21(土) 16:02:45どーでもいー
0426デフォルトの名無しさん
2009/11/24(火) 13:26:23そのアプリが終了するまでbatへ制御が戻らないのですが
それを回避することは可能ですか?
0427デフォルトの名無しさん
2009/11/24(火) 13:48:220428デフォルトの名無しさん
2009/11/24(火) 16:10:210429デフォルトの名無しさん
2009/11/24(火) 18:57:100431デフォルトの名無しさん
2009/11/24(火) 22:29:40ttp://itpro.nikkeibp.co.jp/article/Windows/20051006/222374/
start /b test.bat
てどういう意味がある?
call test.bat
とは違うの?
0432デフォルトの名無しさん
2009/11/25(水) 12:44:000433デフォルトの名無しさん
2009/11/25(水) 20:20:58誰が書いたか知らんが、阿呆が意味も分らず、最初のオプション使って、無理矢理、使用例を作っただけなんだろ
0434デフォルトの名無しさん
2009/11/25(水) 20:25:13goto %1
start /low "" %0 :exec
0435デフォルトの名無しさん
2009/11/27(金) 16:18:48start file
はokで
start "file"
はngな時があるけどどういう理屈なんだろうか
0436デフォルトの名無しさん
2009/11/27(金) 16:27:01start/?見りゃ自明だろ?
0437デフォルトの名無しさん
2009/11/27(金) 16:32:00wmiのsetpriorityを使え
0438デフォルトの名無しさん
2009/11/27(金) 20:12:44startにしとけ
0439デフォルトの名無しさん
2009/11/29(日) 02:25:00data1129.datみたいに日時をつけてバックアップとして保存していけるようなバッチファイル
作れる方いましたら教えてください
スタートアップに登録するとして、同日に一回でも度ってあったらコピーしないという仕様で
0440デフォルトの名無しさん
2009/11/29(日) 03:40:360441デフォルトの名無しさん
2009/11/29(日) 13:46:200442デフォルトの名無しさん
2009/12/02(水) 15:20:51/A(テキストモード)を指定しても、BOMありUTF-8のテキストファイルを結合すると
ファイルとファイルの間にBOMが残るんです。
現在はWinXPのコマンドプロンプトでしか試せないんですが、VistaやWin7なら、ちゃん
とBOMを外してくれますか?
0443デフォルトの名無しさん
2009/12/02(水) 15:40:21/Aは改行コードしか見ないだろうから仕方がないかも
0444デフォルトの名無しさん
2009/12/02(水) 15:44:420445デフォルトの名無しさん
2009/12/02(水) 19:41:05UTF-8じゃないのに何言ってんだか
0446デフォルトの名無しさん
2009/12/02(水) 19:50:380447デフォルトの名無しさん
2009/12/02(水) 21:49:140448デフォルトの名無しさん
2009/12/03(木) 14:30:540450デフォルトの名無しさん
2009/12/03(木) 20:27:400451デフォルトの名無しさん
2009/12/03(木) 20:43:060452デフォルトの名無しさん
2009/12/03(木) 20:46:190453デフォルトの名無しさん
2009/12/03(木) 21:15:540454デフォルトの名無しさん
2009/12/03(木) 21:54:010455デフォルトの名無しさん
2009/12/04(金) 15:10:43フォントを変えるコマンドは?
0456デフォルトの名無しさん
2009/12/04(金) 21:47:30まあ変えても解決にはならんが
0457デフォルトの名無しさん
2009/12/04(金) 21:58:36setconsolefont()
setcurrentconsolefontex()
0458デフォルトの名無しさん
2009/12/08(火) 13:13:56cmdと比べると構文が結構まともだ。
PowerShellより圧倒的に軽いしちょっと覚えてみる気になった。
0459デフォルトの名無しさん
2009/12/09(水) 03:55:320460デフォルトの名無しさん
2009/12/10(木) 01:06:30最終更新日が先月でまだまだメンテが続いてるね。
0461デフォルトの名無しさん
2009/12/11(金) 15:53:240462デフォルトの名無しさん
2009/12/11(金) 18:23:450463デフォルトの名無しさん
2009/12/11(金) 21:14:34filelist.txtにファイルの一覧をリストアップしてそのファイルをすべて特定のフォルダへ移動したいです
ですがファイル名に半角スペースが含まれていると移動されずにスルーされてしまいます
困ってしまいます
お願いします
0464デフォルトの名無しさん
2009/12/11(金) 21:15:18>>440
これの改良版で1週間分のみバックアップを残す仕様に出来る方おりませんか?
ファイルが7個以上あった場合、古いものから消していくようになると思うんですが
0465デフォルトの名無しさん
2009/12/11(金) 21:25:48"delims="
0466デフォルトの名無しさん
2009/12/11(金) 21:32:10for /f "skip=6 delims=" %%i in ('dir /b/o-d data*.dat') do del %%i
これで新しいものから順に6個を除いたファイルは全部消える
0467デフォルトの名無しさん
2009/12/11(金) 21:33:20ありがとうございました
助かりました
0468デフォルトの名無しさん
2009/12/12(土) 11:52:30for %i in (.) do set cdir=%~dpnxi
とかやってるんですが、もっとスマートな方法はないですしょうか?
0469デフォルトの名無しさん
2009/12/12(土) 12:04:190470デフォルトの名無しさん
2009/12/12(土) 15:46:31c:\a\b\c\d\thisdir
のthisdirをゲットするなら
%cd:\=&set cdir=%
echo %cdir%
とか。
0471デフォルトの名無しさん
2009/12/12(土) 19:32:420472デフォルトの名無しさん
2009/12/13(日) 03:10:06echo %cdir%
.
ダメじゃんw
0473デフォルトの名無しさん
2009/12/13(日) 19:05:35echo %cdir%
0474デフォルトの名無しさん
2009/12/14(月) 11:07:38カレントディレクトリがセットされた環境変数は ありそうだと思って
set<enter>して探したのですが、これにはでないみたいです。
「特殊な環境変数」でググると%CD%以外にもいろいろ知ることができました。
0475デフォルトの名無しさん
2009/12/14(月) 14:11:280476デフォルトの名無しさん
2009/12/14(月) 14:14:37echo %=c:%
echo %=d:%
0477デフォルトの名無しさん
2009/12/14(月) 14:16:28知らなかった・・・
0478デフォルトの名無しさん
2009/12/14(月) 14:37:09で=*環境変数も表示
0479デフォルトの名無しさん
2009/12/14(月) 14:40:28PowerShellに乗り換えようぜ。
0480デフォルトの名無しさん
2009/12/14(月) 15:50:56は何?
0481デフォルトの名無しさん
2009/12/14(月) 22:25:59PowerShellがNTに載ったらね
0482デフォルトの名無しさん
2009/12/15(火) 14:51:01http://pc12.2ch.net/test/read.cgi/win/1221046998/
0483デフォルトの名無しさん
2009/12/21(月) 15:23:45レジストリを修正するバッチファイルが作りたいのです。
ipconfigしても情報が多すぎるし、
ドット2つの後ってどうしたらいいんでしょう…。
どなたかご教授願います。
0484デフォルトの名無しさん
2009/12/21(月) 15:26:030485sage
2009/12/21(月) 16:36:18素晴らしすぎます!!!
というか私の知識不足…頑張り不足…でしょうか。
ありがとうございました!
0486483
2009/12/21(月) 19:26:24for /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%
ただ、スマートじゃないというかなんというか…。
こんなもんでしょうかね。
0487デフォルトの名無しさん
2009/12/21(月) 22:05:22skip=n でn行飛ばせるって知ってるよな?
0488デフォルトの名無しさん
2009/12/21(月) 22:55:040489デフォルトの名無しさん
2009/12/22(火) 13:14:33tokens=14 を数える事は二度と無いとしても、将来コピペで使い回した時、
このスレでのやりとりを良い思い出として生暖かく思い出せるw
"tokens=2 delims=:" だったら何も心に響かない。
0490デフォルトの名無しさん
2009/12/22(火) 17:32:15メモ帳やペイントに不満を感じるなら勝手に別のアプリをお使いくださいというのがMSの基本姿勢。
不便だろうが欠陥があろうが知ったことではない。
0491デフォルトの名無しさん
2009/12/22(火) 17:47:03for /f "tokens=?? delims=." %%I in ('ipconfig ^| find "IP Address"') do echo %%I
??は自分で数えろ
0492デフォルトの名無しさん
2009/12/22(火) 18:26:460493デフォルトの名無しさん
2009/12/22(火) 18:45:110494483
2009/12/22(火) 18:47:08ありがとうございました。
for /f "tokens=15 delims=." %%I in ('ipconfig ^| find "IP Address"') do echo %%I
でバッチリ取得出来ました。
これが一番スマートですね。助かりました!
0495デフォルトの名無しさん
2009/12/22(火) 18:53:36しまむらで洋服買って自慢してるようなもんか
0496デフォルトの名無しさん
2009/12/22(火) 20:09:540497デフォルトの名無しさん
2009/12/22(火) 20:45:16for /f "tokens=15 delims=." %%I in ('ipconfig') do echo %%I
でもいける
0498デフォルトの名無しさん
2009/12/22(火) 20:53:100499デフォルトの名無しさん
2009/12/22(火) 21:55:380500デフォルトの名無しさん
2009/12/23(水) 14:33:100501デフォルトの名無しさん
2009/12/26(土) 12:04:041)具体的にはデジカメで写真を撮影した事を想定してください。
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
とやりたいです。
0502デフォルトの名無しさん
2009/12/26(土) 12:08:36D:\読み順フォルダ\か行\きよみずでら(清水寺)\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
0503デフォルトの名無しさん
2009/12/26(土) 12:12:030504デフォルトの名無しさん
2009/12/26(土) 12:17:130505デフォルトの名無しさん
2009/12/26(土) 12:57:24http://codepad.org/xzEwdV3R
なんかかなり昔作ったVB風の記述でバッチファイルを吐く言語の
ソースファイルっぽいw
今コンパイラ探してる
0506デフォルトの名無しさん
2009/12/26(土) 13:04:17Sub Main()
Print("Hello World.")
End Sub
Sub Print(str)
#NATIVE ECHO %str%
End Sub
0507デフォルトの名無しさん
2009/12/26(土) 13:06:23できるけど、その程度の代物だったら手作業と大して変わらん手間だろ。
0508デフォルトの名無しさん
2009/12/26(土) 14:48:26batに生産性を求めてどうする
0509デフォルトの名無しさん
2009/12/26(土) 20:27:40生産性がよくなるんだろ?
0510デフォルトの名無しさん
2009/12/26(土) 22:38:090511デフォルトの名無しさん
2009/12/27(日) 10:14:310512デフォルトの名無しさん
2009/12/27(日) 12:08:47それで判別できる? (Vista x64で確認)
0513デフォルトの名無しさん
2009/12/27(日) 12:27:56echo %errorlevel%
ちゃんと動くかは分からない
0514デフォルトの名無しさん
2009/12/27(日) 14:35:24dir/q file
0515デフォルトの名無しさん
2009/12/27(日) 15:01:58echo %errorlevel%
0516デフォルトの名無しさん
2009/12/27(日) 16:00:42MS謹製のwhoamiに権限表示があった気がする
0517デフォルトの名無しさん
2009/12/27(日) 17:58:10UACの昇格
0518デフォルトの名無しさん
2009/12/27(日) 22:26:55Vista 32bit x86でも確認したよー
0519デフォルトの名無しさん
2009/12/31(木) 18:56:580520デフォルトの名無しさん
2010/01/04(月) 17:02:50start "" iexplore "http://www.google.com/search?lr=lang_ja&ie=UTF-8&oe=UTF-8&q=%*"
ここの %* を、引数の数に合わせて %1+%2+.... とやる方法です。
0521デフォルトの名無しさん
2010/01/04(月) 20:39:55エスケープには対応してないから使えるのは英字だけなのでよろしく
0522デフォルトの名無しさん
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 "http://www.google.com/search?lr=lang_ja&ie=sjis&oe=UTF-8&q=%Param%"
----------ここまで
細かい事考えなければこんな感じ?
引数を繋ぐスマートな方法を知りたいです。。。
0523デフォルトの名無しさん
2010/01/04(月) 20:44:470525521
2010/01/04(月) 21:06:29http://codepad.org/GKyUSzKv
なんかつまんないなあ。^^;
0528デフォルトの名無しさん
2010/01/05(火) 01:05:210529デフォルトの名無しさん
2010/01/06(水) 18:02:190530デフォルトの名無しさん
2010/01/10(日) 19:19:39例としてimg001、img002、img003というファイルがあったとして
imgに当てはまるものを一気に削除するというスクリプトはあるでしょうか?
0531デフォルトの名無しさん
2010/01/10(日) 19:36:160532デフォルトの名無しさん
2010/01/10(日) 19:47:41erase img*
0533デフォルトの名無しさん
2010/01/10(日) 20:56:26「imgに当てはまるもの」→ del img
0535デフォルトの名無しさん
2010/01/11(月) 01:16:52おまえら質問に答えてない
>>530
だれかが作ればある
0536デフォルトの名無しさん
2010/01/11(月) 07:58:08引数のファイルを %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
0537デフォルトの名無しさん
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%
----
0538デフォルトの名無しさん
2010/01/11(月) 14:54:180539デフォルトの名無しさん
2010/01/12(火) 18:41:210541デフォルトの名無しさん
2010/01/13(水) 10:54:58これのうち、 'where %1' の部分が良く理解できません。
解説のあるウェブサイトを紹介してもらえないでしょうか。
0542デフォルトの名無しさん
2010/01/13(水) 13:14:070543デフォルトの名無しさん
2010/01/13(水) 23:29:11やっと理解しました。where は OS のコマンドで、
また for /f in %%変数 (...) の括弧内ではコマンドが使えるのですね。
情報ありがとうございました。
0544デフォルトの名無しさん
2010/01/14(木) 23:23:03%2 ... をまとめて取り出せないかな
バラして組み立てるしかないかな
0545デフォルトの名無しさん
2010/01/14(木) 23:26:370546デフォルトの名無しさん
2010/01/15(金) 02:34:52echo %*
0547デフォルトの名無しさん
2010/01/15(金) 07:02:480548デフォルトの名無しさん
2010/01/15(金) 09:28:360549デフォルトの名無しさん
2010/01/15(金) 13:11:400550デフォルトの名無しさん
2010/01/15(金) 13:48:410551デフォルトの名無しさん
2010/01/15(金) 19:42:140552デフォルトの名無しさん
2010/01/15(金) 20:31:470553デフォルトの名無しさん
2010/01/15(金) 21:44:02だろ
0554デフォルトの名無しさん
2010/01/16(土) 11:29:180555デフォルトの名無しさん
2010/01/16(土) 15:33:310556デフォルトの名無しさん
2010/01/16(土) 16:13:292 3 4
ほれ
0557デフォルトの名無しさん
2010/01/16(土) 17:16:362" "3 4"
ほれ
0558デフォルトの名無しさん
2010/01/18(月) 15:10:32echo !a:%1=!
0559デフォルトの名無しさん
2010/01/19(火) 10:25:24copy /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フォルダにバックアップをするには
どのようにすれば宜しいでしょうか?
0560デフォルトの名無しさん
2010/01/19(火) 11:39:090561559
2010/01/19(火) 11:52:46Default1.dfgというファイル名での保存が、複数回続いても構いません。
(きっちり、1→2→3という順番で、バッチ処理する度にファイル名が変わってくれなくて構わないです)
0562デフォルトの名無しさん
2010/01/19(火) 14:36:05copy /y E:\Program\TAB_Browser\DonutRAPT\Default.dfg "E:\Back_Up\Default%random%.dfg"
0564デフォルトの名無しさん
2010/01/19(火) 18:15:40>>560
0565デフォルトの名無しさん
2010/01/19(火) 19:39:380566デフォルトの名無しさん
2010/01/20(水) 13:48:590567デフォルトの名無しさん
2010/01/23(土) 03:00:27>>559の例の場合は3本のくじからの無作為抽出ってことだろ?
ランダムって表現で間違っちゃいない
っつーか、>>562が物語ってるじゃん↓
> set /a random=%random%%%3+1
0568デフォルトの名無しさん
2010/01/23(土) 21:44:08560は562が書かれる前にレスの内容がわかるエスパーなんですね。
0569デフォルトの名無しさん
2010/01/24(日) 05:15:14そこへ560の質問の意味が解からん
0570デフォルトの名無しさん
2010/01/24(日) 12:43:25現在使っている他メーカーの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 の購入の参考にしたいので、
詳しくわかる方いましたらよろしくお願いします。
0571デフォルトの名無しさん
2010/01/24(日) 12:44:52その呼び名の通り曲順をシャッフルして再生する機能になります。
1曲ごとに再生する曲を対象全体からランダムに選ぶのではなく、
最初に対象全体をシャッフルして混ざったリストを作りそれを順番に再生する、
つまりトランプをシャッフルしてから一枚づつめくっていく様な感じになり、
あなたの希望の様に
「一度流した曲は、再生リスト内の曲を全て再生するまでは再生しない。」
と言う状態になります。
iTunes上でプレイリストを選択した状態で左下のシャッフルボタンを
押してみると、リスト内でシャッフルしてそれを順に再生している事が
よく分かると思います。
(その際画面表示のソート順を通常なら左端にある曲順の数字欄に
しておかないとシャッフルされる様子が見れません。曲の上部に
「名前」や「アーティスト」、「アルバム」等と書いてある左端の部分を
クリックして三角が出ている状態です。その灰色のバー部分の
どこをどうクリックするかで画面上の並び順が変わります。)
この様に「シャッフルされたリストを作る」と言う機能なので、そのリスト内で
曲を前や後ろに飛ばしてもまた同じ部分では同じ順番で再生されます。
シャッフル機能を切って入れ直すか、最初の曲から前に飛ばしたり、
最後の曲を終わりまで再生したりすればシャッフルし直されます。
自分は普段まずシャッフル再生はしないので、今ちょっと試してみた
結果を見て回答したので、何か間違いがあるかもしれません。
0572デフォルトの名無しさん
2010/01/24(日) 12:45:56iTunesと同じなのであれば、
「再生回数」という項目もあるから、これでも確認できますね。
全部再生回数が0回の状態で再生し、
しばらくしてから再生回数を見て、飛びぬけて再生回数が少ない・多いものが無いことを確認する。
iTunesではメニューの方の「シャッフル」をよく利用します。
(下にシャッフルボタンがあるのは知らなかった…)
確かにこれは「リピートする」にチェックを入れておかないと、一巡したところで終了するので私の望んでいるタイプです。
まぁ重要なのは本当にiTunesとiPodの再生方式が同じなのか、というところですが、
同じじゃない方が不自然ですよね。
ありがとうございました。
0573デフォルトの名無しさん
2010/01/24(日) 12:47:04コンピュータでのランダムは疑似乱数関数を利用しているのが一般的です。
疑似と頭に付くように実は完全なランダムではありません。与えるパラメーターが同じなら結果は全く同じになります。
実際の利用では、パラメーターに現在の時刻を1/100秒単位で指定します。
毎回再生ボタンをコンマ何秒の単位で全く同じく押すなんて事不可能ですから、同じ順番になることはなくランダムだと言って差し支えないでしょう。
> 同じ曲ばかりを繰り返します。
一般的にプログラム上では、順番は疑似乱数でランダムに決め、更に同じ曲が出ないようにする工夫もなされています。
実際にはランダムだけど、同じようなのを繰り返したり、次のが予想した通りだと思えるのは人間の特性が関係しています。
聞き流している時には好きな曲は印象が強く残りますが、そうではない曲は聴いても記憶に残りにくいものです。
ランダム再生していると、好きな曲ばかりが印象強く残って、前にも聴いたなとか、同じのばかりかかっているなと勘違いしてしまいます。
実際に聴いて確かめるのではなく、ランダム再生時の曲名を順番に書き出してみるとわかります。
聞き流していると錯覚してしまうし、時間もかかりますからね。
> A,C,E,A,C,E,...のように、同じ曲ばかりを繰り返します
そういうプログラムがされている可能性も否定はできませんが、錯覚である可能性もあります。
0574デフォルトの名無しさん
2010/01/24(日) 12:48:00>> 同じ曲ばかりを繰り返します。
>一般的にプログラム上では、順番は疑似乱数でランダムに決め、更に同じ曲が出ないようにする工夫もなされています。
基本的にどのメーカーでも、ランダム再生のロジックは同じはずだ、という意味でしょうか。
そうだと良いのですが。
自分もほんの少しだけプログラミングには触ったことがあるので、
完全なランダム再生は難しくないのになんでこのMP3プレイヤーはこうなんだ!とか一人で憤慨しています。
>> A,C,E,A,C,E,...のように、同じ曲ばかりを繰り返します
>そういうプログラムがされている可能性も否定はできませんが、錯覚である可能性もあります。
確かめたわけじゃないので、確かに錯覚の可能性もあります。
それなのに言い張ったところで説得力は無いのですが、
「また同じ曲だ」「これはさっき聞いたばっかりだ」とか、曲単位で耳に残るのではなく、
曲Aがフェードアウトした後に始まるイントロは曲Cだ、という「つながり」が耳に残るんですよ。
そこから「いくつかの同じ曲を同じ順番で再生している」と思っています。
あくまで「思っている」です。
本題?のiPod購入は、前向きになっています。
0575デフォルトの名無しさん
2010/01/24(日) 12:49:04俺は>>560が書かれてた時点でスレ見てスルーして次見たのが今だけど、
560の時点じゃ同感だったよ。ちゃんと読んでればいずれかと書いてるから
言葉の使い方間違ってるわけではないとわかるけれど。
流し読みすると 1→2→3 と要求してるように見えて
ランダムって違うんじゃね?と思ったわな。
560=562だったとしても何も驚かんけどな。
0576デフォルトの名無しさん
2010/01/24(日) 12:50:06自分の経験上ではそうなっていると思います。
もちろん、電源が完全にオフになるとどこまで再生していたかはリセットされますが、少なくとも連続して聞いている時に同じリスト内の曲が再度かかることはないですね。
iTunesで曲を追加したり並び順を替えてもiPod側の再生順は変わりますし、1度PCに接続すると同じプレイリストを先頭から再生しても順番が変わっているように思います。
ただし、iPodやiTunesの「ランダム」というのは「万遍なく」という意味ではなく「目茶苦茶」という意味ですので、同じアーチストの曲が連続したりすることもあれば、プレイリスト内の次の曲がそのまま再生されたりもします。文字通り「目茶苦茶」です。
0577デフォルトの名無しさん
2010/01/24(日) 16:39:240578デフォルトの名無しさん
2010/01/24(日) 19:16:090579デフォルトの名無しさん
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
:
:
どうしてもバッチでやりたい変態です
バッチ単体じゃ無理かね
0580デフォルトの名無しさん
2010/01/25(月) 17:15:47C:/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
どうしてもバッチ単体で処理したい変態です。
無理ですかね…
0581デフォルトの名無しさん
2010/01/25(月) 19:32:21for /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
0582デフォルトの名無しさん
2010/01/25(月) 19:52:02del 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
0583デフォルトの名無しさん
2010/01/25(月) 20:48:040584デフォルトの名無しさん
2010/01/25(月) 21:22:56%%~nxI ?%%I
とすればいいよ
もし<tab>が入力できれば
%%~nxI<tab>%%I
delims=<tab>
でもいいが難度が高いかな?
0585デフォルトの名無しさん
2010/01/25(月) 22:12:16?????
0586デフォルトの名無しさん
2010/01/25(月) 23:12:59%%~nxI?%%I
だと数字が?より前になる
%%~nxI ?%%I
なら数字が より後ろになる
0587デフォルトの名無しさん
2010/01/26(火) 00:51:040588デフォルトの名無しさん
2010/01/26(火) 02:28:170589デフォルトの名無しさん
2010/01/26(火) 12:25:06sortコマンドの並び替えはascii順じゃないので数字より前に?が来る。
タブもNG。ソート順ではスペースが前に来るんで、スペース入りのファイル名があると
おかしくなる。
多分sortでファイル名に出来ない文字で一番若いのは(0f)
区切り文字をこれにしたらとりあえずokみたい。
0590デフォルトの名無しさん
2010/01/26(火) 12:28:24コマンドプロンプト上ではアスタリスクみたいに見える文字(外字?)
0591デフォルトの名無しさん
2010/01/26(火) 14:56:08二重線の「
が最初
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
0592デフォルトの名無しさん
2010/01/26(火) 19:53:210593デフォルトの名無しさん
2010/01/26(火) 20:41:27^AはCtrl+A
0594デフォルトの名無しさん
2010/01/26(火) 22:06:240595デフォルトの名無しさん
2010/01/29(金) 18:36:32バッチファイル中から自力でアイコン変える方法ってないですか?
フリーウェア等の外部ツールでもいいんですが。
0596デフォルトの名無しさん
2010/01/31(日) 22:42:410597デフォルトの名無しさん
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状態です。
0598デフォルトの名無しさん
2010/01/31(日) 22:57:120599デフォルトの名無しさん
2010/01/31(日) 23:10:23無理して日本語を使わなくてもいいですよ。
BATでおk
0600デフォルトの名無しさん
2010/01/31(日) 23:46:03最初に受け渡されたファイルネームは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%の中身がいつの間にか新ファイル名に変わってるので困っております。
0601デフォルトの名無しさん
2010/01/31(日) 23:58:51call先でsetlocal 〜 endlocalしとけ
0602デフォルトの名無しさん
2010/02/01(月) 00:00:36call先のファイルをいじれないんだったらcallの呼び出しをsetlocal〜endlocalで囲む
0603デフォルトの名無しさん
2010/02/01(月) 00:03:460604デフォルトの名無しさん
2010/02/01(月) 00:24:56Danke.
0605デフォルトの名無しさん
2010/02/01(月) 08:43:15IF 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
0606デフォルトの名無しさん
2010/02/01(月) 11:12:49が \ で終わっていないに 1000ガバス。
とりあえず
IF EXIST "%INPUTPATH%\work.tmp" goto tmpdel
じゃないか?
0607デフォルトの名無しさん
2010/02/01(月) 11:22:30echo onするなり
echo IF EXIST %INPUTPATH%work.tmp goto tmpdelするなりして
何をチェックしようとしてるのか確認しろ
0608デフォルトの名無しさん
2010/02/01(月) 14:25:44いや、\は付いてる
0609デフォルトの名無しさん
2010/02/01(月) 14:59:020610デフォルトの名無しさん
2010/02/01(月) 16:29:43work.tmp が wark.tmp とか work,tmp なのが原因でファイルが存在しないに 1200カパズ。
for の中で遅延展開してない、に 1500ガバス。
そもそも 607 のアドバイスのように echo の結果はどうなのよ?
まさか、表示が流れて読めません、とかいう訳じゃないんでしょ?
0611デフォルトの名無しさん
2010/02/01(月) 16:46:460612デフォルトの名無しさん
2010/02/01(月) 17:32:55echoの結果も同じ。
なんでだろ?
0613デフォルトの名無しさん
2010/02/01(月) 18:08:04実際に使ってる内容晒したらエラー出て当たり前って内容かもしれないだろ。
おまえさんがその当たり前に気付いてないだけで。
0614デフォルトの名無しさん
2010/02/01(月) 19:52:01よければ問題が起こる最小限のコード全体を貼ってくれ
0615デフォルトの名無しさん
2010/02/01(月) 21:30:590616デフォルトの名無しさん
2010/02/01(月) 22:11:39それを引数としてあるバッチに渡す。
以上を一つ下のサブディレクトリ全てについて実行するバッチって作れますか?
WSHの方が良いですか?
0617デフォルトの名無しさん
2010/02/01(月) 22:41:36試しに
ECHO "%INPUTPATH%hogehoge.txt"
としたら
C:\hogehoge.txt
と¥付きで表示される。
0618デフォルトの名無しさん
2010/02/01(月) 23:51:27分かった。
直前で作ったファイルが書ききれていなかったっぽい。
TIMEOUT1秒入れたらEXISTで見えるようになった。
0619デフォルトの名無しさん
2010/02/02(火) 01:13:03for /d %%I in (*) do (
echo call exec.bat %%I
)
0620デフォルトの名無しさん
2010/02/02(火) 01:33:15すげぇ!こういとも簡単にできるとは…。
ありがとうございます。
0621デフォルトの名無しさん
2010/02/02(火) 01:44:36SET INPUT=%~dpnx1
ECHO %INPUT%
pause
これだけのバッチファイルを作って、このファイルに適当なファイルをD&Dしたら
ファイルネームがフルパスで表示されると思う。
でも、どこでもいいから適当なフォルダに長江 6380.txtってファイルを作って
さっきのバッチファイルにD&Dしてみてくれ。
長江で切れてしまうと思う。
これを回避するにはどうしたらいい?
0622デフォルトの名無しさん
2010/02/02(火) 02:06:530623デフォルトの名無しさん
2010/02/02(火) 03:22:160625デフォルトの名無しさん
2010/02/02(火) 10:37:47そのコードで問題が出るなら明らかに呼び出し側の問題。
0626デフォルトの名無しさん
2010/02/02(火) 12:24:52試しにecho "%INPUT%"
をしても同じ
0627デフォルトの名無しさん
2010/02/02(火) 12:32:11普通なら切れない。
切れるとしたらbatファイルの関連付けでドロップハンドラが壊れているんだろう。
0628デフォルトの名無しさん
2010/02/02(火) 15:12:55http://scripting.cocolog-nifty.com/blog/2008/02/post_c740.html
0629デフォルトの名無しさん
2010/02/02(火) 15:59:28pgr
0630デフォルトの名無しさん
2010/02/02(火) 16:36:56半角で例示したりして芸の細かいこと
0631デフォルトの名無しさん
2010/02/02(火) 19:55:37素直にコマンドプロンプトで打てばいいじゃん
0632デフォルトの名無しさん
2010/02/02(火) 21:10:28さっきのバッチファイルにD&Dしてみてくれ。
0633デフォルトの名無しさん
2010/02/02(火) 23:39:00ありがと。
>>631
長いバッチで自動化したいから無理なのら。
>>632
さぶぅ。
雪降らせたのお前か。
0634デフォルトの名無しさん
2010/02/03(水) 02:14:360635デフォルトの名無しさん
2010/02/03(水) 02:42:210636デフォルトの名無しさん
2010/02/03(水) 14:35:340637デフォルトの名無しさん
2010/02/05(金) 14:35:400638デフォルトの名無しさん
2010/02/05(金) 21:19:533の3乗
0639デフォルトの名無しさん
2010/02/07(日) 14:26:03kaigi_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
という状態になってしまいました。
これは自分のワイルドカードの使い方が根本的に間違っているのでしょうか?
どなたかご教授お願いいたします。
0640デフォルトの名無しさん
2010/02/07(日) 15:23:120641デフォルトの名無しさん
2010/02/07(日) 16:48:59「会議_(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
)
0642デフォルトの名無しさん
2010/02/07(日) 17:33:56for %%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=%%
)
0643デフォルトの名無しさん
2010/02/07(日) 19:24:58for /f %%I in ('dir /b *kaigi*.txt') do @(set a=%%I
set a=!a:kaigi=!
set a=!a:_=!
ren %%I 会議_!a!)
0644デフォルトの名無しさん
2010/02/07(日) 19:44:18みなさん、ありがとうございます!
試してみましたところ、ばっちり動作しました。
ただ、ばっちり動作しますがプログラムの挙動を自身がまだ理解できてない状態なので
これらを元に色々調べてプログラムを練ってみたいと思います。
0645デフォルトの名無しさん
2010/02/10(水) 00:23:41コマンド シェルの概要
http://technet.microsoft.com/ja-jp/library/cc737438(WS.10).aspx
Windowsヘルプにもあるし、OSごとにリンク先違うけど、ここらへんがテンプレにあっても良くないか?
コマンド ライン リファレンス
http://technet.microsoft.com/ja-jp/library/cc778084(WS.10).aspx
バッチ ファイルを使用する
http://technet.microsoft.com/ja-jp/library/cc758944(WS.10).aspx
こっちは、上からリンクあるからイランと思うけど。
0646デフォルトの名無しさん
2010/02/10(水) 00:24:35http://technet.microsoft.com/ja-jp/library/cc778084.aspx
アチャー
0647デフォルトの名無しさん
2010/02/10(水) 00:25:380648デフォルトの名無しさん
2010/02/10(水) 09:53:38ヘルプすら読まずに質問するやつが多すぎるという嫌味?
0649デフォルトの名無しさん
2010/02/10(水) 13:59:37Runasなんてあったのかー
0650デフォルトの名無しさん
2010/02/10(水) 15:52:520651デフォルトの名無しさん
2010/02/10(水) 16:15:510652デフォルトの名無しさん
2010/02/12(金) 01:00:53unixでいうところのsmbclientを使うには、
どのようにしたらよいでしょう?
smbはもともとWindowsのプロトコルで、GUIに統合されているため、
smbclientのコマンドラインプログラムというのがあるのかないのか、
よくわからないのですが、
パスワードつきの他のマシンに起動時に自動接続するのに、
ネットワークドライブに割り当てただけではだめだったので、
それならコンソールでコマンドを実行して接続するか、と考えました。
ご存じでしたらアドバイスをお願いします。
0653デフォルトの名無しさん
2010/02/12(金) 01:04:430654デフォルトの名無しさん
2010/02/12(金) 01:21:50thanks
0655デフォルトの名無しさん
2010/02/14(日) 03:13:43makecabとかまったくわからんしfsutilとか独自すぎて笑える
cmdのヘルプもわかりにくい部類になるだろう
書いてあるのかないのかよくわからんことも多いし
掲示板のほうが楽しいとかはさすがにあれだがw
0656デフォルトの名無しさん
2010/02/14(日) 21:54:55objShell.Run "コマンド1 | コマンド2 | sort"
とかをスクリプトでするとしましょう。
そのとき、途中のコマンドが
.vbs とか .wsf の//job:XXX として、
そのなかに Wscript.Sleep 100 があるとパイプラインが詰まる?
ことないですか?
0657デフォルトの名無しさん
2010/02/14(日) 22:37:570658デフォルトの名無しさん
2010/02/14(日) 22:48:45コマンド1 とかは
Cscript //nologo XXX.vbs で、
XXX.vbs や YYY.wsf //job:ZZZ 内部では
Wscript.Echo とか Wscript.StdOut.WriteLine 使用
ではどうだろう。
あげたれ
0659デフォルトの名無しさん
2010/02/14(日) 23:07:30cmd /cならパイプラインの機能を持ってるが?
0660デフォルトの名無しさん
2010/02/14(日) 23:29:58objShell.Run "cmd.exe /c " & "コマンド1 | " & ...
でした。
で、コマンド1にWscript.Sleep 100 があるとコマンド1で止まっちゃうような。
気がするのです
0661デフォルトの名無しさん
2010/02/15(月) 00:09:240662デフォルトの名無しさん
2010/02/15(月) 21:36:310663デフォルトの名無しさん
2010/02/16(火) 13:52:42set 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 となる事は可能ですか?
0664デフォルトの名無しさん
2010/02/16(火) 14:29:10こんな感じかな?
× set FOLDER=%1
○ call set FOLDER=%%%1%%
0665デフォルトの名無しさん
2010/02/16(火) 18:01:21できました。ありがとうございました。
0666デフォルトの名無しさん
2010/02/27(土) 11:20:25パソコンちょっと詳しいからということで、会社の
ネットワーク管理者にされてしまいました。
運の悪いことに、次年度からパソコンの更新が行われ、
Windows XP→Windows 7にOSも変更になりました。
前任の人がWindows XP環境でログインしたときに、
仕事でよく使うフォルダへのショートカットを
ログイン時のバッチファイルで表示させていたのですが、
Windows 7では動作しないみたいなのですorz
Windows 7でバッチファイルでファイルのショートカットを
デスクトップに表示させるにはどうしたらいいでしょうか?
いろいろググッてみましたが、それ用のフリーソフトが
あるみたいなのですが、Windows 7では動きそうにないんです...
0667デフォルトの名無しさん
2010/02/27(土) 13:05:03管理者スレ
0668デフォルトの名無しさん
2010/02/27(土) 13:08:37>ログイン時のバッチファイルで表示させていたのですが、
>Windows 7では動作しないみたいなのですorz
動作するかしないかはっきりさせろ!
実行してみりゃどういうエラーが出てるかわかるだろ?
0669デフォルトの名無しさん
2010/02/27(土) 13:23:23前任の人の設定のままでXPのマシンをログインすると
ちゃんとショートカットでるのですが、7だと、
エラーメッセージも出ず、スルー状態なんです。
(つまり何もおきない)
他のソフトインストールして試して見ます。
このスレの人で、ショートカット表示
させるコマンドライン知っている人い
ましたら、ご教示ください。
おながいしまつ。
0670デフォルトの名無しさん
2010/02/27(土) 14:29:35そもそもhomeでドメインに参加できないとか。
ショートカット表示の意味がわからない。
エクスプローラ上で表示させる事なのか、リモート資源の接続先をポップアップさせる事なのか。
とにかく5W1Hで明確に書いてくれないと全くわかんね。
0671デフォルトの名無しさん
2010/02/27(土) 15:20:16とても親切にしていただいてありがとうございます。
前の設定者はドメインに参加する時点で、windows 2003 server
のActive Direcrory処理の際に、ログオンするときのバッチファイルに
デスクトップにショートカットを表示させるようにしてたみたいです。
というのも、管理者以外はディレクトリ構造も知らないので、
それを全員に分からせてセキュリティレベルを下げるより、
自動的にショートカットを表示してクリックさせるという形に
したようです。確かにパスを追っていけばそのファイルに到達しますが、
わざとそうさせないみたいです。(その方針には私も賛成します)
長文すみません。
0672デフォルトの名無しさん
2010/02/27(土) 15:22:13パスを探られたくないフォルダへの
ショートカットを入れたいということです。
パソコンしかさわったことないので、
こういう具体的かつ実践的なご指摘はとても
勉強になります。ありがとうございます。
0673デフォルトの名無しさん
2010/02/27(土) 17:01:32このスレ的にはログオンスクリプトの中でNET USEで接続しているんだろうな位・・・もしかするとSUBST?
0674デフォルトの名無しさん
2010/02/27(土) 17:24:57明日は日曜ですが、隠れ出社して試してみます。
0675デフォルトの名無しさん
2010/02/27(土) 19:12:15インターネットショートカットならかんたん
(
echo;[InternetShortcut]
echo;URL=\\server\sharename\folder
) > desktop\hoge.url
0676デフォルトの名無しさん
2010/02/27(土) 19:34:54大抵は新しいパスへリダイレクトしてくれるけど、AllUsers→Publicの部分はうまくいかない模様
XP以前:C:\Documents and Settings\All Users\Desktop
Vista以降:C:\Users\Public\Desktop
0677デフォルトの名無しさん
2010/02/27(土) 20:15:31さすがに会社のサーバ?でユーサフォルダ以降のフォルダ使わないだろw
まさか、な・・・?
0678デフォルトの名無しさん
2010/02/28(日) 00:15:40ヒントありがとうございます。
まさかもありえるのでちょっとやってみます。
0679デフォルトの名無しさん
2010/02/28(日) 05:55:24次の人に渡すにしても。
前任者に要求しとかないとまずいね。
0680デフォルトの名無しさん
2010/02/28(日) 12:55:36コマンドラインから実行してみたらエラー内容が分かるんじゃない?
0681デフォルトの名無しさん
2010/02/28(日) 18:47:20バッチファイルが別のバッチファイル呼び出すような
入れ子構造になっていることが判明し、解析に手間取ってます
というか、そもそもDOSのコマンド知らないorz
一から調べていますので少々時間くださいまし。
0682デフォルトの名無しさん
2010/03/03(水) 19:37:112ch落ちたので、その間にいろいろ調べて
見ました。問題が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コマンド勉強始めたのですが、
前任者は、ショートカットをアクセスされてもいいフォルダにつくって
そのショートカット自体をファイルとしてコピーするということで
ショートカットの自動表示をしていました。
大変勉強になりました。また、機会がございましたら、
質問させていただければ幸いです。
(ここから後は管理者スレの内容になりそうなので、
純粋にバッチファイルに関する内容の時にまた来ます。)
ありがとうございました。
0683デフォルトの名無しさん
2010/03/03(水) 22:56:170684デフォルトの名無しさん
2010/03/04(木) 00:20:270685デフォルトの名無しさん
2010/03/04(木) 21:13:130686デフォルトの名無しさん
2010/03/07(日) 19:34:58それをつかってJドライブ直下にあるaaaフォルダを圧縮してデスクトップに出力させたいのですが
どうもうまくいきません
どこが悪いかを教えてください
cd J:\lhaca
Lhaca.exe temp.zip J:\aaa
0687デフォルトの名無しさん
2010/03/07(日) 23:14:06そのあと j: でカレントドライブを変更しないと相対でlhaca.exeを入力したら
カレントドライブ(C:\)のカレントディレクトリでlhaca.exe探しちゃうけどそこは大丈夫?
もしそれが問題なら
j:
cd J:\lhaca
Lhaca.exe temp.zip J:\aaa
にすべき。これで違ったらそれはLhaca.exeの問題かも
0688デフォルトの名無しさん
2010/03/07(日) 23:28:57既にカレントドライブはJになっています。
Lhacaは普通に手で実行すると普通に開くのですが
Dosコマンドで開こうとするとどうしてもエラーになります
0689デフォルトの名無しさん
2010/03/08(月) 00:10:36詳しいエラー教えて
0690デフォルトの名無しさん
2010/03/08(月) 02:30:59Windows7 x64で実行するとファイル名バグるな
(Lhaca.exe temp.zip readme.txt だと「(」名の空フォルダができるだけ
Lhaca.exe .\temp.zip .\readme.txt とすると圧縮はできるけど「(.zip」という名前になる)
デラックス版(1.24)も試してみたが、こちらは空フォルダすら作れなかった
そもそもマニュアルにコマンドライン引数について何の記述もないし、サポート外の機能のようだ
7-Zipとかコマンドラインに正式に対応してるアーカイバ使った方がいいんでない?
0691デフォルトの名無しさん
2010/03/08(月) 02:52:16そうそう。俺も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が言っているように別のアーカイバ使った方が良いよってこと。
0692デフォルトの名無しさん
2010/03/08(月) 03:44:39別の言語では時々見るんだけどコマンドプロンプトでやってるの見たことないからさ
http://blog-imgs-42.fc2.com/s/h/t/shtpg/fri.txt
0693デフォルトの名無しさん
2010/03/08(月) 03:57:06圧縮形式や作成先はLhaca自体の設定(レジストリ)に依存するようだよ
Lhacaはコマンドラインで使わないほうがいいな
0694693
2010/03/08(月) 04:00:46"C:\Windows\Lhaca.ini"
なんてのが勝手に作成されてた
行儀が悪すぎる!
0695デフォルトの名無しさん
2010/03/08(月) 08:24:06↓横レスだが、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\*"
0696デフォルトの名無しさん
2010/03/08(月) 08:33:40macros.lzh → aaa.lzh
いずれにせよ"%USERPROFILE%\デスクトップ\"を指定するのがポイント。
ただし「窓の手」などでデスクトップのフォルダを任意のフォルダに変えてる場合、この手段は使えない。
0697デフォルトの名無しさん
2010/03/08(月) 23:24:41バッチというかコマンドラインでやっても問題ない
アーカイバってどんなのがあるの?
一見しただけじゃわからないからな
0698デフォルトの名無しさん
2010/03/09(火) 01:03:500699デフォルトの名無しさん
2010/03/09(火) 01:31:570700693
2010/03/09(火) 01:48:240701デフォルトの名無しさん
2010/03/09(火) 02:27:44Syntax:
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
0702デフォルトの名無しさん
2010/03/09(火) 15:34:51これがないと怖くて処理が書けないのですが。
PowerShell 2.0の新機能(5) ――トランザクション編(1/3):CodeZine
http://codezine.jp/article/detail/4944
0703デフォルトの名無しさん
2010/03/09(火) 16:31:12powershell syori.ps1
0704デフォルトの名無しさん
2010/03/09(火) 17:02:59-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
0705デフォルトの名無しさん
2010/03/09(火) 17:13:21―情報圧縮技術とアルゴリズムの基礎講座
How‐nual Visual Guide Book
圧縮アルゴリズム―符号化の原理とC言語による実装 C magazine
0706デフォルトの名無しさん
2010/03/17(水) 12:10:47EXEの起動でパラメータを渡す際スペースがあるものは""
で囲むと思っていたのですが
test.exe "C:\Dir 1\"
とすると最後の\が消えて
C:\Dir 1"
として受け取ってしまうようでした
試しにVCで__argvを確認してもそうなっているようでしたが
どんな書式規則でこうなるんでしょうか?
0707デフォルトの名無しさん
2010/03/17(水) 12:19:37ちゃんと"C:\Dir 1\"と受け取ってくれたよ。
確かWin95/98/Me/NT/2000でも同じ挙動だったはず。
test.vbs "C:\Dir 1\"
0708デフォルトの名無しさん
2010/03/17(水) 12:30:02確認してみましたが、確かにVBSだときちんと受け取ってますね・・。
理由は気になりますが、書式として間違っていたわけではないと
わかっただけで大収穫です。
ありがとう。
0709デフォルトの名無しさん
2010/03/17(水) 14:19:30test.exe "a b c d"の中に"を入れるときは、\"でエスケープするだよ
test.exe "a \"b c\" d"
0710デフォルトの名無しさん
2010/03/17(水) 19:29:21おお!なるほど!エスケープを使えたとは知りませんでした。
すっきり解決しました。ありがとう。
0711デフォルトの名無しさん
2010/03/17(水) 20:03:530712デフォルトの名無しさん
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です。
0713デフォルトの名無しさん
2010/03/17(水) 23:12:400714デフォルトの名無しさん
2010/03/17(水) 23:27:560715デフォルトの名無しさん
2010/03/18(木) 01:51:47ググったところ、コマンドプロンプトから「attrib ドライブ名:\ファイル名.拡張子 -s」で解除できることがわかりました。
いちいちコマンドプロンプトからやらないで、バッチファイルを作って、それを実行することで解除するようにするにはどういう記述を書けばいいのでしょう。
0716デフォルトの名無しさん
2010/03/18(木) 02:19:010717デフォルトの名無しさん
2010/03/18(木) 10:01:26@echo off
attrib ドライブ名:\ファイル名.拡張子 -s
0718デフォルトの名無しさん
2010/03/18(木) 10:12:28Windowsのコマンドで、きえる、\"以外の例を挙げてみろよ
0719デフォルトの名無しさん
2010/03/18(木) 10:54:370720デフォルトの名無しさん
2010/03/18(木) 17:42:010721デフォルトの名無しさん
2010/03/18(木) 19:20:51CommandLineToArgvW 関数
対応情報
Windows NT: バージョン 3.5 以降を使います。
Windows: サポートされていません。
Windows CE: サポートされていません。
別に無理していないけど、Windowsでサポートされていない関数の挙動を
Windows標準とみなすのはどうかと思うわけよ。
実際いろいろなexeがそれぞれ好き勝手に解釈しているし。
0722デフォルトの名無しさん
2010/03/18(木) 19:55:530723デフォルトの名無しさん
2010/03/18(木) 20:56:580724デフォルトの名無しさん
2010/03/18(木) 22:29:590725デフォルトの名無しさん
2010/03/19(金) 17:12:30無理すんな
0726デフォルトの名無しさん
2010/03/20(土) 16:59:480727JGSDF
2010/03/21(日) 00:49:250728JGSDF
2010/03/21(日) 00:51:010729712
2010/03/21(日) 13:59:48moreコマンドでは某コマンドの出力行が長くなった時に問題あるかと思い、
find -v ""にて標準出力を無条件にfindする方法にて対応しました。
ですが、LF改行の出力が別のコマンドでフィルタすることによって、
CRLF改行に変換できるというのが大変参考になり、どうもありがとうございました。
>>714
/xオプションなら/bと/eを併用しなくてもよかったのですね
ヘルプやオンラインマニュアルで印刷やプリントといったキーワードが使われていたため、
完全一致検索のことを指していると気づいていませんでした。
マイクロソフトの翻訳は微妙なことも多いので、英語版サイトもこれからは見るようにします。
どうもありがとうございました。
0730712
2010/03/22(月) 08:36:22処理分岐するバッチファイルを作成したいのですが、
修飾子%~a1で取得できる属性には、ディレクトリとファイルを区別する
属性がなく、困っています。
0731730
2010/03/22(月) 11:28:45書き忘れていました.
0732デフォルトの名無しさん
2010/03/22(月) 12:55:320734デフォルトの名無しさん
2010/03/22(月) 17:13:340735デフォルトの名無しさん
2010/03/22(月) 17:25:020736デフォルトの名無しさん
2010/03/22(月) 18:17:090737デフォルトの名無しさん
2010/03/22(月) 21:26:33FOR /F "eol=d" IN ("%~a1") DO ECHO FILE
0738デフォルトの名無しさん
2010/03/22(月) 21:46:12複数のCSVファイル(yyyymmdd_hhmmss.csvのフォーマット)
をmoreコマンドでひとつのcsvファイルにマージする際、
プライマリキーにおいて重複するレコードを最新のレコード以外
削除するほうほうってないですかね。
バッチ単体で。
0739デフォルトの名無しさん
2010/03/22(月) 22:14:400740デフォルトの名無しさん
2010/03/22(月) 22:40:000741デフォルトの名無しさん
2010/03/23(火) 18:37:03cdが変わるからやだ
0742デフォルトの名無しさん
2010/03/23(火) 19:01:51"dir name"だと駄目やんけ
0743デフォルトの名無しさん
2010/03/23(火) 20:29:250744デフォルトの名無しさん
2010/03/23(火) 20:34:37pushd&popd使えよ
0745デフォルトの名無しさん
2010/03/23(火) 22:45:390746デフォルトの名無しさん
2010/03/24(水) 23:35:07ここで、wmicの出力がUnicode、別のリダイレクト部分(START、ENDなどのコメント)がSJISで出力されてしまいます。
wmicの出力をSJIS(CR+LF)にする方法はありますでしょうか。
0747デフォルトの名無しさん
2010/03/25(木) 01:01:550748デフォルトの名無しさん
2010/03/25(木) 19:05:39これをunicodeで出せばよい
0749デフォルトの名無しさん
2010/03/26(金) 00:35:26rootに使えん
0750デフォルトの名無しさん
2010/03/27(土) 00:31:19if existはどうやっても駄目だな
0751デフォルトの名無しさん
2010/03/27(土) 00:43:390752デフォルトの名無しさん
2010/03/27(土) 01:51:37if 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========== を見分けるにはどーすりゃいいんだ?
0753デフォルトの名無しさん
2010/03/27(土) 02:11:47echo %errorlevel%
0754デフォルトの名無しさん
2010/03/27(土) 07:01:38>ふと思ったのは %1 を渡された時にたとえば aaa と aaa========== を見分けるにはどーすりゃいいんだ?
ヒント:findstr /x
0755デフォルトの名無しさん
2010/03/27(土) 09:22:25findstr をしようにも、たとえば
echo %1
というバッチファイル test.bat で
test.bat aaa と test.bat aaa===== でどちらも aaa となって末尾の = が拾えない
のを「見分けるにはどーすりゃいいんだ?」と思ったんですが。
オレ何か勘違いしてる?
0756デフォルトの名無しさん
2010/03/27(土) 14:29:01あまいな .もない、空のフォルダってぇのがあるのだ
>>752 >>753
アクセス権がないフォルダはファイルなのか
>>755
別の話を絡めるな
test.bat "aaa====="
0757デフォルトの名無しさん
2010/03/27(土) 14:35:300758デフォルトの名無しさん
2010/03/27(土) 15:56:470759デフォルトの名無しさん
2010/03/27(土) 17:34:270760デフォルトの名無しさん
2010/03/28(日) 17:31:02デスクトップに同じ見た目のアイコンが3つあるからややこしくて。
バッチファイルをクリックすると上下ボタンでどのソフトを起動するか
選択できて、エンター押すと実行っていうのを作りたいんだけど
誰か作ってくんない?
イメージ的にはウィンドウズをセーフモードで起動したときに
選択する画面がまずでてくるんだけどあんな感じ☆
0761デフォルトの名無しさん
2010/03/28(日) 17:56:460762デフォルトの名無しさん
2010/03/28(日) 18:03:24異なるショートカットキーを指定すればいいじゃん
0763760
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
0764デフォルトの名無しさん
2010/03/28(日) 19:38:460765デフォルトの名無しさん
2010/03/28(日) 19:47:410766デフォルトの名無しさん
2010/03/28(日) 19:59:09echo アプリケーションを選択して下さい
echo [1] : メモ帳
echo [2] : ペイント
echo [3] : 電卓
choice /c 123
if "%ERRORLEVEL%"=="1" start notepad
if "%ERRORLEVEL%"=="2" start mspaint
if "%ERRORLEVEL%"=="3" start calc
0767デフォルトの名無しさん
2010/03/28(日) 20:17:58start notepad
start mspaint
start calc
)
↑
0768デフォルトの名無しさん
2010/03/28(日) 21:11:49あってもブート選択画面ぐらいか
0769デフォルトの名無しさん
2010/03/28(日) 21:15:152ストロークで26^2個のツール呼び出せるランチャ作ったけど軽くて便利。
0770デフォルトの名無しさん
2010/03/28(日) 22:05:340771デフォルトの名無しさん
2010/03/28(日) 22:32:52できるよ
バッチファイルとまた一つftpコマンドを書いたテキストファイルが必要になる
0772デフォルトの名無しさん
2010/03/29(月) 13:10:44遅レスすみません。
ありがとうございます。おかげでできました。
0773デフォルトの名無しさん
2010/03/29(月) 21:37:470774デフォルトの名無しさん
2010/03/29(月) 21:42:460775773
2010/03/29(月) 22:54:06test.bat > log.txt
0776デフォルトの名無しさん
2010/03/29(月) 23:40:05それだと標準エラーがファイル出力できないよ
0777デフォルトの名無しさん
2010/03/29(月) 23:48:000778デフォルトの名無しさん
2010/03/29(月) 23:59:44そうなんですか、知りませんでした!
ありがとうございます。
0779デフォルトの名無しさん
2010/03/30(火) 11:24:07ファイル
a.txt.bak
ab.html.bal
abc.exe.bak
があるとすると
拡張子.bakだけ一括で名前変更できるでしょうか?
0780デフォルトの名無しさん
2010/03/30(火) 13:17:310781デフォルトの名無しさん
2010/03/30(火) 13:35:100782デフォルトの名無しさん
2010/03/30(火) 13:51:39a.txt.baka
ab.html.aho
abc.exe.baka
拡張子.bakaだけ一括で名前変更できるでしょうか?
0783779
2010/03/30(火) 14:02:57bakの部分だけ消したいんです。
a.txt.bak→a.txt
0784デフォルトの名無しさん
2010/03/30(火) 14:17:180785デフォルトの名無しさん
2010/03/30(火) 15:07:17ありがとうございます
できました
0786デフォルトの名無しさん
2010/03/30(火) 16:00:55おっと、kusoも使うなw
0787デフォルトの名無しさん
2010/03/30(火) 17:21:12manko
unko
shikko
0788デフォルトの名無しさん
2010/04/06(火) 00:27:29test.txt中身
---------------
morning
hello
bye
---------------
上のようなファイルがあったとして、1行目のmorningや、3行目のbyeを
変数やファイルに出力する方法はないでしょうか。
外部コマンドは使えないWindowsXP/2003環境です。
0789デフォルトの名無しさん
2010/04/06(火) 02:28:580790デフォルトの名無しさん
2010/04/06(火) 02:28:59find使って >baka.txtとかで出力
うまく使えば一つのバッチファイルで色んなバッチファイルを作成することができるから便利
0791デフォルトの名無しさん
2010/04/06(火) 07:40:040792デフォルトの名無しさん
2010/04/06(火) 07:56:00findstr /r "^morning$ ^bye$" > hoge.txt
0793デフォルトの名無しさん
2010/04/06(火) 09:11:31空気読め馬鹿
0794デフォルトの名無しさん
2010/04/06(火) 09:28:43それ外で買ってきたんだろとあきれられてても本人は満足
0795デフォルトの名無しさん
2010/04/06(火) 20:43:400796デフォルトの名無しさん
2010/04/06(火) 22:12:33ありがとうございます。
説明が不足してたのですが、必ずしも1行目にmorningがあって、3行目にbyeがあるわけじゃない場合に
1行目、3行目を抽出って出来るんでしょうか。根本から違うやり方考えた方が良いですかね・・・。
0797792
2010/04/06(火) 22:28:25二重引用符内で半角空白区切りで指定されたキーワードを
OR検索できるんだけど、
やりたいのは、特定キーワードで抽出したいんじゃなくて、
特定の行番号を抜き出したいってこと?
0798デフォルトの名無しさん
2010/04/06(火) 23:05:41とかいう決まりがあるのでしょうか?
for %%i in (%*) do xxxxx %%i
pause
このバッチファイルに引数となるファイルをドラッグ&ドロップしたら
「指定されたデバイス、パス、またはファイルにアクセスできません。
アクセス許可がない可能性があります。」
と言われます。ちなみに12個まではOKでした。
0799デフォルトの名無しさん
2010/04/06(火) 23:18:13D&Dした複数ファイルのフルパス文字列の長さが限界に達したのでは?
その12ファイルをもっと浅い(フルパスの短い)階層に移動させれば、
13ファイル以上もいけるかと。
Win9x系かNT系かでも変わってくると思う。
0800799
2010/04/06(火) 23:21:16http://support.microsoft.com/kb/830473/ja
0801デフォルトの名無しさん
2010/04/06(火) 23:25:24たぶん、ファイルの長さだと思います。
ありがとうございました。
0802デフォルトの名無しさん
2010/04/06(火) 23:34:51結局どうでもよかったのか
0803792
2010/04/06(火) 23:55:34find /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 ""」は入力ファイルの全行に行番号出力になってないかも。
0804デフォルトの名無しさん
2010/04/08(木) 23:02:04>たぶん、ファイルの長さだと思います。
ファイルサイズは関係ないだろ
0805デフォルトの名無しさん
2010/04/08(木) 23:09:06set /p x=
call echo %%x%% >1.txt
set /p x=
call echo %%x%% >2.txt
set /p x=
call echo %%x%% >3.txt
)
0806spectre
2010/04/11(日) 18:40:33どなたかよろしくお願いします。
0807デフォルトの名無しさん
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
0808デフォルトの名無しさん
2010/04/11(日) 19:53:59動いたときアクティブなウィンドウは?
0809デフォルトの名無しさん
2010/04/11(日) 20:05:00適当なフリーソフト使え
0810デフォルトの名無しさん
2010/04/12(月) 19:17:26バッチファイルでまとめてしまおうと思ったのですが
cd "ディレクトリ1"
httpd.exe
cd "ディレクトリ2"
C:\php\php.exe batchtest.php
このようなバッチファイルを作ったところ
httpd.exeを起動したところで止まってしまい、httpd.exeを終了させないと
次の行に行きませんでした。
どのようにすればすべての処理が行われるでしょうか?
0811デフォルトの名無しさん
2010/04/12(月) 19:36:02httpd.exe
taskkill /im httpd.exe
cd "ディレクトリ2"
C:\php\php.exe batchtest.php
0812デフォルトの名無しさん
2010/04/12(月) 20:56:350813デフォルトの名無しさん
2010/04/13(火) 07:38:21ヒネリがないので笑えん。
0814デフォルトの名無しさん
2010/04/13(火) 12:59:02素直な奴だな。
httpd.exeを終了させないとtaskkillが実行されないという二段オチなのに。
0815デフォルトの名無しさん
2010/04/13(火) 14:49:58書き方に何か問題があるのでしょうか?
http://ideone.com/OvSYW
0816デフォルトの名無しさん
2010/04/13(火) 15:10:11環境変数に適切な値が入っているならちゃんと動くように見える
echoの表示やエラーメッセージはどうなってんの?
エスパー初級な解答
if "%xxx%" geq "%yyy%"のように""で括れば
環境変数が空の場合でも落ちる事はなくなるはず
0817815
2010/04/13(火) 15:25:07if "%MP_MAX%" geq "%MP_NUM%" (
に変更しても落ちました。
直前の出力は
if 1 geq 1 (
なので、両方に1が入っていることは確認済みなのですが・・・。
エラーは 「コマンドの構文が誤っています。」 です。
0818デフォルトの名無しさん
2010/04/13(火) 18:43:38echo W 100 2 0 200 | debug
0819デフォルトの名無しさん
2010/04/13(火) 18:47:20()のなかの命令が不適切なのでは?
0820デフォルトの名無しさん
2010/04/13(火) 19:54:16GOTO 文などに置き換えれば動くはず
0822デフォルトの名無しさん
2010/04/13(火) 20:43:320823デフォルトの名無しさん
2010/04/13(火) 22:48:220824デフォルトの名無しさん
2010/04/14(水) 02:26:100825デフォルトの名無しさん
2010/04/14(水) 17:07:200826デフォルトの名無しさん
2010/04/14(水) 17:14:100827デフォルトの名無しさん
2010/04/16(金) 09:14:28こういうこと?
for /? より
%~tI - %I ファイルの日付/時刻に展開します。
0828デフォルトの名無しさん
2010/04/16(金) 14:10:170829デフォルトの名無しさん
2010/04/16(金) 18:25:03827じゃないが、ファイルの日付が何になるかって、
環境変数で変更できなかったっけ?
まぁ、できなくても、作成日時だったら、
他の手段で、何とでもなるから困らないけどね
0830デフォルトの名無しさん
2010/04/16(金) 20:08:200831デフォルトの名無しさん
2010/04/17(土) 06:44:59だから、それは一目見て分かることで何の面白味もないの。
0832デフォルトの名無しさん
2010/04/17(土) 07:35:16httpdが無いと動かないようなphpなら
netstatとか使って、httpdが起動完了したことを検知しないと駄目な気がする
まぁ、batchtest.php内で成功するまで待つって手もあるけど…
あと、最後にhttpdを止める必要はないの?
動かしっぱなしなら、httpdをバッチで起動する意味はないと思うけど?
0833デフォルトの名無しさん
2010/04/20(火) 18:16:020834デフォルトの名無しさん
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でリネーム
0835デフォルトの名無しさん
2010/04/23(金) 23:48:57que指定時の2の処理が不明だったり
格納ファイルのフォーマット(ファイル名の規則)をどう定義するか
カウンタの初期値をどこから設定するかなど細部が気になる
0836デフォルトの名無しさん
2010/04/24(土) 00:35:27携帯から書いたら改行多すぎと言われて、消しすぎたぜ…
■大体決めたこと
1.格納先のファイル名は入力ファイル名+連番。
1〜が数えやすそうかな。
2.返却値はキューの残数。
取出失敗時はマイナス
■迷ってること
1.格納先DIRパスとファイルの種類は1対1で対応させるかどうか?
2.キュー残数チェック用のオプションを実装するか?
3.もっと汎用的な設計がないか?
(サンプル的なやつ)
4.バッチ暦10日だけどそもそも言語仕様的に無理とかないよね?
できそうと聞いて安心したよ。
迷4以外はただの設計とアルゴリズムだし。
技術的に困ったらまたお願いします。
0837834
2010/04/26(月) 07:58:31ロック機能を実装してみた。
処理前にロック用ファイルがないかチェックして、なかったら作成。
あったら待ち。
処理終了後にロック用ファイル削除
複数起動時も一応ちゃんと動いたんだけど、もっと良い実装ないかな?
0838デフォルトの名無しさん
2010/04/26(月) 15:52:210839デフォルトの名無しさん
2010/04/28(水) 10:51:16というコードを書くとき、%1がc:\fooでもc:\foo\でも動くようにするのって
どういうコード書けばいいですか?
0840デフォルトの名無しさん
2010/04/28(水) 11:14:55自分以外で一番dir順の若いバッチファイル検索→
startで実行→自分自身を削除してexit
ってやってる。
実行順はファイル名で操作。
稚拙だろうけどね。
0841デフォルトの名無しさん
2010/04/28(水) 11:26:50copy aaa.txt "c:\foo\bbb.txt"
copy aaa.txt "c:\foo\\bbb.txt"
どっちも同じ動作しなかったっけ?
set hoge=%~1
if "%hoge:~-1%"=="\" set hoge=%hoge:~0,-1%
みたいにする?
0842デフォルトの名無しさん
2010/04/28(水) 12:30:510843デフォルトの名無しさん
2010/04/28(水) 12:56:55ヘルプ見れで済んだら掲示板いらない
0844デフォルトの名無しさん
2010/04/29(木) 00:06:490845デフォルトの名無しさん
2010/05/02(日) 10:56:25exit /b
:main
...
とかやっとくとエラーでてもウィンドウが閉じずに残ってくれていいね
0846tein
2010/05/02(日) 13:48:31テキストファイル内の特定文字列を置換したいと思っています。
一度EOFまでのすべての行を行ごとに配列に挿入し、
そのすべての配列に対して指定文字列の検索、
ヒットした変数が存在した場合その変数に対して
変数内文字列置換を行った後、
すべての変数をECHOで新規ファイルに書き出していけば
ファイル内の文字列置換に成功すると思うのですが、
その記述方法がわかりません。
よろしくお願いいたします。
0847デフォルトの名無しさん
2010/05/02(日) 14:10:560848デフォルトの名無しさん
2010/05/02(日) 14:29:370849デフォルトの名無しさん
2010/05/02(日) 14:52:400850デフォルトの名無しさん
2010/05/02(日) 15:11:240851デフォルトの名無しさん
2010/05/02(日) 15:20:40すべてをメモリ上にっていうのは、DOSのメモリが小さいことを考えると作るだけ無駄。
環境変数を使った置換はできるけど、環境変数のメモリは特別小さいし制限もある。
元のファイルが壊れるだけだからエディタに読み込んで置換して保存っていうのをやる方がマシ。
複数行のテキストをコマンドに読み込ませて処理させることは出来るけど、
文字列置換はfindかなんかの専用コマンドでやった方がいいだろ。
ただ、指定した文字列が見つからない場合にそのまま出力してくれるかが問題。
詳しいことは分からないが、普通はコマンド一発でやるか、for ループで処理する。
0852デフォルトの名無しさん
2010/05/02(日) 15:39:53set file=line1!LF!line2
みたいにLF文字で区切ればいいよ
for /f %%i in (!file!)で行単位に取り出せる
0853デフォルトの名無しさん
2010/05/02(日) 15:53:25findやfindstrで文字列置換するって凄いな
0854デフォルトの名無しさん
2010/05/02(日) 17:28:520855tein
2010/05/02(日) 17:43:54ですが、
bat処理中に自動で読み込み置換できればいいのです。
0856デフォルトの名無しさん
2010/05/02(日) 18:00:49そうだとしてもそうでなくとも何かしら使いたい話だね。
0857デフォルトの名無しさん
2010/05/02(日) 18:38:560858デフォルトの名無しさん
2010/05/02(日) 18:49:510859デフォルトの名無しさん
2010/05/02(日) 18:57:560860デフォルトの名無しさん
2010/05/02(日) 19:27:210861tein
2010/05/02(日) 20:19:090862デフォルトの名無しさん
2010/05/02(日) 21:06:36勘違いした
0863デフォルトの名無しさん
2010/05/02(日) 21:07:460864デフォルトの名無しさん
2010/05/02(日) 22:29:54あなたの発言は、どれ?
0865デフォルトの名無しさん
2010/05/02(日) 22:36:33powershellが簡単だよ
Windows PowerShell を使用してテキスト ファイルの文字を置き換える方法はありますか
0866Hage
2010/05/02(日) 23:31:57ちなみに、CMDリファレンス
http://otnx.jp/CMD/
0867デフォルトの名無しさん
2010/05/03(月) 00:28:240868デフォルトの名無しさん
2010/05/03(月) 00:55:27中身は殆どWSHだけど。file1のabcをすべてxyzに置換してfile2に書き出すなら
rep.cmd "/abc/xyz/g" file1 > file2
とする。
@if (0==1) rem *** rep.cmd ***
@cscript.exe //noLogo /e:jscript %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
@goto :eof @end
var args = WScript.Arguments;
if (args.length < 2) Usage();
var sep = args(0).slice(0, 1);
String.prototype.Unesc = function() { return this.replace(/\x00/g, sep); };
var a = args(0).replace(new RegExp("\\\\" + sep, "g"), "\0").split(sep);
if (a.length != 4 || a[1] == "") Usage();
try { var re = new RegExp(a[1].Unesc(), a[3].toLowerCase()); }
catch (e) { Usage() };
var rep = eval('"' + a[2].Unesc().replace(/"/g, '\\"') + '"');
var Fso = new ActiveXObject("Scripting.FileSystemObject");
for (var i = 1; i < args.length; i++) {
try { var f = Fso.OpenTextFile(args(i)); }
catch (e) { WScript.StdErr.WriteLine(args(i) + ": can't open"); continue; }
while (!f.AtEndOfStream)
WScript.StdOut.WriteLine(f.ReadLine().replace(re, rep));
f.Close();
}
function Usage() {
WScript.StdErr.WriteLine("Usage: rep.cmd /pattern/replacement/[gi] file...");
WScript.Quit(1);
}
0869デフォルトの名無しさん
2010/05/03(月) 01:05:441行目と2行目の間に
@setlocal enableextensions
を入れたほうがより良いでしょう。
@cscript.exe を @"%SystemRoot%\system32\cscript.exe"
にするともっと良いか。
0870デフォルトの名無しさん
2010/05/03(月) 01:19:34powershellのほうがはるかに簡単だろ
0871デフォルトの名無しさん
2010/05/03(月) 01:57:06@if (0==1) rem *** Usage: replace.cmd pattern replacement file ***
@cscript.exe //noLogo /e:jscript "%~f0" %1 %2 %3
@goto :eof @end
var args = WScript.Arguments;
var pat = new RegExp(args(0), "g"), rep = args(1);
with (new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(args(2))) {
while (!AtEndOfStream)
WScript.Echo(ReadLine().replace(pat, rep));
Close();
}
0872デフォルトの名無しさん
2010/05/03(月) 03:53:08と張り合うのか?
0873デフォルトの名無しさん
2010/05/03(月) 04:57:430874デフォルトの名無しさん
2010/05/03(月) 09:31:04実質WSHのバッチファイルが許されるならpowershellも許されるのでは?
rep.cmd "abc" "xyz" file1 > file2
@echo off
PowerShell -Command "& {$a,$b,$file=$args; Get-Content $file | ForEach-Object {$_ -replace $a, $b}}" %1 %2 %3
0875デフォルトの名無しさん
2010/05/03(月) 09:33:260876デフォルトの名無しさん
2010/05/03(月) 09:48:14や、入ってるのは2008以降(2008, 7, 2008R2)だよ
まあ最近だとWindowsUpdateとかFixItで入ったりするけど
0877デフォルトの名無しさん
2010/05/03(月) 16:04:24やり方がよくわからん
0878デフォルトの名無しさん
2010/05/03(月) 16:09:31明らかに逆
0879デフォルトの名無しさん
2010/05/03(月) 16:11:25PowerShell -file mycmd.ps1 引数。。。
0880tein
2010/05/03(月) 17:46:37質問です。
これは、
abcを"~%0"あいう;「」@![0-5]{25}\nBなどという値に変更したとしても
問題ないでしょうか
0881デフォルトの名無しさん
2010/05/03(月) 18:43:370882デフォルトの名無しさん
2010/05/04(火) 22:47:160883デフォルトの名無しさん
2010/05/04(火) 23:29:23それが正規表現か単なる文字列なのかにもよるが…
rep.cmd "/\x32~%0\x32あいう;「」@![0-5]{25}\nB/xyz/g" file.txt
rep.cmd "/\x32~%0\x32あいう;「」@!\[0-5\]\{25\}\\nB/xyz/g" file.txt
0884デフォルトの名無しさん
2010/05/05(水) 00:23:130885デフォルトの名無しさん
2010/05/05(水) 14:02:30ファイル上書きできねーよ
0886デフォルトの名無しさん
2010/05/05(水) 14:07:260887デフォルトの名無しさん
2010/05/05(水) 16:25:14for /f "usebackq delims==" %%i in (`tasklist /fi "imagename eq notepad.exe"`) do goto found
echo not found!
exit/b
:found
echo found!
0888デフォルトの名無しさん
2010/05/05(水) 19:05:470889デフォルトの名無しさん
2010/05/09(日) 21:04:02コレを参考にバッチファイルで001〜500位の飛び飛びのjpgファイルを
昇順や降順でソート、001から002、003.jpgと順ににリネームするバッチファイルを作りたいのですが連番でリネームする部分をどう記述すれば良いのかさっぱりです。
だれか教えて偉い人
0890デフォルトの名無しさん
2010/05/09(日) 21:16:19こんなところで聞くなよ。
0891デフォルトの名無しさん
2010/05/09(日) 21:26:240892デフォルトの名無しさん
2010/05/09(日) 22:59:35for /f "delims=" %i in ('dir /b /on *.jpg') do (
set /a n+=1
call ren "%~i" %%n:~1%%.jpg
)
0893デフォルトの名無しさん
2010/05/09(日) 23:03:420894889
2010/05/10(月) 00:02:27echo rem ファイル名を降順ソートしてリネームします>temp.bat
set n=1
set SWAPFILENAME=
for /f "tokens=1,2* delims=." %%i in ( dir.txt ) do (
set SWAPFILENAME=%%i
goto label
)
:label
for /f %%i in ( dir.txt ) do (
set /a n=n+1
SETで(n)の頭に0000を足した物をnumとかに設定する
numの後ろから4桁を取り出してnumに入れなおす
echo ren %%i (numに入ってる連番).tmp>>temp.bat
)
で、出来たTemp.batを実行後、*.tmpを*.jpgにリネームしなおす見たいな感じにしたいと思ってますが上手いこと行きませんです。
つーかnを+1ずつ加算する所からして上手く行ってないんですよコレが。
向いてないのは重々承知してますがこうすれば良いんだよって教えて偉い人
0895デフォルトの名無しさん
2010/05/10(月) 00:41:29set n=10000
for /f "usebackq delims=" %%i in (`dir /b/o-n *.jpg`) do (
0896デフォルトの名無しさん
2010/05/10(月) 00:52:30set n=10000
for /f "usebackq delims=" %%i in (`dir /b/o-n *.jpg`) do (
set /a n+=1
ren "%%~i" "!n:~-4!.jpg"
)
:途中で書き込んでしまった。
:リネーム先と同じ名前のファイルが無いの前提だが。
0897デフォルトの名無しさん
2010/05/10(月) 01:00:502: n=10000
3: dir /on ソート名前昇順 /o-n ソート名前逆順
4: nに1加算
5: 10001,10002,,,,100** の下4文字だけにすれば 0001,0002,,,,00**になる
終
0898デフォルトの名無しさん
2010/05/10(月) 01:08:460899889
2010/05/10(月) 02:30:18バッチファイルなんて17年ぶりだったんで右往左往してたのですが助かりました。
コレを期に本でも買って勉強してきます。
0900デフォルトの名無しさん
2010/05/10(月) 06:39:290901デフォルトの名無しさん
2010/05/10(月) 18:30:240902デフォルトの名無しさん
2010/05/11(火) 21:45:23%a%が、yでもnでもない場合にgoto aしたいんだけど、
@if not "%a%"=="y,n" goto a
って書いたら駄目だった。
問題は"y,n"の部分だと思うんだけどなんて書いたらいいんでしょう?
0903デフォルトの名無しさん
2010/05/11(火) 21:51:25:a
@if %a%==y goto y
@if %a%==n (goto n) else goto a
ってやったら動いたんだけどこんな感じで不具合出たりしないんでしょうか?
(yかnで訊いて、yかn以外が返ってきたら:aに戻りたい)
0904デフォルトの名無しさん
2010/05/11(火) 22:16:170905デフォルトの名無しさん
2010/05/11(火) 22:21:520906デフォルトの名無しさん
2010/05/11(火) 22:29:41不具合でてまずいような用途に使うやつはいない
0907デフォルトの名無しさん
2010/05/11(火) 23:31:390908デフォルトの名無しさん
2010/05/12(水) 01:25:59空
Y
>
のケースをテスト
0909デフォルトの名無しさん
2010/05/12(水) 01:39:080910デフォルトの名無しさん
2010/05/12(水) 08:09:300911デフォルトの名無しさん
2010/05/12(水) 08:12:040912デフォルトの名無しさん
2010/05/12(水) 10:32:27小物ツール作ってバッチから呼ぶしかない
0913デフォルトの名無しさん
2010/05/12(水) 14:16:200914デフォルトの名無しさん
2010/05/12(水) 18:23:58cscriptならだいじょうぶ
0915902
2010/05/12(水) 21:49:48>>905が一番理想に近いのでこれに決めました。
(昔のwindowsにはchoiceなんてコマンドがあったことなんて知らなかったw)
0916デフォルトの名無しさん
2010/05/21(金) 23:52:57>win32api呼んでキーの押下状態調べてループから抜ける
???
0917デフォルトの名無しさん
2010/05/29(土) 18:58:48バッチファイルの1行に「echo %DATE% %TIME%」と記述した場合に%DATE%と
%TIME%は必ず全く同じ日時を表示するでしょうか?
%DATE%で一度システム時刻を取得し%TIME%でももう一度システム時刻を
取得しているのか、一度システム時刻を取得した後に%DATE%と%TIME%
にはその取得した時刻を展開しているのでしょうか?
0918デフォルトの名無しさん
2010/05/29(土) 19:15:57date
time
date
time
の順に取ってdateが同じなら前二個を、食い違ってたら後ろ二個を使えばいいんじゃね。とりあえずは
0919デフォルトの名無しさん
2010/05/29(土) 19:20:180920デフォルトの名無しさん
2010/05/29(土) 19:31:15set d=%date%
set t=%time%
if not "%date%"=="%d%" (
set d=%date%
set t=%time%
)
とやれば大丈夫
0921デフォルトの名無しさん
2010/05/29(土) 19:37:52for %%i in (tmp) do set dt=%%~ti
echo %dt%
なら気にせんでえーよ
0922デフォルトの名無しさん
2010/05/29(土) 21:03:21本人は必死なんだろうけど見てると滑稽
0923917
2010/05/30(日) 01:45:22できるだけシンプルなやり方で>>920さんのやり方を使おうと思います。
REM バッチ起動日時の取得(現在日時)
SET STARTDATE=%date%
SET STARTTIME=%time%
IF NOT "%date%"=="%STARTDATE%" (
SET STARTDATE=%date%
SET STARTTIME=%time%
)
SET STARTTIME=%STARTTIME: =0%
0924デフォルトの名無しさん
2010/05/30(日) 15:51:480925デフォルトの名無しさん
2010/06/03(木) 00:09:52-----
123
abcd
あいうえお
aaaa
-----
上から1行ずつ変数に格納したいのですが、どうすればいいでしょうか。
尚、テキストファイルの行数は、一定とは限らない場合で書き方を教えてください。
0926デフォルトの名無しさん
2010/06/03(木) 06:18:490927デフォルトの名無しさん
2010/06/03(木) 06:38:07書式を書いて頂けないでしょうか。
0928デフォルトの名無しさん
2010/06/03(木) 09:13:41help for
に参考例が書いてあるよ
0929デフォルトの名無しさん
2010/06/03(木) 23:08:41添字って使えるんでしょうか
0930デフォルトの名無しさん
2010/06/04(金) 00:04:36>添え字は、文字の右上、左上、右下、左下のいずれかに書かれる文字のことである。
>上付き文字や下付き文字も添え字のひとつであるほか、漢文の送り仮名も添え字である。
>縦書きで表記する場合には、冪乗を表す場合を除き上付き文字や下付き文字という言葉は使用されない。
ん〜〜 使えないかな〜?
0931デフォルトの名無しさん
2010/06/04(金) 00:18:48http://d.hatena.ne.jp/jak-san/20090308/1236501217
0932デフォルトの名無しさん
2010/06/04(金) 11:00:03vbs呼び出してがんばったけど難しすぎた・・
0933デフォルトの名無しさん
2010/06/04(金) 11:50:190934デフォルトの名無しさん
2010/06/07(月) 00:04:490935デフォルトの名無しさん
2010/06/08(火) 11:34:22みたいにワイルドカードを使う場合は隠しファイルが除外されちゃうんだけど
ワイルドカードに隠しファイルを含める方法は無い?
for /f "delims=" %%I in ('dir "%~1" /b/s/a:-d') do @echo %%~I
こんな感じにdirコマンドを使うしかない?
0936デフォルトの名無しさん
2010/06/08(火) 13:41:54ファイルドロップや送るを再現することはできますか?
start "" "ファイル"
rundll32.exe url.dll,FileProtocolHandler ファイル
これらは関連付けされているアプリでファイルを開くことしかできず
start "" "アプリ" "ファイル"
だとドラッグ&ドロップとは挙動が違うのです
0937デフォルトの名無しさん
2010/06/08(火) 14:03:48無いだろうね。
同じ動作をしようと思ったらfor /fを入れ子に…出来ないから
サブルーチン作ることになるんじゃないかと。
0938デフォルトの名無しさん
2010/06/09(水) 00:38:11HDDドライブ内の複数のフォルダに、
重複しないファイル名のファイルがたくさんあります。
これを同一階層に纏めたいのですが、よさげなコマンドを見つけられませんでした。
希望としては
C:\>file /path D:\hoge[Enter]
D:\hoge\aaa.txt
D:\hoge\masao\bbb.txt
D:\hoge\masao\ccc.txt
D:\hoge\masao\shigemi\111.txt
(以下、ファイルの一覧が完全パス付で出力される)
というようなリストが出れば最高です。
Linux側で対象のドライブをSMBマウントして、findコマンドと組み合わせたりしてみましたけど、
Win機がわが途中でフリーズしてしまったりで、うまくいきませんでした。
ほかの方法もあるよ!ってことでもけっこうでございます。
お知恵をおかしください。
0939デフォルトの名無しさん
2010/06/09(水) 00:46:53cygwin入れてfindじゃいかんの?
0940デフォルトの名無しさん
2010/06/09(水) 01:30:400941デフォルトの名無しさん
2010/06/09(水) 03:08:400942デフォルトの名無しさん
2010/06/09(水) 08:35:160943デフォルトの名無しさん
2010/06/09(水) 09:30:06俺も自分で作ったしw
0944デフォルトの名無しさん
2010/06/09(水) 14:03:23>同じ動作をしようと思ったらfor /fを入れ子に…出来ないから
>サブルーチン作ることになるんじゃないかと。
はぁ〜?
0945デフォルトの名無しさん
2010/06/09(水) 14:12:12DropTarget
0946デフォルトの名無しさん
2010/06/09(水) 16:13:33レベル高くてついていけないわ
0947デフォルトの名無しさん
2010/06/11(金) 12:35:330948デフォルトの名無しさん
2010/06/11(金) 13:03:400949デフォルトの名無しさん
2010/06/11(金) 21:09:31XPでstartコマンドで優先度を指定してプログラム起動をしたいんだけど、上手くいかないです。
アイデアあったら教えてください。
cmd.exeを起動。タスクマネージャーやprocexpで優先度を確認。
C:\Documents and Settings\user>start /high calc.exe
上手く行く。
C:\Documents and Settings\user>start /high C:\WINNT\system32\calc.exe
上手く行く。
C:\Documents and Settings\user>start /high E:\Progra~1\mpc\mplayerc.exe
これは起動するけど、優先度が「通常」のまま。プログラムはこれ。
http://ja.wikipedia.org/wiki/Media_Player_Classic
なぜ、優先度が設定できないのか、良く分かりません。
vbsでやる方法はありますか?
0950デフォルトの名無しさん
2010/06/11(金) 21:21:220951デフォルトの名無しさん
2010/06/11(金) 21:31:20プログラムの側で優先度を設定できる。
0952デフォルトの名無しさん
2010/06/11(金) 23:21:09>>951
プログラムには詳しくないのですが、
起動後に「高」に変更は出来ます。
MPC自体が、起動時に優先度を「通常」にする
ということでしょうか?
0953デフォルトの名無しさん
2010/06/11(金) 23:27:37ソースは見てないけど、多分、内部で「通常」にしてるのかと思います。
ありがとうございました。
0954デフォルトの名無しさん
2010/06/13(日) 01:21:19Find の返り値をIF 文で使いたいんだけど
こういう時ってのはイチイチ
echo %str% | find /i /c %ptrn% > %temp%
set /p len=<%temp%
こんな回りくどいことしないと使えないのかな?
0955デフォルトの名無しさん
2010/06/13(日) 01:25:460956デフォルトの名無しさん
2010/06/13(日) 01:52:46for /f %%i in ('"echo %str% | find /i /c %ptrn%"') do set len=%%i
0957デフォルトの名無しさん
2010/06/13(日) 02:15:46�d�d
スッキリしたなの
0958デフォルトの名無しさん
2010/06/13(日) 14:12:46ps -ef|grep `basename $0`で、シェルの多重起動制御ができますが、
Windowsバッチで同様のことを
tasklist|findstr "%~n0"
でできるかと思ったのですが、tasklistコマンドはコマンドライン引数を表示しないため、
バッチファイル実行中もcmd.exeが表示されるのみです。
tasklistコマンド以外を使用する等で、何か解決策はないでしょうか?
0959958
2010/06/13(日) 14:16:070960デフォルトの名無しさん
2010/06/13(日) 14:59:27プログラム板は基本的に自分で作る方向
0961デフォルトの名無しさん
2010/06/13(日) 15:43:11bfindwin でググってごらん
0962デフォルトの名無しさん
2010/06/13(日) 17:10:330963デフォルトの名無しさん
2010/06/13(日) 17:15:570964デフォルトの名無しさん
2010/06/13(日) 19:01:27set n=0
for /f %%a in (a.txt) do (
set /a n+=1
call set x%%n%%=%%a
)
for /l %%k in (1,1,%n%) do call echo %%x%%k%%
0965958
2010/06/13(日) 20:23:16wmic process get CommandLine,ProcessId|findstr /i /c:"%~nx0"
でバッチリ、コマンドライン引数を取得できました。どうもありがとうございます。
さらに質問なのですが、多重起動制御にあたり、自分自身のプロセスIDの行は除去しようと思うのですが、
UNIXの"$$"のようなプロセスIDの取得方法はWindowsバッチでないでしょうか?
0966デフォルトの名無しさん
2010/06/13(日) 20:41:52まずはmanに相当するもので調べてみようとは思わなかったのだろうか?
0967デフォルトの名無しさん
2010/06/13(日) 20:50:230968デフォルトの名無しさん
2010/06/13(日) 22:31:510969デフォルトの名無しさん
2010/06/13(日) 22:39:41恥かいちゃったねw
0970デフォルトの名無しさん
2010/06/13(日) 22:48:520971デフォルトの名無しさん
2010/06/13(日) 22:55:48wmi setpriority
0972デフォルトの名無しさん
2010/06/13(日) 22:57:48UNIXの"$?"のようなものはWindowsバッチでないでしょうか?
0973デフォルトの名無しさん
2010/06/13(日) 23:00:320974デフォルトの名無しさん
2010/06/13(日) 23:04:520975デフォルトの名無しさん
2010/06/13(日) 23:10:460976デフォルトの名無しさん
2010/06/13(日) 23:14:140977958
2010/06/13(日) 23:15:00%errorlevel%です。大文字小文字の区別はないようです。
>>968
レスありがとうございます。
ですが、parentprocessidはUNIXでいうPPIDにあたるようで、
実行中のバッチファイル自身のプロセスIDではないようです。
0978デフォルトの名無しさん
2010/06/13(日) 23:17:110979デフォルトの名無しさん
2010/06/13(日) 23:17:18WMI が動作していません。どのようにトラブルシューティングすればよいですか。
スクリプトの実行時、CIM Studio などの WMI ベースのツールの実行時、
または WMI コントロールの使用時には、WMI サービスに関する問題が発生することがあります。
スクリプトが実行されなかったり、"アクセスは拒否されました"
というエラー メッセージが表示されたりすることがあります。
このエラーの原因としては、WMI が動作していないか、
名前空間が正しく構成されていないかのどちらかが考えられます。
また、クラスを提供している WMI プロバイダがロードされていない場合や、
WMI リポジトリ (クラス定義の格納場所) が壊れた場合にも、エラーが発生することがあります。
WMI サービスに関する問題をトラブルシューティングするには、次の作業を行います。
リモート コンピュータへの接続に関して問題が生じている場合は、
ローカル コンピュータ上でスクリプトを実行してみてください。
WMI サービスを再起動します。
WMI リポジトリを再構築します。
すべての WMI コンポーネントを再登録します。
オペレーティング システムを再インストールします。
マイクロソフト製品サポート サービスに問い合わせます。
0980デフォルトの名無しさん
2010/06/13(日) 23:19:40ローカル コンピュータ上でスクリプトを実行してみる
リモート コンピュータへの接続に関して問題が生じている場合は、
他の操作を行う前にローカル コンピュータ上でスクリプトを実行してみてください。
ローカル コンピュータ上でスクリプトを実行できるのであれば、
「WMI でリモート コンピュータを管理するにはどうすればよいですか」のトピックを参照してください。
ローカル コンピュータでスクリプトを実行できない場合は、次のトラブルシューティング手順を実行してください。
ローカル コンピュータ上での WMI 操作が失敗し、予期せぬエラー コードが返される場合や、
WMI コントロールを起動できない場合は、ローカル WMI サービスが稼動しているかどうかを確認します。
スクリプトを実行できるのであれば、WMI サービスは稼動しており、
WMI サービス自体に問題はないと考えることができます。
0981デフォルトの名無しさん
2010/06/13(日) 23:30:48操作可能なプログラムまたはバッチ ファイルとして認識されていません。
0982958
2010/06/13(日) 23:39:110983デフォルトの名無しさん
2010/06/13(日) 23:52:460984デフォルトの名無しさん
2010/06/14(月) 03:56:53UNIXのsplitのようなものはWindowsバッチにありますか?
0985デフォルトの名無しさん
2010/06/14(月) 07:14:17「Windowsバッチ」って何だよ?
0986デフォルトの名無しさん
2010/06/14(月) 08:19:070987デフォルトの名無しさん
2010/06/14(月) 08:31:530988デフォルトの名無しさん
2010/06/14(月) 08:38:32◎ タコデス
0989デフォルトの名無しさん
2010/06/14(月) 08:43:59◎ 酢タコデス
/ | | | \
0990デフォルトの名無しさん
2010/06/14(月) 08:52:340991デフォルトの名無しさん
2010/06/14(月) 10:01:51゜ロ゜ < イカデス
川
0992デフォルトの名無しさん
2010/06/14(月) 10:14:280993デフォルトの名無しさん
2010/06/14(月) 10:18:01^.^ < スルメデス
川
0994デフォルトの名無しさん
2010/06/14(月) 10:55:520995デフォルトの名無しさん
2010/06/14(月) 11:39:55>su -r -u -m -e
0996デフォルトの名無しさん
2010/06/14(月) 11:44:05操作可能なプログラムまたはバッチ ファイルとして認識されていません。
0997デフォルトの名無しさん
2010/06/14(月) 11:50:36>su -m -a -t -a
0998デフォルトの名無しさん
2010/06/14(月) 11:55:170999デフォルトの名無しさん
2010/06/14(月) 11:58:321000デフォルトの名無しさん
2010/06/14(月) 12:03:1910011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。