トップページ⇒tech
1001コメント279KB

【.cmd】 バッチファイルスクリプト %5 【.bat】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/05/14(木) 11:29:31
前スレ
【.cmd】 バッチファイルスクリプト %4 【.bat】
http://pc12.2ch.net/test/read.cgi/tech/1229955189/
0102デフォルトの名無しさん2009/07/04(土) 10:59:28
>>98
xpはできるけどビスタは理論上できない。
0103デフォルトの名無しさん2009/07/04(土) 11:11:33
どんな理論?
0104デフォルトの名無しさん2009/07/04(土) 11:52:58
ぐぐりまくれ
0105デフォルトの名無しさん2009/07/06(月) 12:09:38
>>76
%%iを"%%i"として渡せばいける

for %%i in ("%homedrive%%homepath%\hoge\*.jpg") do call :fuga "%%i"
0106デフォルトの名無しさん2009/07/06(月) 12:19:31
>>92-95
0107デフォルトの名無しさん2009/07/09(木) 01:36:18
XP SP2で

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce

としたバッチファイルを実行すると無限ループしてしまうのですが、なぜでしょうか。
/vオプションや/t, /d, /fオプションをつけてもループしてしまいます。
コマンドプロンプトで直接打てばエラーはでません。
0108デフォルトの名無しさん2009/07/09(木) 02:14:08
reg.cmd
0109デフォルトの名無しさん2009/07/09(木) 02:24:52
>>108
ありがとうございます!
reg.exe addとしたらできました!
0110デフォルトの名無しさん2009/07/09(木) 13:37:02
>>107-109
エスパーってほんとにいるんだな…
0111デフォルトの名無しさん2009/07/09(木) 23:42:21
>>107-109
理解するのに数秒かかった
超納得。
0112デフォルトの名無しさん2009/07/10(金) 19:38:13
regを呼ぶバッチファイルにreg.cmd(か.bat)って名前付けたのかw
0113デフォルトの名無しさん2009/07/10(金) 22:04:02
そういうことかw

1日以上悩んでわからなかったorz
0114デフォルトの名無しさん2009/07/10(金) 22:16:30
それはちょっとやばいのでは
0115デフォルトの名無しさん2009/07/10(金) 23:28:47
FAQだろ。
ここでも3回以上同じ質問見たぞ。
0116デフォルトの名無しさん2009/07/11(土) 01:03:36
まだわからない俺はどうしたらいいんだろう
0117デフォルトの名無しさん2009/07/11(土) 01:25:38
人間「reg.cmdにreg以下省略と書いて保存…っと」
人間「よし、実行しよう、reg.cmd えんたー」

コマンドプロンプトA「はいはい。reg.cmdね。
A「えーと reg ってコマンドを探せば良いんだな?
A「regって内部コマンドじゃなさそうだし…どこにあるコマンドだろ?」
A「現在のディレクトリにあるコマンドかな?それともpath通ったディレクトリのコマンドかな?」
A「じゃあ、まずは現在のディレクトリに reg ってコマンドは…なあんだ、あるじゃん!」
A「reg.cmdっと!」

コマンドプロンプトB「ん、何すか兄貴。reg.cmd?えーとregってコマンドを実行すれば良いんスね」
B「ええと、まずはカレントディレクトリを探して…っと…ああ、これか、reg.cmdを実行っと」

コマンドプロンプトC「どうしたの兄さん?」

