【.cmd】 バッチファイルスクリプト %1 【.bat】
at TECH
[前50を表示]
400:399
07/06/08 13:44:01
要は実用的なことは度外視してコマンドプロンプト上でスクリプティングを楽しみたいなぁと。
Windows上でそれが出来る、一番お手軽で何もインストールする必要の無いのがバッチかなと。
WSHはJScriptを暫くやってましたが、バッチはバッチで言語としてそそられるんです…
401:デフォルトの名無しさん
07/06/08 14:11:00
>>399
このスレには、以前あった「バッチファイルプログラミング」というスレの時代から
頭のおかしい人が常駐しているのでかまわないほうがいいですよ。
402:デフォルトの名無しさん
07/06/08 14:16:03
役に立つ情報のひとつも提供できないやつは黙ってろよ
403:デフォルトの名無しさん
07/06/08 14:21:53
病人も何の役にもたってませんよね
404:デフォルトの名無しさん
07/06/08 14:30:58
無能なやつが立てたスレでも良スレになることもあるけど
ここは人いなくてだめだな
405:デフォルトの名無しさん
07/06/08 17:40:05
set a=1
for %%i in (0 1 2) do (
set a=2
echo %a%
)
で実行結果が
1
1
1
になるのは何でだぜ・・・
環境はXPSP2
406:デフォルトの名無しさん
07/06/08 18:04:46
>405
set a=2 自体は行われているものの
for に括弧内の文が渡された時点で
%a% が 1 に展開されているため。
ここは遅延展開を使って
setlocal enabledelayedexpansion
set a=1
for %%i in (0 1 2) do (
set a=2
echo !a!
)
とすればおk
407:デフォルトの名無しさん
07/06/08 18:43:59
またそんなレベルの話か
ここプログラム板ですよ
408:デフォルトの名無しさん
07/06/08 21:49:14
>>407
お前の頭のレベルを見せてもらおうか
409:デフォルトの名無しさん
07/06/08 23:27:42
>>408
うっせーカス
410:デフォルトの名無しさん
07/06/09 00:03:40
頭が不自由だから暴言しか吐けないのですね
411:デフォルトの名無しさん
07/06/11 19:20:14
412:デフォルトの名無しさん
07/06/14 01:27:48
教えて下さい。
コマンドプロンプト初心者です。
下記のとおりのバッチファイルを作って、うごかしているんですが、
最後のところで、MOVEコマンドがうまく機能してくれません。。
記述の仕方が悪いのでしょうか?
set bkdate=%date:/=%
md "C:\Documents and Settings\Owner\デスクトップ\%bkdate%-pdf%"
md "C:\Documents and Settings\Owner\デスクトップ\%bkdate%-log%"
md "C:\Documents and Settings\Owner\デスクトップ\%bkdate%-etc%"
move "C:\Documents and Settings\Owner\デスクトップ\*.pdf" "C:\Documents and Settings\Owner\デスクトップ\%bkdate%-pdf%"
move "C:\Documents and Settings\Owner\デスクトップ\*.log" "C:\Documents and Settings\Owner\デスクトップ\%bkdate%-log%"
move "C:\Documents and Settings\Owner\デスクトップ\*.*" "C:\Documents and Settings\Owner\デスクトップ\%bkdate%-etc%"
md "C:\Documents and Settings\Owner\デスクトップ\%bkdate%"
move "C:\Documents and Settings\Owner\デスクトップ\%bkdate%-pdf%" "C:\Documents and Settings\Owner\デスクトップ\%bkdate%"
最終行にて、日付のフォルダに日付-pdfというフォルダごと移動させたいのですが、
どうもmoveコマンドの記述がうまくいかずに、"C:\Documents and Settings\Owner\デスクトップ\%bkdate%-pdf%C:\Documents and Settings\Owner\デスクトップ\%bkdate%"
というパスとして読まれてしまいます。。
413:デフォルトの名無しさん
07/06/14 01:59:35
>>412
%bkdate%-pdf% → %bkdate%-pdf
%bkdate%-log% → %bkdate%-log
%bkdate%-etc% → %bkdate%-etc
414:デフォルトの名無しさん
07/06/14 18:33:20
ちょっと気になったので質問。
@echo off
echo %abcdef:ghijk
set aaa=
set aaa=%date:/=%
echo %aaa%
echo %aaa:
echo %bbb:aa
実行結果
ghijk
20070614
aaa:
aa
415:デフォルトの名無しさん
07/06/14 18:34:28
@echo off
echo %abcdef:ghijk
set aaa=
rem set aaa=%date:/=%
echo %aaa%
echo %aaa:
echo %bbb:aa
実行結果
ghijk
ECHO は <OFF> です。
ECHO は <OFF> です。
aa
416:デフォルトの名無しさん
07/06/14 18:37:02
>>414と>>415がなぜこういう結果になるのか、教えて下さい。
417:デフォルトの名無しさん
07/06/14 19:39:37
>416
板違い
そういうのはプログラミングとは言わない
418:デフォルトの名無しさん
07/06/14 19:57:45
単独で書いた%alpha:が無視されてるんだろ
文法的におかしいだけ
419:デフォルトの名無しさん
07/06/14 21:09:36
>415
ゴミを晒すな
420:デフォルトの名無しさん
07/06/14 21:16:06
>>417-419
いや、聞きたいのは、明らかに文法的におかしいのにエラーが出ず、
更に変数がセットされているか否かで結果が変わるということは
自分の知らない文法があるのかどうか?ということ。
>>412のを見て、%" "C:の部分が無視されるのは何故か?というのが気になったわけ。
421:デフォルトの名無しさん
07/06/14 21:22:33
%abc: なる文が、おかしいから無視される、というならわかりやすいのだけど、
abcという変数があるときは%abc: は %だけ無視されて abc: という文字列として扱われる。
これの理由が知りたいってことなんだ。
422:デフォルトの名無しさん
07/06/14 21:24:06
実装が糞なだけだろ
423:デフォルトの名無しさん
07/06/14 21:25:23
ちなみに>>414-415には書いていないけど、
abcに中身があるときに
%abc: → abc: だが、
%abc:ef → ef となる。
この辺が更にわけわかめという感じなんだけど。
424:デフォルトの名無しさん
07/06/14 21:28:45
仕様にないことは不定
どうなるか知ったことじゃない
425:デフォルトの名無しさん
07/06/14 21:32:51
「そういうもの」という逃げでもいいんだけどね…なにかしっくり来ないわけさ。
426:デフォルトの名無しさん
07/06/14 21:38:36
JISでは未定義の動作について、次のように記述しています。
「可搬性がない若しくは不正なプログラム構成要素の使用における動作、
又は不正なデータ若しくは不確定な値を持つオブジェクトの使用における動作であり、
この規格が何ら要求を課さない動作。
未定義の動作に対して、その状況を無視して予測不可能な結果を返してもよい。」
427:デフォルトの名無しさん
07/06/14 21:45:56
要するに頭のおかしなやつをいちいち相手するだけ無駄ということ
428:デフォルトの名無しさん
07/06/14 22:25:05
頭のおかしな奴=417
429:デフォルトの名無しさん
07/06/15 06:17:06
>>426
それC言語の場合だろ
JIS X 0001〜0015で定義されてるならともかく
430:デフォルトの名無しさん
07/06/15 08:33:18
MS産の言語なんてそんなもん
昔のMSBASICなんて結構酷い仕様一杯あったぞ
431:デフォルトの名無しさん
07/06/16 12:56:22
32KBとか8KBのメモリで動くことが何より重要だった自体の言語を
現在の視点で見るのはフェアではないと思われ
432:デフォルトの名無しさん
07/06/16 14:11:10
いまからするとアレはアレで相当面白いけどね。
記憶領域節約の為に1行入力するごとに中間言語に落してリスト
表示するときにはまた元に戻すようなことをやったりするし、
GOTO文の飛び先とか最初は人間が入力した行番号そのままだけど
一回そのGOTOが実行されると飛び先のアドレスに変換されたりとか、
面白い仕掛けが満載w
433:デフォルトの名無しさん
07/06/19 19:42:55
221 名前:名称未設定[sage] 投稿日:2007/06/19(火) 18:03:11 ID:amSFm4Dq0
アポー自慢のタイムマシンが1行でできちゃいました><
xcopy /m /s "%homepath%\*.*" "%backupdrive%\%date:/=%\"
今ならTime Machine for Winows Ultimate がたったの$0,000,000,000.00でご利用になれます。
434:デフォルトの名無しさん
07/06/25 05:55:29
435:デフォルトの名無しさん
07/06/28 05:47:04
436:デフォルトの名無しさん
07/07/10 12:25:23
ftp -s:ftp_command.txt
という風にファイルからFTPにコマンドを流しているのですが、
このファイル内(上記の場合だとftp_command.txt)の中に
何とかコメントを書く方法ってないですか?
437:デフォルトの名無しさん
07/07/10 12:45:09
>436
スレ違い
こちらへどうぞ
ユーザー必読!コマンドライン(DOS Pt.6)
スレリンク(win板)
438:デフォルトの名無しさん
07/07/10 12:50:25
!rem いつもの統合失調症の人ですか?
439:436
07/07/10 12:55:13
>437
ありがとうございます。
この場合はマルチポストしてもいいんですか?
440:デフォルトの名無しさん
07/07/10 13:05:43
>439
そっちへ移動したこと、ここから移動してきたことを
ちゃんと言えば問題ない
441:436
07/07/10 13:24:38
>438
ありがとうございます!なるほど!
多分いつもの総合失調症の人ではないと思います。
442:デフォルトの名無しさん
07/07/10 20:10:54
いつもの統合失調症の人は>>437ですよ。
統合失調症の人の寝言はかまわずスルーしてください。
443:デフォルトの名無しさん
07/07/19 10:52:53
444:デフォルトの名無しさん
07/07/19 23:40:08
最近、バッチファイルを学び始めました。
質問なんですが、
バッチファイルの起動を引数を渡して起動するのは可能でしょうか?
例)「a.bat」というバッチがあり、「a.bat huga」とコマンドプロンプト上で入力してやれば
「a.bat」内の処理が走る。
こんな感じです。
分かる方、ご教授下さいませ。
445:デフォルトの名無しさん
07/07/19 23:47:48
コマンドライン引数は %1 〜 %9 で参照できる
446:デフォルトの名無しさん
07/07/20 00:01:30
本スレ
ユーザー必読!コマンドライン(DOS Pt.6)
スレリンク(win板)
447:デフォルトの名無しさん
07/07/20 00:04:12
>>446
頭のおかしい病人乙
448:デフォルトの名無しさん
07/07/23 21:13:46
質問させてください。
バッチで、以下のような選択をさせたいと
思います。
部署を選択してください。[]
1.営業部
2.技術部
3.総務部
上記のような選択で、番号を入力させ部署毎に
バッチの処理を変えたいと思ってます。
これをWindows98のMS-DOSプロンプトで行う事は
可能でしょうか。
よろしくお願いします。<(_ _)>
449:デフォルトの名無しさん
07/07/23 21:33:38
choice
450:デフォルトの名無しさん
07/07/23 21:44:32
>>449
即レスありがとうございます!
調べてみます
451:デフォルトの名無しさん
07/07/23 21:53:20
あんまりレベルの低い質問はwindows板へ誘導してあげた方がよくないか?
どう見てもパソコン初心者だし
452:デフォルトの名無しさん
07/07/23 22:03:22
ユーザー必読!コマンドライン(DOS Pt.6)
スレリンク(win板)
453:デフォルトの名無しさん
07/07/23 22:08:06
>>451
おまいら(みないなの)がいそうなので誘導はしません
454:デフォルトの名無しさん
07/07/24 00:31:06
>おまいら(みないなの)
>おまいら(みないなの)
>おまいら(みないなの)
……
455:デフォルトの名無しさん
07/07/24 10:51:20
Win2kだと SET /P で入力かな
それにしても某誘導中の頭の中はDOSで停まってるのかねぇ
DOSなら確かに初心者レベルの知識だが
WindowsではそもそもCUI自体初心者は使わないのに
456:デフォルトの名無しさん
07/07/29 23:13:26 0
%SystemDrive%みたいな感じでカレントディレクトリのドライブを示すものないですか?
457:デフォルトの名無しさん
07/07/29 23:24:57 0
>>456
%CD:~0,2%
458:デフォルトの名無しさん
07/08/11 23:13:23
DLしたアプリケーションが開けない
コマンドプロンプトで作られた物だとは思うが
開いた瞬間勝手に閉じてしまう
どうすればいいかな?
459:デフォルトの名無しさん
07/08/11 23:27:30
>>458
コマンドプロンプトの使い方を覚えろ。
話はそれからだ。
460:デフォルトの名無しさん
07/08/12 12:02:59
>>458
コマンドプロンプトから開けばいい
461:デフォルトの名無しさん
07/08/13 12:37:49
yahooなどのログインを自動的に行うにはどうすればいいんでしょうか?
net useを使ってみたんですがうまくいきません。
どのようなコマンドを使うかだけでもいいのでヒントをいただけないでしょうか
462:デフォルトの名無しさん
07/08/13 14:10:45
>>461
バッチよりWSHやHTAでやったほうがいよ
463:デフォルトの名無しさん
07/08/13 14:15:11
てかyahooしらんが、
そもそもHTTPセッションで管理されてたらbatでもスクリプトでも色々ムリがあると思われ
464:デフォルトの名無しさん
07/08/13 14:25:07
>>462-463
ありがとうございます。バッチだと難しいんですね
465:デフォルトの名無しさん
07/08/13 15:09:05
>>458
コマンドプロンプト開いて(Win+Rでcmd.exeと入力)
cd c:\yourappdir
yourapp.exe
とかやればよし
466:デフォルトの名無しさん
07/08/13 17:08:22
batのfor文で、in() のカッコの中に%1を入れも動かないんですが、何故なんでしょうか?
%1にはD&Dしたテキストファイルのフルパス名が入っているはずなんですが・・
467:デフォルトの名無しさん
07/08/13 17:15:03
>>466
echoをONにしてコマンドプロンプト上から実行してみろよ。
468:デフォルトの名無しさん
07/08/13 17:21:41
>>467
実行してみたらfor /f in (%1) doのはずが
for 1) do となっていました。("%1")でとしてもダメでした。どうすればいいのでしょうか?
469:デフォルトの名無しさん
07/08/13 17:33:21
@echo off
for /F "delims=" %%i in (%1) do echo %%i
pause
特に問題ないが。
470:デフォルトの名無しさん
07/08/13 17:40:26
>>469
%1のせいではなくて、%%iを%iとしてたためにできなかったみたいです。失礼しました。ありがとうございました!
471:デフォルトの名無しさん
07/08/20 20:30:39
質問です。
まず状況として、PC1とPC2、PC3がLANでつながっています。
PC1で既存のバッチを実行し、PC1内のファイルから新しいファイルを生成します。
作成されたファイルをPC2に渡して、また別の既存のバッチをPC2自身に実行させ、
渡されたファイルからさらに新しいファイルを生成します。
このファイルをあらかじめ指定した出力先(PC1〜PC3のいずれか)
にコピーして、終了。
PC1で開始したら、ここまで自動で処理するようにしたいのです。
考えていた案は、PC1に入れたプログラムで開始を指示すると
PC1のバッチを実行し、生成ファイルをPC2にコピー、
atコマンドで1分後にPC2自身にPC2の新規バッチを実行させ、
新規バッチ内で既存バッチを呼び出して処理後、出力先にコピーする、
というものでした。
ところがタスク内ではコピー先にネットワークのPCを指定するとエラーになるようで、
最後の出力先にコピーする部分で行き詰まりました。
この案自体何か考え方がおかしい気もするのですが、名案が浮かばず困っています。
既存のバッチを改変せずに一括して処理する、良い方法はありませんでしょうか?
472:デフォルトの名無しさん
07/08/20 22:00:25
>>471
> ところがタスク内ではコピー先にネットワークのPCを指定するとエラーになるようで、
> 最後の出力先にコピーする部分で行き詰まりました。
その最後の部分のみが問題だったら、その部分のコマンドとエラー結果を貼るといい。
473:デフォルトの名無しさん
07/08/20 22:15:44
>>472
実行アカウントの問題でしょ
474:デフォルトの名無しさん
07/08/20 22:35:35
>>471
atじゃなくて、rshではいかんの?
475:471
07/08/20 23:08:12
>472
たとえばbatch.batの最後の行が、copy c:\test.txt \\PC2\c\test で
at \\PC2 22:54 c:\batch.bat とやったとします。
at打つと54分の実行までは
状態 ID 日付 時刻 コマンド ライン
-------------------------------------------------------------------------------
1 今日 22:54 copy c:\test.txt \\PC2\c\test
なんですが、54分過ぎると
エラー 1 明日 22:54 copy c:\test.txt \\PC2\c\test
こうなります。ログは何も吐かないみたいですが…
>473
管理者アカウント取ってるのでat自体は問題なく通ります。
>474
それは知らなかったですね…試してみます。
476:デフォルトの名無しさん
07/08/21 07:47:47
>>475
copy c:\test.txt \\PC2\c\test
の問題なら、
copy c:\test.txt \\PC2\c\test > c:\log.txt 2>&1
みたいな感じで自分でエラーをログファイルに落として確認するとか、
copy直後にpauseで一時停止してエラーを見ればいい。(atコマンドに/interactiveが必要か)
477:デフォルトの名無しさん
07/08/21 20:50:00
copyするファイルと同じフォルダをコピー先として指定したい場合、どういう記述で指定すればいいですか?
478:デフォルトの名無しさん
07/08/21 20:53:12
>>477
copy ファイル名 新しいファイル名
479:477
07/08/21 21:02:23
>>478
送るにショートカットを置いて動作させたいと思ってるんですが、
そうしたらバッチファイルのあるフォルダにコピーされてしまったんです。
いちお
@echo off
copy %1 _title.jpg
end
みたいにしたんですが...
480:デフォルトの名無しさん
07/08/21 21:13:59
copy %1 "%~dp1_title.jpg"
481:477
07/08/21 21:24:49
>>480
ありがとうございます。できました(*^v^*)
482:デフォルトの名無しさん
07/08/24 16:54:48
WindowsXPって名前つきパイプみたいなもの使えます?
483:デフォルトの名無しさん
07/08/24 18:03:47
>>482
mkfifoみたいなものを探してるなら、無いんじゃないかなあ。
一時ファイルを経由するしかないかと。APIでなら使えるけどね。
484:デフォルトの名無しさん
07/08/29 12:09:09
%DATE%で当日の日付が取得できるのはわかるんだが
前日とか次の日ってのはどうやって取得すれば良いのかね??
485:デフォルトの名無しさん
07/08/29 12:43:29
echo 今日は %date% です
echo 昨日の日付を入力してください
set /P prevdate=
echo 明日の日付を入力してください
set /P nextdate=
echo 前日は %prevdate% 、次の日は %nextdate% です
486:484
07/08/29 13:06:01
>>485
いや、そりゃわかるんだが
もうちょい具体的に書くと
"昨日の日付.log"ていうファイルを触りたいときに
バッチファイル内でどういうふうに指定すれば良いのか教えてくだしあ。
って感じ
487:485
07/08/29 13:16:46
以下のスレの最初の方に書いてあるよ
スレリンク(win板)
488:デフォルトの名無しさん
07/08/29 15:01:05
ヒント: >>1の最後の2行
489:デフォルトの名無しさん
07/09/01 20:49:11
>>484
「1日前の計算」のところに書いてあるよ
URLリンク(www.atmarkit.co.jp)
490:489
07/09/01 20:54:15
自分も聞きたいことが
>>489のサイトの「変数値の部分文字列抽出用の修飾」のとこにでてくる
m文字目からn文字分抽出する %date:~m,n%
%~t0やfor文の%%~tAにこの修飾は使えないもんですかね?
もうひとつ、この手の文字列抽出の修飾は他にもあるんですか?
DOS、バッチ関連のサイトを読み漁ってるんですけど見つからなくて。。
gglのキーワードか、リファレンスサイト教えてもらえないでしょうか
491:デフォルトの名無しさん
07/09/01 21:54:46
>>490
help set
help call
492:デフォルトの名無しさん
07/09/02 00:14:45
VBScriptをバッチファイルから呼び出しています
処理結果をerrorlevelへ返してバッチファイル側の分岐条件にしたいのですが
VBScriptから値を返す方法がわかりません
おねがいします
493:デフォルトの名無しさん
07/09/02 00:20:29
WScript.Quit
494:デフォルトの名無しさん
07/09/02 00:30:45
>>493
うまくいきました
ありがとうございます
495:デフォルトの名無しさん
07/09/05 17:33:51
バッチでこんな感じのテキストを作りたいのですが、
こういうのの参考になるコマンドとかwebsiteとか
ご存知ないでしょうか、それともテキスト処理
とかcygwinとか使ったほうがいいでしょうか?
どなたかよろしくお願いします。
9/1:6:30
9/2:7:00
9/3:7:30
・・・・
つづく
496:デフォルトの名無しさん
07/09/05 17:37:27
ユーザー必読!コマンドライン(DOS Pt.6)
スレリンク(win板)
497:デフォルトの名無しさん
07/09/05 18:06:34
>>495
とりあえず9/30まで
@echo off
set timeval=390
set day=1
:loop
set /A hour=%timeval% / 60
set /A min=%timeval% %% 60
set min=0%min%
echo 9/%day%:%hour%:%min:~-2%
set /A day += 1
set /A timeval += 30
if %day% == 31 goto :end
goto loop
:end
書いといて何だけど、WSH使った方がいいと思う。
498:デフォルトの名無しさん
07/09/05 18:18:54
やはり日付を扱うのはwindowsだとWSHとかなんですか。
なんだか苦手意識があって・・・
とりあえずはいただいたものでうまくできそうですので、
それを応用したいと思います。ありがとうございます。
499:デフォルトの名無しさん
07/09/05 21:52:20
cygwinを使おうと思うような人なら
JScriptでもPerlでもわけないというイメージがある。
500:デフォルトの名無しさん
07/09/05 23:36:47
バッチファイルを作りたいのですが、まったくの初心者です
OSはXP-Homeです
"C:\Program Files\×××\×××.exe"
通常はこれでソフトを起動させる事が出来るんですが
起動しないソフトもあるんですがその場合はどのように書けば良いでしょうか?
501:デフォルトの名無しさん
07/09/05 23:42:11
>>500
もしや、エクスプローラで拡張子を表示しない人?
502:デフォルトの名無しさん
07/09/05 23:47:54
>>501
確認しましたが拡張子はexeでした
503:デフォルトの名無しさん
07/09/05 23:49:09
例えば拡張子がtxtなどの場合は同様に起動しませんが
これを起動する方法を応用しても出来ないのでしょうか?
504:デフォルトの名無しさん
07/09/06 00:00:04
起動しますが何か。
505:デフォルトの名無しさん
07/09/06 00:06:28
今やったら起動しました
何か間違ってたみたいですすいません
ついでなので起動中のソフトの終了の仕方も教えてください
バッチファイルで
506:デフォルトの名無しさん
07/09/06 00:19:21
>>505
shutdown -s
507:デフォルトの名無しさん
07/09/06 00:37:41
>>506
shutdown -s "C:\Program Files\2chtubo\2chtubo.exe" shutdown
"C:\Program Files\2chtubo\2chtubo.exe" shutdown -s
shutdown "C:\Program Files\2chtubo\2chtubo.exe" -s
いずれも試しましたがダメでした
ちなみに起動や終了ができないソフトは壷です
"C:\Program Files\2chtubo\2chtubo.exe"
としても起動しませんでした
508:デフォルトの名無しさん
07/09/06 00:38:29
訂正
一番上のはこっちです
shutdown -s "C:\Program Files\2chtubo\2chtubo.exe"
509:デフォルトの名無しさん
07/09/06 00:39:32
2chの壷ってただのローカルプロキシサーバになるんじゃなかったっけ?
510:デフォルトの名無しさん
07/09/06 00:43:29
そうですが本体はexeですし、設定もしてますよ
511:デフォルトの名無しさん
07/09/06 00:43:44
>>505
taskkillコマンドがあるはずなんだが、うちじゃ使えない
というわけでwshをおすすめするよ
512:デフォルトの名無しさん
07/09/06 00:45:09
>>510
多分起動してる(また多重起動した場合は直ぐに終了されている)と思われ
本体がexeかどうかは関係ないし、設定もこの話題の場合意味が無いと思う
513:デフォルトの名無しさん
07/09/06 00:45:53
つ TASKKILL /?
514:デフォルトの名無しさん
07/09/06 00:46:58
>>513
taskkillってXP Homeで使えるの?
こうなるんだけど
D:\Documents and Settings\俺用>taskkill
'taskkill' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
515:デフォルトの名無しさん
07/09/06 00:50:01
確かXP-Proと2000にしかなかった気がする
516:デフォルトの名無しさん
07/09/06 00:54:14
XP Pro x64だけどtaskkillあった
517:デフォルトの名無しさん
07/09/06 06:03:56
cygwin, sysinternals suite入れてないやつはアフォ
518:デフォルトの名無しさん
07/09/06 06:14:37
cygwin入ってたらcmd.exeの貧弱なシェルスクリプトにこだわる必要ないじゃん
519:デフォルトの名無しさん
07/09/06 08:44:50
アクティブスクリプトでなくわざわざWindows外部の基盤システムを導入してその上のスクリプトを呼び出す神経がわからん
520:489
07/09/06 13:41:21
>>491さん
遅くなりましたがレス有難うございました
HELPはかなり重要なことが書かれていますね
全コマンドのHELPをリダイレクトしてテキストに生成するバッチ組んで見ました
印刷して製本して熟読しようと思いますー
521:デフォルトの名無しさん
07/09/06 19:00:48
>>507
とりあえず shutdown /? 位見てから書き込もうね。
アホすぎて見てらんない。
rd /q/s 〜 なトラップに引っかかるタイプの人でしょ。
522:デフォルトの名無しさん
07/09/06 19:56:56
そういうshutdownみたいなコマンドの使い方は
プログラミングとは言わないから板違いでスレ違いだろ
523:デフォルトの名無しさん
07/09/06 23:58:21
スクリプトでソフトを全部終了させればいいじゃない
524:デフォルトの名無しさん
07/09/07 00:02:39
>>523
的に当たらないから矢をでかくした感じだな
525:デフォルトの名無しさん
07/09/07 00:57:52
'shutdown' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
526:デフォルトの名無しさん
07/09/07 20:46:08
WindowsXP/2003からの機能だよ
527:デフォルトの名無しさん
07/09/08 01:30:52
WindowsXP/2003から新たに導入されたコマンドやツールはコピーしておくと便利だな。
msconfigとかもね。まあスレ違いだけど。
528:デフォルトの名無しさん
07/09/08 02:46:52
>>527
コピーした先の環境がEXE Hellに陥る姿をみてわろた
529:デフォルトの名無しさん
07/09/10 12:38:39
こういうのはどうやれば良いのでしょうか?
「○○を実行しますか?(Y/N)」とメッセージを表示させ、
YならラベルYを実行、NならBATファイル終了。
530:529
07/09/10 12:49:44
申し遅れました。
環境は、Windows2000です。
531:デフォルトの名無しさん
07/09/10 13:12:15
そこまで初心者ならこっちのスレへどうぞ
ユーザー必読!コマンドライン(DOS Pt.6)
スレリンク(win板)
532:529
07/09/10 13:14:07
>530
ありがと。
レベル違いすぎてて
533:デフォルトの名無しさん
07/09/10 14:02:53
チョイスとか言ってみる
534:デフォルトの名無しさん
07/09/10 21:50:31
set /p と if /i を使う手がある
535:デフォルトの名無しさん
07/09/11 00:09:07
choiceってXPやVistaにもあったっけ?
536:デフォルトの名無しさん
07/09/11 00:26:45
>>535
ない。
確かDOSでもかなり後のバージョンでないと入ってなかった気がする。
537:デフォルトの名無しさん
07/09/11 01:33:10
batに対してフォルダをD&Dすればそのフォルダを圧縮、
batをダブルクリックで起動した場合には規定のフォルダを圧縮
という動作のために、最初の行に
if "%1" == "" goto default
と書いたのだけど、D&Dするフォルダに空白が含まれていると%1が
if ""some folder"" == "" goto default
と展開されるらしくエラー。
かといってダブルクォートをなくして
if %1 == "" goto default
とした場合はダブルクリック起動で
if == "" goto default
となってしまうのでエラー。
どうすれば良いでしょうか。
538:デフォルトの名無しさん
07/09/11 01:50:50
"%~1"
539:537
07/09/11 02:38:11
>>538
神様ありがとうございました。
540:デフォルトの名無しさん
07/09/11 12:00:13
バッチファイルで複数の指定ファイルを削除する場合の書き方を教えてください
541:デフォルトの名無しさん
07/09/11 12:01:48
del a.txt "c:\program files\b.txt" c.txt
542:540
07/09/11 12:16:43
>>541
ありがとうございました
543:デフォルトの名無しさん
07/09/11 12:45:09
ゲームで極める シェルスクリプトスーパーテクニック
URLリンク(www.gihyo.co.jp)
URLリンク(slashdot.jp)
動画
URLリンク(jp.youtube.com)
バッチファイルおわった・・・
544:デフォルトの名無しさん
07/09/11 13:16:48
ファイル消すのにもいちいち質問してるようじゃ
入門書すら存在しないんだろうね
545:デフォルトの名無しさん
07/09/11 19:14:05
今時バッチの入門書なんて
546:デフォルトの名無しさん
07/09/11 20:16:28
>>543
そもそも動作環境が違うんだから、比較する意味が無いだろう。
むしろ将来的にパワーシェルがWindows標準になる事を考えれば、
そっちのほうが。
バッチファイルはちょっと複雑な事をさせようとすると、感覚的に
わかりづらい記述になるので、バッチファイルを極めるより、WSHを
覚えたほうがマシだね。
ちなみにモレは丁度、一昨日買った所。1キー入力で反応させるのとか目から鱗だった。
547:デフォルトの名無しさん
07/09/12 15:32:16
本の宣伝にしか見えないんだけどw
548:デフォルトの名無しさん
07/09/12 23:19:39
宣伝にマジレス。漏れおわった・・・・
549:デフォルトの名無しさん
07/09/13 08:44:07
>>543
すげーな。俺この本買ってUNIXに乗り換えるわ。
お前らはいつまでもしょぼいバッチファイルをしこしこ書いてなさいってこった。
550:デフォルトの名無しさん
07/09/13 11:23:01
rem文中のメモでも %~~ の表記があるとバッチが落ちて驚いた
ということはremでメモを残すことにもリスクがあるのか
551:デフォルトの名無しさん
07/09/13 16:20:51
aaa.log というファイルが0バイトなら削除するっていうのはどう書いたらいい?
552:デフォルトの名無しさん
07/09/13 16:26:59
call :main c:\test.txt
exit /b
:main
if "%~z1"=="0" del "%~1"
553:デフォルトの名無しさん
07/09/13 18:59:32
@echo off && goto enddoc
指定時間まで寝るコマンド
:usage
echo Usage: SleepAt TIME [COMMAND]
echo.
echo Sample: SleepAt 16:00 %systemroot%\media\tada.wav
goto exit
:enddoc
if "%~1" == "/h" goto usage
if "%~1" == "/?" goto usage
if "%~1" == "" goto usage
:loop
title sleepat %~1 now:%time:~0,8%
if "%time%" gtr "%~1" goto exit
sleep 1
goto loop
:exit
if "%~2" == "" exit /b
%2 %3 %4 %5 %6 %7 %8 %9
554:903
07/09/14 02:04:28
バッチファイルに
Format C とかいて
スタートアップにおいたらどうなります?
555:デフォルトの名無しさん
07/09/14 02:09:21
>>554
無効なドライブ指定です。
556:デフォルトの名無しさん
07/09/14 08:12:57
>>554
アクセスは拒否されました。
557:デフォルトの名無しさん
07/09/18 17:16:40
質問させてください。
FireFoxとかインストールするときに次へ進むボタンとかあるけど
batだけで全部処理できますか?
558:デフォルトの名無しさん
07/09/18 18:38:00
ここはバッチでプログラミングするスレなので、
既にバッチを使いこなせる人を対象としています。
バッチを知らない人やバッチ初心者はこちらへ
ユーザー必読!コマンドライン(DOS Pt.6)
スレリンク(win板)
559:デフォルトの名無しさん
07/09/19 02:29:17
558(荒らし)の言っていることに騙されてはいけませんよ。
560:デフォルトの名無しさん
07/09/19 10:55:29
ファイルの中に特定の文字列があれば削除するってのはどう書けば良い??
561:560
07/09/19 11:04:30
ごめん、できた。
ありがとう。
562:デフォルトの名無しさん
07/09/19 13:46:02
特定の文字列があれば、そのファイル自体を削除するのか
その文字列を削除するのかわからないけど
バッチ組めたならアップしておくと参考になっていいと思うよ
563:デフォルトの名無しさん
07/09/19 15:07:03
その程度の物に参考も糞もあるかよw
564:デフォルトの名無しさん
07/09/20 10:42:30
バッチでバイナリって扱えたっけ?
565:デフォルトの名無しさん
07/09/20 16:27:14
/b
566:デフォルトの名無しさん
07/09/20 20:55:45
テキストもある意味バイナリ
567:デフォルトの名無しさん
07/09/20 21:36:30
いいえ、それはトムです。
568:デフォルトの名無しさん
07/09/21 19:41:48
forの中でsetする時などは、遅延展開 !変数! を使うと思いますが、
名前に ! が含まれてるファイルを引数にすると期待通り動かなくなりますよね
callを使って遅延展開を代替することもできますが、やはり限界があると思います
みなさんははどうやって対処していますか?
569:デフォルトの名無しさん
07/09/21 19:47:01
初心者はこちらへ
ユーザー必読!コマンドライン(DOS Pt.6)
スレリンク(win板)
570:デフォルトの名無しさん
07/09/21 19:51:13
>568
他のスクリプト言語を使う
571:デフォルトの名無しさん
07/09/22 16:39:23
なんだってエスケープは必要だろ
572:デフォルトの名無しさん
07/09/22 16:46:21
>>568
対処法はWSHを使う
573:デフォルトの名無しさん
07/09/22 16:47:45
ユーザー必読!コマンドライン(DOS Pt.6) への誘導には
従う必要はありませんので。念のため。
574:デフォルトの名無しさん
07/09/22 16:54:32
任意のフォルダに任意のテキストファイル(内容在り)を
作成すること可能ですか?
575:デフォルトの名無しさん
07/09/22 16:58:33
>>574
echo 在り > 任意の\任意の.txt
576:574
07/09/22 17:04:21
>>575
ありがとうございます!
577:574
07/09/22 17:15:08
度々すいません。
echo 「ファイル内容」 > 任意の\任意の.txt
のコマンドですが、
「ファイル内容」を複数行にしたい場合はどう記述すればよいのでしょうか?
\nとかは試してみましたけどダメでした・・・
578:デフォルトの名無しさん
07/09/22 17:29:07
echo 1行目> 任意の\任意の.txt
echo 2行目>> 任意の\任意の.txt
echo 3行目>> 任意の\任意の.txt
……
579:574
07/09/22 17:31:19
>>578
すいません。
どうもありがとうございました。
580:デフォルトの名無しさん
07/09/22 18:37:41
小学生?
581:デフォルトの名無しさん
07/09/22 18:39:17
>>580
例の病気の人ですか?
582:デフォルトの名無しさん
07/09/27 05:51:46
583:デフォルトの名無しさん
07/09/27 14:34:48
どっかで
echo >> filnemae.txt aaaaaaaaaaaaaa
echo >> filnemae.txt bbbbbbbbb
echo >> filnemae.txt cccccccccccccccccccccccccc
echo >> filnemae.txt dddddd
みたいな書きかたしててちょっとよさげにみえた
584:デフォルトの名無しさん
07/09/27 19:10:09
filnemae?
585:デフォルトの名無しさん
07/09/27 20:14:20
>>583
> filnamae.txt echo aaaaaaaaaaaaaa
>> filnamae.txt echo bbbbbbbbb
>> filnamae.txt echo cccccccccccccccccccccccccc
>> filnamae.txt echo dddddd
こんなんでもいいんだよね
586:デフォルトの名無しさん
07/09/28 19:00:48
(
echo aaaaaaaaaaaaaa
echo bbbbbbbbb
echo cccccccccccccccccccccccccc
echo dddddd
) >> filnemae.txt
587:デフォルトの名無しさん
07/10/02 05:33:10
へー、美しい書き方だな
588:デフォルトの名無しさん
07/10/05 20:31:51
echo aaaaaaaa^
bb^
ccc^
ddd
もいけるぜ改行されないけど
589:デフォルトの名無しさん
07/10/05 21:44:08
echo aaaaa^
bbbbb^
ccccc^
ddddd> failname.txt
でも行ける。改行がCR+LFでなくLFだけでも良ければ。
590:デフォルトの名無しさん
07/10/12 19:53:17
dllの読み込みって、%path%とカレントディレクトリでどっちが優先されるのでしょうか?
591:デフォルトの名無しさん
07/10/12 20:12:46
アプリケーション側で読み込む DLL のパスを指定していなければ
1. アプリケーションのあるディレクトリ
2. カレントディレクトリ
3. システムディレクトリ
4. Windows ディレクトリ
5. 環境変数 PATH に書かれているディレクトリ
の順。、
592:デフォルトの名無しさん
07/10/12 20:37:56
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WIN32COM.v10.en/dllproc/base/dynamic-link_library_search_order.htm
最近のWindowsでは、システム・ウィンドウズディレクトリより
カレントディレクトリの順位のほうが低い。
環境変数PATHより高いことに違いはないけどな。
593:デフォルトの名無しさん
07/10/12 20:38:55
上のURLはローカルなms-helpだったな、すまん。
URLリンク(msdn2.microsoft.com)
594:デフォルトの名無しさん
07/10/12 20:49:39
おまいらスレタイ見直せ
595:デフォルトの名無しさん
07/10/12 22:23:01
>>1に書いてある関連情報の範疇
596:デフォルトの名無しさん
07/10/13 08:17:15
powershellの話もここで扱うの?
597:デフォルトの名無しさん
07/10/13 08:20:41
スレリンク(win板)
598:デフォルトの名無しさん
07/10/13 10:36:38
win板か、じゃぁイラネ
599:デフォルトの名無しさん
07/10/23 09:56:34
同一ディレクトリ内に、
同一内容のファイル(ファイル名は異なるが内容は一緒)があれば、
一方を削除して、その消したログを吐き出すっていう
バッチファイルを作りたいんですが・・・。
教えてエロイ人!
600:デフォルトの名無しさん
07/10/23 10:07:01
まだ自分でプログラムを作れない初心者はこっちへ↓
ユーザー必読!コマンドライン(DOS Pt.6)
スレリンク(win板)
601:デフォルトの名無しさん
07/10/23 11:41:01
600は荒らしなので無視してかまいません
602:デフォルトの名無しさん
07/10/23 11:56:59
>>599
そういうのはWSHでやったほうが
603:デフォルトの名無しさん
07/10/23 12:02:15
>>599
ifとforとerrorlevelとfcとdelでできるかも
遅いだろうね
604:デフォルトの名無しさん
07/10/23 12:15:46
総当りになるからファイル数の二乗で処理が増えるわな
その前にファイルサイズでふるいにかけて…
UnDupでも使っとけって話だな。
605:599
07/10/23 12:46:41
>>600-604
ありがとうございます!
やっぱり総当たりになるから遅いですよね。
ファイルサイズで対象を削ってから・・・なるほど。。。
WSHについても、調べてみますー。
606:デフォルトの名無しさん
07/10/23 19:22:57
@echo off
setlocal EnableExtensions EnableDelayedExpansion
pushd %1
set FileSize=-1
set FileName=""
for /f "tokens=*" %%I in ('dir "%TargetDir%" /o:sn /b /a:-d') do (
if !FileSize! EQU %%~zI (
fc /b !FileName! "%%~fI">nul
if not errorlevel 1 echo del "%%~fI"
) else (
set FileSize=%%~zI
set FileName="%%~fI"
)
)
popd
607:デフォルトの名無しさん
07/10/23 19:27:23
>>606
消し忘れた
誤: ('dir "%TargetDir%" /o:sn /b /a:-d')
正: ('dir /o:sn /b /a:-d')
あと、十分にデバッグしてもらった後に
誤: echo del "%%~fI"
正: del "%%~fI"
608:606
07/10/23 19:30:37
・・・すまん
同じサイズで内容の異なるファイルが3つ以上あるとこれじゃだめだね。
めんどいので、後は任せた・・・
609:デフォルトの名無しさん
07/10/23 21:34:06
>>599
WSHでやるなら↓を流用するといいかも
スレリンク(tech板:227-228番)
610:デフォルトの名無しさん
07/10/23 22:32:47
わざわざ作ったのか
611:606
07/10/23 22:38:09
任せた・・・とか言いながらやっぱり自分で書いてみたりして・・・
@echo off
setlocal EnableExtensions EnableDelayedExpansion
pushd %1
set FileSize=-1
set FileList=""
for /f "tokens=*" %%I in ('dir /o:sn /b /a:-d') do (
if !FileSize! EQU %%~zI (
call :CmpFile "%%~fI" !FileList!
) else (
set FileSize=%%~zI
set FileList="%%~fI"
)
)
popd
endlocal
goto :eof
:CmpFile
fc /b %1 %2>nul
if not errorlevel 1 (
echo del %1
REM del %1
goto :eof
)
shift /2
if not "%~2"=="" goto :CmpFile
set FileList=%FileList% %1
612:デフォルトの名無しさん
07/10/23 22:48:54
バッチのFOR文ってすごく難しいと思うんですが
自分だけでしょうか?
613:デフォルトの名無しさん
07/10/23 22:50:38
難しいかどうかは、人それぞれだろうが
奥が深いのは確か。
614:デフォルトの名無しさん
07/10/23 22:54:29
難しいと言うより可読性がとても悪いような
615:デフォルトの名無しさん
07/10/23 23:06:15
スペースでインデントするとIEでは(専ブラでも)削除されるからだよ。
エディタにコピペしてみ。
616:デフォルトの名無しさん
07/10/23 23:09:55
for文の可読性の悪さはインデント関係ないよ
617:デフォルトの名無しさん
07/10/23 23:56:08
java なんてこうだぜ!
for (String str : a) {
System.out.println(str);
}
コレに比べたら
FOR %%I IN (*.*) DO (
ECHO %%I
)
こっちがマシ。
618:デフォルトの名無しさん
07/10/23 23:59:18
どう見ても拡張しすぎだよな。
まったく異なる機能が一つのコマンドに無理やり詰め込まれてるって気がする。
ところで in のあとの ( ) は グループ化の ( ) より強いんだろうか?
619:デフォルトの名無しさん
07/10/24 06:08:18
つーかさっさとマルチタブなcmd.exe作れよ。糞エス
PowerShellでもガワが古いままとかドンだけてぇぬいてんだカス
620:デフォルトの名無しさん
07/10/24 07:51:29
そんなぐらい自分でやれよ
621:デフォルトの名無しさん
07/10/24 11:28:23
乞食らしくPowerShellIDEでも使わせてもらえよ。
622:599
07/10/24 12:02:13
>>606さん
ありがとうございます!
早速、勉強しながらテストさせて頂きます!
こんなことがパッと書けるなんて、すごいなぁ。
>>609さん
おお!こっちも参考になりそうですね!
WSHも勉強してみたいと思います。
皆さん、色々ありがとうございましたー。
623:デフォルトの名無しさん
07/10/24 15:35:14
unixみたいに、コマンドをバックグラウンド実行ってできないのでしょうか?
624:デフォルトの名無しさん
07/10/24 15:38:43
ない
cygwinのbash使うか
start使うと別窓で開くが
625:デフォルトの名無しさん
07/10/24 16:15:39
バッチじゃなくてOSやコマンドラインの話だな
626:デフォルトの名無しさん
07/10/24 16:24:34
>>624
ありがとうございます。
コマンドプロンプトを非表示の状態でバッチを実行することってできますか?
627:デフォルトの名無しさん
07/10/24 16:49:25
ここはパソコンの使い方を教える所じゃなくて
プログラムを作るスレ
628:デフォルトの名無しさん
07/10/24 17:08:00
CreateProcessでSW_HIDEで実行すれば非表示に出来るが一般的とは言いがたいな。
start /min で最小化して実行するのが無難だな。
629:デフォルトの名無しさん
07/10/24 21:46:54
627は阿保だろ
630:デフォルトの名無しさん
07/10/25 03:01:55
スタート⇒ファイル名を指定して実行
もしくはショートカットアイコンでも作ってクリックしろ
631:デフォルトの名無しさん
07/10/25 18:37:22
>>626 FAQ >>358
632:デフォルトの名無しさん
07/10/25 18:43:48
>>599
つ C:\Program Files\Support Tools\dupfinder.exe
633:デフォルトの名無しさん
07/10/25 23:05:33
>>626
つ AT
634:デフォルトの名無しさん
07/10/25 23:53:11
フォルダに入っているすべてのWMVをEXEに渡して
とある変換処理をさせています↓
FOR %%F IN (*.WMV) DO C:\CONVERT.EXE "%%F"
しかし、このEXEは出力先が指定できず、同じフォルダ内に結果のWMVを作ります。
それでFOR対象の中に変換後のWMVが入ってきてしまい、
必要のない変換を行ってしまいます。
こういう場合どう書けばいいんでしょうか?
変換後のファイルは頭に'[Converted]-'とつきます。
これがついてるものだけを弾きたいんですが。
私の古い知識では他のバッチを作るとか
リネームして戻すととかくだらない方法しか思いつきませんorz
それと最近のバッチコマンド(WinNT以降?)について
よく解説されてるサイトとかってあります?
635:デフォルトの名無しさん
07/10/26 00:18:38
FOR %%F IN ('DIR /B *.WMV') DO C:\CONVERT.EXE "%%F"
636:デフォルトの名無しさん
07/10/26 00:21:38
>>626
fURLリンク(ftp.microsoft.com)
637:デフォルトの名無しさん
07/10/26 00:25:34
>>634
>それと最近のバッチコマンド(WinNT以降?)について
>よく解説されてるサイトとかってあります?
スレリンク(tech板:6番)
638:デフォルトの名無しさん
07/10/26 01:26:13
FOR %%F IN (*.CS) DO CALL :convert "%%F"
GOTO :EOF
:convert
SET T=%~1
SET T=%T:~0,12%
IF NOT "%T%" == "[Converted]-" C:\CONVERT.EXE "%~1"
EXIT /B
639:デフォルトの名無しさん
07/10/26 01:29:56
いかん、まちごた。WMV やった・・・
FOR %%F IN (*.WMV) DO CALL :convert "%%F"
GOTO :EOF
:convert
SET T=%~1
SET T=%T:~0,12%
IF NOT "%T%" == "[Converted]-" C:\CONVERT.EXE "%~1"
EXIT /B
要するに、頭12文字が [Converted]- で無いヤツを処理するサブルーチン
つくればよかたい。
640:デフォルトの名無しさん
07/10/26 03:47:01
>>634
同じフォルダ内というのが、CONVERT.EXEのあるフォルダじゃなくて
カレントディレクトリっていうことなら、話は簡単だが?
641:デフォルトの名無しさん
07/10/26 03:57:46
>>635より簡単?
642:デフォルトの名無しさん
07/10/27 22:02:02
for /f %%s in ('コマンド') do if errorlevel 1 echo %%s
'コマンド'のerrorlevelによって、'コマンド'の出力の処理を変えられますか?
643:デフォルトの名無しさん
07/10/27 22:37:44
>642
そういう初歩的な話はこちらへどうぞ↓
ユーザー必読!コマンドライン(DOS Pt.6)
スレリンク(win板)
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5389日前に更新/139 KB
担当:undef