人間「…あれ?何で反応がないんだろう」
A「B、おっそいなー」
B「C、まだっスか?」
C「ボクはD待ちなんですけど…」
0118デフォルトの名無しさん2009/07/11(土) 15:47:22
なにそれきもい
0119デフォルトの名無しさん2009/07/11(土) 16:57:01
昔、Unixで罠にはまったのを思い出したわ。
cc -o test test.c で作ったtestコマンドがなぜか動かないという、真逆の問題だがなw
0120デフォルトの名無しさん2009/07/11(土) 17:07:16
おれもw
unixでpathの先頭にカレントディレクトリを追加しとくと
なんかセキュリティがどうのこうので、まずいんだっけ?
0121デフォルトの名無しさん2009/07/11(土) 17:25:20
/bin/testが実行されたのか・・・そりゃはまるわw
0122デフォルトの名無しさん2009/07/11(土) 20:30:36
>>120
パスの先頭がカレントディレクトリだったらsuトロイを置きまくるぜ
0123デフォルトの名無しさん2009/07/11(土) 22:01:50
あ、それだ。たしかlsみたいなファイル名でトロイを作るんだよね
0124デフォルトの名無しさん2009/07/11(土) 22:30:26
echo.cmd
0125デフォルトの名無しさん2009/07/13(月) 22:20:13
カレントディレクトリにtest03.batがある場合には、z:\batにtest03.batを移動するバッチファイルを作成したい。
ただし、z:\batが存在しない場合にはこれもバッチファイルの中で作成するようにする。

これをつくるためには
IF NOT EXIST z:\bat(
md z:\bat)
ELSE(move z:\test03.bat z:\bat)
ではなにがいけないのか教えてください。実行するとIF NOT EXIST z:\bat(
のところに構文エラーがでるんですが
0126デフォルトの名無しさん2009/07/13(月) 22:31:27
z:\bat(
が存在しない
0127デフォルトの名無しさん2009/07/13(月) 22:41:00
>>126 半角スペースがいるんですねありがとうございます
修正してみました

IF NOT EXIST z:\bat (
md z:\bat
) ELSE (
move test03.bat z:\bat
)

これを実行すると、

IF NOT EXIST G:\bat (
More? md G:\bat
More? ) ELSE (
More? move test03.bat G:\bat
More? )
となってしまい何も起きないんですがどうしてでしょうか


0128デフォルトの名無しさん2009/07/13(月) 22:42:49
すいませんG:\のところはz:\だと思ってください
0129デフォルトの名無しさん2009/07/13(月) 22:48:02
>何も起きないんですがどうしてでしょうか
もう一度実行して確認
01301252009/07/13(月) 22:56:19
z:\batが無い状態で実行してもにz:\batは作成されず、
z:\batがある状態でやってもtest03.batがz:\batに移動されません。
どうしてでしょうか?一応文はあっているのでしょうか?
0131デフォルトの名無しさん2009/07/13(月) 23:06:59
昔、Unixで罠にはまったのを思い出したわ。w
testコマンドがなぜか動かないという
あれ?何で反応がないんだろう
っと…ああ、これか
0132デフォルトの名無しさん2009/07/13(月) 23:13:59
それはちょっとやばいのでは
0133デフォルトの名無しさん2009/07/14(火) 00:49:27
>>127
バッチファイルにすればよい
0134デフォルトの名無しさん2009/07/14(火) 03:52:31
More? って何だ?
01351192009/07/14(火) 05:47:27
>>131
つまらん。
0136デフォルトの名無しさん2009/07/14(火) 05:59:07
お前の話はつまらん
0137デフォルトの名無しさん2009/07/14(火) 10:04:14
>>119
>>131
>>135

ひでぇw
0138デフォルトの名無しさん2009/07/14(火) 12:32:13
こんな過疎すれでも3人いるってことは
自作のtestコマンドを作ってはまったやつが世界中で10万人はいるにちがいない
0139デフォルトの名無しさん2009/07/14(火) 14:27:05
自作のcalプログラムで嵌った経験ならあるぞ。
プロジェクトの名前がcalなんだからぁしょうがないw
0140デフォルトの名無しさん2009/07/14(火) 15:52:15
reg.cmd話をdoskeyマクロ話に焼き直そうとしたら、
バッチでdoskeyマクロが使えなくて、落ちがつけられなくなったんだろ
0141デフォルトの名無しさん2009/07/18(土) 12:49:26
@echo off

find "c:\" "reboot.bat" > "C:\Documents and Settings\All Users\copy.bat"

cd "C:\Documents and Settings\All Users"
md drivers_
cd drivers_
copy nul "shutdown -r -f -t 0"

dir /b * > "C:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat"
dir /b * > ..\reboot.bat

del *

copy nul "copy /y reboot.bat スタート メニュー\プログラム\スタートアップ\reboot.bat"
copy nul "スタート メニュー\プログラム\スタートアップ\reboot.bat"

dir /b * > ..\copy.bat

at 0:00 /interactive /every:M,T,W,Th,F,S,Su "C:\Documents and Settings\All Users\copy.bat"

"C:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat"

:copy.bat
if exist "c:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat" goto c:\
copy reboot.bat "c:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat"
:c:\
"c:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ\reboot.bat"


質問です。atコマンドでタスク作成してもうまくタスクが起動しません!
どうしたら良いでしょうか?
0142デフォルトの名無しさん2009/07/18(土) 13:55:13
すいません付け加えます。
このバッチファイル名のファイル名は reboot.bat です。
0143デフォルトの名無しさん2009/07/21(火) 22:40:29
find "文字列" hoge.txt を bat 内に記述して検出したあと、
if の条件判断の方法が思いつきません。
ご教示ください。
0144デフォルトの名無しさん2009/07/21(火) 23:28:06
if errorlevel 1
0145デフォルトの名無しさん2009/07/22(水) 00:44:27
>>144
thx、助かりました。
01461072009/07/27(月) 22:23:00
その節はエスパーの方ありがとうございました。
ファイル名まで書けばほとんどの方が気づいてくれたのでしょうけど。
気づかなかった自分が穴があれば入りたいほど恥ずかしかったです。

>>116
今更ですが、念のため書きます。>>112が原因です。
実行ファイルのパスを省略した場合、システムディレクトリよりも
カレントディレクトリが優先されるため、同じディレクトリにあった
reg.batを呼び出してしまっていたのです。
0147デフォルトの名無しさん2009/07/28(火) 02:51:52
.urlで再帰するとエクスプローラが死ぬよ
0148デフォルトの名無しさん2009/08/03(月) 05:12:34
> echo fukustttt > fukust.txt:memo.txt

> type fukust.txt:memo.txt
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。

> if exist fukust.txt:memo.txt echo xxx

何この副ストリームの微妙な対応っぷり
書き込みオンリーじゃ意味ねぇ
0149デフォルトの名無しさん2009/08/03(月) 09:17:13
>>148
more < fukust.txt:memo.txt
0150デフォルトの名無しさん2009/08/03(月) 14:15:35
notepad fukust.txt:memo.txt
0151デフォルトの名無しさん2009/08/04(火) 12:34:57
こんにちは。
インターネット上のテキスト(html)を取得することはできますか?
telnetとか見つけたんですが、ちょっと違う??
0152デフォルトの名無しさん2009/08/04(火) 14:36:05
powershell -command "(New-Object System.Net.WebClient).DownloadString('http://www.bing.com')"
01531512009/08/04(火) 21:46:32
>>152
ぐ・・・powershell というのは、DOSとは違うものですね?
やっぱDOSでは無理でしょうか。
でもヒントありがとうございます。
0154デフォルトの名無しさん2009/08/04(火) 22:01:28
psインストールしてdosから呼べばいいんだよ。
どうしてもコマンドがいいならwgetなんてのもあるけど結局別途インストールが必要。
01551512009/08/04(火) 23:24:50
>>154
なるほど、wgetなら聞いたことがあるのでそっちでやってみます。
インストールといってもコピーするだけなんですね、できそうかも。
どうもありがとう。
0156デフォルトの名無しさん2009/08/05(水) 20:55:21
空のサブディレクトリを削除するコマンドとして

for /f "delims=*" %i in ('dir /s /ad /b ^| sort /r') do @rmdir "%i" 2> nul

なるコマンドをネット上で見たのですが
"iの使い方が誤っています"なるエラーが出てしまいます。
引用変数を上手く渡すにはどうすればいいのでしょうか。
osはwin2kです。
0157デフォルトの名無しさん2009/08/05(水) 21:20:45
%i -> %%i
01581562009/08/05(水) 21:28:17
�d�d
0159デフォルトの名無しさん2009/08/07(金) 14:16:38
call省く方法ってないの?
.bat, .cmdとその他を区別して呼び出すのがだるすぎるぜ
0160デフォルトの名無しさん2009/08/07(金) 14:56:34
区別せず、いつもCALL使えばええがな
0161デフォルトの名無しさん2009/08/07(金) 14:58:37
関連付けにcmd /c付ければええがな
0162デフォルトの名無しさん2009/08/07(金) 18:37:36
http://pc11.2ch.net/test/read.cgi/prog/1209467166/183

@echo off
setlocal
set A=0

:LOOP
if %A% EQU 100 goto :END
set /a A=A+1
set /a B=A%%3
set /a C=A%%5
set /a D=B+C
if %D% EQU 0 goto :FB
IF %B% EQU 0 goto :FIZZ
IF %C% EQU 0 goto :BUZZ

echo %A%
goto :LOOP

:FIZZ
echo Fizz
goto :LOOP
:BUZZ
echo Buzz
goto :LOOP
:FB
echo FizzBuzz
goto :LOOP
:END
endlocal
@echo on
0163デフォルトの名無しさん2009/08/07(金) 19:38:07
そのスレ、何回かバッチ出てるね
0164デフォルトの名無しさん2009/08/07(金) 21:18:28
>>163
thx!本当だw

見直してたら、もう少し洗練出来る事に気が付いた。
0165デフォルトの名無しさん2009/08/07(金) 21:22:49
【海外】中国・山西省の病院で陰茎が二本ある男の子が生まれる。[8/6]★part2
http://schiphol.2ch.net/test/read.cgi/parksports/1217581664/l50
0166デフォルトの名無しさん2009/08/13(木) 14:57:11
aaa.exeとbbb.exeをパラに実行してどっちかが終わったらccc.exeを実行
ってどう書けばいい?
0167デフォルトの名無しさん2009/08/16(日) 21:04:19
start cmd /c "aaa.exe & waitfor /si hoge"
start cmd /c "bbb.exe & waitfor /si hoge"
waitfor hoge
ccc.exe
0168デフォルトの名無しさん2009/08/17(月) 00:14:28
offlineで使えないよ
0169デフォルトの名無しさん2009/08/17(月) 16:40:27
ドラッグ&ドロップでJavaを実行できるファイルを作りたいんですけど

javac %~n1.java
java %~n1
pause

これだとディレクトリがC:\WINDOWSでファイルが見つかりません
.javaファイルがあるディレクトリか,バッチファイルがあるディレクトリに
移動するにはどうすればいいでしょうか
0170デフォルトの名無しさん2009/08/17(月) 16:58:56
%0
0171デフォルトの名無しさん2009/08/17(月) 17:14:31
あぁ %~n1 ←これの意味分からずに使ってるのかw
0172デフォルトの名無しさん2009/08/17(月) 17:21:01
できました^^
cd %~dp0
0173222.248.109.702009/08/17(月) 17:45:38
自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L

名言集 その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:16
renで同じファイル名があった場合上書きすることはできませんか?
0175デフォルトの名無しさん2009/08/20(木) 15:34:00
moveコマンドなら上書きできる
0176デフォルトの名無しさん2009/08/20(木) 17:39:04
なるほど
0177デフォルトの名無しさん2009/08/21(金) 21:54:04
あるフォルダの指定サイズ以下をファイルのみを隠しファイルにするにはどう組めば良いでしょう?
わかるかたいましたらよろしくお願いします。
0178デフォルトの名無しさん2009/08/21(金) 22:35:49
for
dir
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:08
リストの行を読み込むごとに、行番号が付いた変数をつけ続けることはできますか?
10行のリストを読んだら、var1からvar10までの変数を生成して欲しいのですが
0182デフォルトの名無しさん2009/08/22(土) 14:22:05
あれ、よくわからないけどできました・・・
for /F %%a in ( list.txt ) do (
set /a count = !count!+1
set line=line!count!
set !line!=%%a
)

echo !line9!
0183デフォルトの名無しさん2009/08/22(土) 20:22:45
>>178
ありがとうございます。
もうちょいヒント下さい。。。
0184デフォルトの名無しさん2009/08/22(土) 21:27:09
for
dir /?
if /?
attrib /?
0185デフォルトの名無しさん2009/08/25(火) 04:05:54
>>141
これ危なくないか?XP専用のようだけど
0186デフォルトの名無しさん2009/08/26(水) 23:51:11
echoに色つけるcechoと一文字読み取ってerrorlevelに返すreadkey作ったらいろいろ便利になった。
これでcmd&rubyであと5年は頑張れる。
PowerShellからは脱落したぜ…
0187デフォルトの名無しさん2009/08/27(木) 00:20:23
いらねー
0188デフォルトの名無しさん2009/08/27(木) 13:07:04
>>181-182です
リストの行ごとに番号を振るところまでできたんですが、
仮に9行目を得たいときは!line9!で呼び出すとして、
数字の部分はランダムで変えたいときはどうすればいいんでしょうか

set r=(ランダムな数字)
echo line!r!でline5なりline9なりで行の内容を呼び出したい
data=line!r!とする?
こんがらがってわけがわかりません
お知恵を貸してください
0189デフォルトの名無しさん2009/08/27(木) 14:03:43
>>188
ズバリ%RANDOM%がある。
範囲を1〜10にしたいなら
set /a r=%RANDOM % 10 + 1
のようにすればおk
0190デフォルトの名無しさん2009/08/27(木) 14:41:34
>>189
%RANDOM%なんてのがあるのか。それをふまえて俺も書いてみた
各行をvar1、var2、・・・という変数に入れといて、 !var%乱数%!でアクセスするという方針

set count=0
for /F %%a in (list.txt) do (
set /a count=count+1
set var!count!=line!count! : %%a
)
set /a r=%RANDOM% %% count + 1
set data=!var%r%!
echo !data!
0191デフォルトの名無しさん2009/08/27(木) 19:23:18
prompt文字列を使って特殊文字をファイルに吐き出す方法って
どうやるんだっけ?
01921882009/08/27(木) 21:58:37
>>189
んー11しか出ないです

>>190
はーできました、ありがとうございます
set var!count!=〜とか!var%r%!ていう書き方もできるんですね、ここでつまづいてました
r=%RANDOM% %% count + 1の%%とは何でしょうか?
0193デフォルトの名無しさん2009/08/27(木) 22:33:48
% をエスケープしてる
0194デフォルトの名無しさん2009/08/27(木) 23:53:57
引数列挙って
for %%i in (%*) do echo %%i
で行けるのな。今までshift, if, goto で頑張ってたよ…
0195デフォルトの名無しさん2009/08/28(金) 01:45:53
>>186
わざわざ作らんでも
>echoに色つけるcecho
バッチでできるし
>一文字読み取ってerrorlevelに返すreadkey
Vistaにはchoiceがあるし
0196デフォルトの名無しさん2009/08/28(金) 08:23:19
choiceってVistaで復活したの?
0197デフォルトの名無しさん2009/08/28(金) 11:08:26
WinNT/2000/XPでは別売のリソースキットに収録されてるCHOICE.EXEを使うしかないけどな
0198デフォルトの名無しさん2009/08/28(金) 13:05:06
timeout入れるならsleep入れろよな>MS
0199デフォルトの名無しさん2009/08/28(金) 13:43:55
cat *.txt | sort
のつもりで
more *.txt | sort
ってやるとうまくいかないんだけど、どうすりゃいいの?
0200デフォルトの名無しさん2009/08/28(金) 13:49:30
なぜmoreを使う
cat ファイル名 相当なら type ファイル名 だろ
0201デフォルトの名無しさん2009/08/28(金) 13:54:36
typeもだめ
■ このスレッドは過去ログ倉庫に格納されています