2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

バッチファイルプログラミング 2.bat

1 :デフォルトの名無しさん:05/01/05 16:58:09
前スレ
バッチファイルプログラミング質問スレ
http://pc5.2ch.net/test/read.cgi/tech/1040614686/

関連スレ
初心者〜管理者まで必読!コマンドライン(DOS Pt.3)
http://pc5.2ch.net/test/read.cgi/win/1062775949/
MS-DOS・Win3.1総合スレッド
http://pc5.2ch.net/test/read.cgi/win/1025462258/

2 :デフォルトの名無しさん:05/01/05 16:58:40
2

3 :デフォルトの名無しさん:05/01/05 17:11:36
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]

[[/S] [/C | /K] 文字列]

/C "文字列" に指定されたコマンドを実行した後、終了します。
/K "文字列" に指定されたコマンドを実行しますが、終了しません。
/S /C または /K の後の文字列の扱いを変更します (以下の説明を参照してくだ
さい)。
/Q エコーをオフにします。
/D レジストリからの AutoRun コマンドの実行を無効にします
(下記を参照してください)。
/A 内部コマンドの出力結果を ANSI でパイプまたはファイルに出力します。
/U 内部コマンドの出力結果を Unicode でパイプまたはファイルに出力します。
/T:fg 前景色および背景色を設定します (詳細は COLOR /? を参照してください)。
/E:ON コマンド拡張機能を有効にします (以下の説明を参照してください)。
/E:OFF コマンド拡張機能を無効にします (以下の説明を参照してください)。
/F:ON ファイル名およびディレクトリ名補完文字を有効にします
(以下の説明を参照してください)。
/F:OFF ファイルおよびディレクトリ名補完文字を無効にします
(以下の説明を参照してください)。
/V:ON 区切り文字として c を使って遅延環境変数の展開を有効にします。
たとえば、 /V:ON とすると、!var! は、実行時に変数 var を展開します。
var 構文は、FOR ループ中とは違い、入力時に変数を展開します。
/V:OFF 遅延環境展開を無効にします。

4 :デフォルトの名無しさん:05/01/05 17:12:05
コマンド セパレータ '&&' で区切られた複数のコマンドが引用符で囲まれている場合
は、"文字列" として指定されます。また互換性の理由から /X と /E:ON、/Y と
/E:OFF、および /R と /C は同じです。そのほかのスイッチは無視されます。

/C または /K が指定されている場合、スイッチの後の残りのコマンド ラインがコマ
ンド ラインとして処理されます。次のルールが引用符 (") の処理に使われます:

1. 次のすべての条件に一致する場合、コマンド ラインの引用符が有効になり
ます:

- /S スイッチがない
- 引用符が 1 組ある
- 引用符の中に特殊文字がない
(特殊文字は &<>()@^| です)
- 引用符の中に 1 つ以上のスペースがある
- 引用符の中の文字列が、実行可能ファイルの名前である

2. 最初の文字が引用符であるにも関わらず上の条件に一致しない場合は、最初
の引用符とコマンド ラインの最後の引用符が削除され、 最後の引用符のあ
とのテキストが有効になります。

5 :デフォルトの名無しさん:05/01/05 17:12:38
コマンド ラインで /D が指定されなかった場合は、CMD.EXE の開始時に次の REG_SZ
または REG_EXPAND_SZ レジストリ変数が検索されます。次のレジストリ変数の両方ま
たはどちらかが存在する場合、それらを最初に実行します。

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

既定では、コマンド拡張機能は有効です。拡張機能を無効にして CMD.EXE を起動する
には、/E:OFF スイッチを使用します。コンピュータまたはユーザー ログオン セッ
ションで起動される CMD.EXE コマンドすべてに対して拡張機能を有効または無効に
するには、 REGEDIT32.EXE を使ってレジストリにある次の REG_DWORD 値を設定しま
す。
コンピュータに対しては、

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions

に 0x1 を設定すると有効になり、0x0 を設定すると無効になります。
ログオン セッションに対しては、

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions

に 0x1 を設定すると有効になり、 0x0 を設定すると無効になります。
ユーザー固有の設定は、コンピュータの設定より優先されます。
コマンド ライン スイッチは、レジストリの設定より優先されます。

6 :デフォルトの名無しさん:05/01/05 17:13:10
コマンド拡張機能には、次のコマンドに対する変更または追加が含まれています。

DEL または ERASE
COLOR
CD または CHDIR
MD または MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (外部コマンドの起動の変更を含みます)
ASSOC
FTYPE

詳細は、コマンド名の後に /? と入力すると表示されるヘルプを参照してください。

7 :デフォルトの名無しさん:05/01/05 17:13:41
既定では、遅延環境変数の展開は有効ではありません。遅延環境変数の展開を有効また
は無効にして CMD.EXE を起動するには、/V:ON または /V:OFF スイッチを使います。
コンピュータまたはログオン セッションで起動される CMD.EXE コマンドすべてに対し
て補完を有効または無効にするには、REGEDIT32.EXE を使ってレジストリにある次の
REG_DWORD 値を設定します。
コンピュータに対しては、

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion

に 0x1 を設定すると有効になり、0x0 を設定すると無効になります。
ユーザー ログオン セッションに対しては、

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion

に 0x1 を設定すると有効になり、0x0 を設定すると無効になります。
ユーザー固有の設定は、コンピュータの設定より優先されます。
コマンド ライン スイッチは、レジストリの設定より優先されます。

遅延環境変数の展開が有効になっている場合、感嘆符を使うと実行時に環境変数の
値を置き換えることができます。

8 :デフォルトの名無しさん:05/01/05 17:14:28
既定では、ファイルおよびディレクトリ名補完機能は有効ではありません。ファイル
名の補完機能を有効または無効にして CMD.EXE を起動するには、/F:ON または /F:OFF
スイッチを使います。コンピュータまたはログオン セッションで起動されるCMD.EXE
コマンドすべてに対して補完機能を有効または無効にするには、REGEDIT32.EXE を使っ
てレジストリにある次の REG_DWORD 値を設定します。
コンピュータに対しては、

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar

に特定の機能に使う 16 進の制御文字を設定します (例 0x4 は Ctrl-D、0x6 は
Ctrl-F)。
ユーザー ログオン セッションに対しては、

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar

に特定の機能に使う 16 進の制御文字を指定します (例: 0x4 は Ctrl-D、0x6 は
Ctrl-F)。
ユーザー固有の設定は、コンピュータの設定より優先されます。
コマンド ライン スイッチは、レジストリの設定より優先されます。

9 :デフォルトの名無しさん:05/01/05 17:14:53
/F:ON スイッチで補完機能を有効にした場合、2 つの制御文字 (Ctrl-D はディレクト
リ名補完機能、Ctrl-F はファイル名補完機能) が使用されます。
レジストリで特定の補完文字を無効にするには、制御文字として有効でないスペース
(0x20) の値を使用します。

2 つの制御文字のどちらかを入力すると、補完機能が起動されます。パスが存在しな
い場合、プログラムはカーソルの左側のパス文字列にワイルド カード文字を付加し、
一致するパスの一覧を作成します。その後一致する最初のパスを表示します。
パスが一致しない場合、音を鳴らします。同じ制御文字を押し続けると一致するパス
の一覧を順に表示します。Shift キーを押しながら制御文字を押すと一覧を逆回り表
示します。行を編集して制御文字をもう一度押すと、保存されていた一致したパスの
一覧は破棄され、新しい一覧が作成されます。ファイル名補完機能とディレクトリ名
補完機能を切り替えたときも同様です。2 つの制御文字の違いは、ディレクトリ補完
文字がディレクトリ名だけを照合するのに対し、ファイル名補完文字はファイルと
ディレクトリ名の両方を照合する点です。ファイル補完機能が内部ディレクトリコマ
ンド (CD、MD または RD) に使用された場合、ディレクトリ補完機能と見なされま
す。

一致するパスの前後に引用符を付けると、補完機能コードでスペースまたはほかの特
別な文字を含むファイル名が使用できるようになります。また、行の前に戻って補完
機能を起動した場合、補完機能が呼び出された時点でカーソルの右側にあったテキス
トは破棄されます。

10 :デフォルトの名無しさん:05/01/05 17:46:47
>>1
質問するときはWindowsのバージョンを教えてね

11 :デフォルトの名無しさん:05/01/05 23:19:53
ヘルプも読んでおこうね。

コマンド ライン リファレンス
http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/ja-jp/ntcmds.asp

コマンド シェルの概要
http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/ja-jp/ntcmds_shelloverview.asp

バッチ ファイルを使用する
http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/ja-jp/batch.asp


12 :デフォルトの名無しさん:05/01/12 00:23:00
現在の日付をyyyy-mm-ddという書式で取得したいのですが
どのようにすればよろしいでしょうか?
環境変数%DATE%だと、yyyy/mm/ddという書式になってしまいます。

13 :デフォルトの名無しさん:05/01/12 00:43:29
>>12
set /?

14 :デフォルトの名無しさん:05/01/12 01:50:25
>>13
ありがとうございます。
%DATE:/=-%
で出来ました。

15 :301:05/01/13 12:28:35
毎日0:30に昨日分のログをメール送信するバッチを組んで使っています。

rem @echo off
set e-mail=xxxxxx@docomo.ne.jp
set today=%date:~0,4%%date:~5,2%%date:~8,2%
set /a today=%today%-1
set filename=\\server-1\share\log\todayslog\%today%.log

blatj %filename% -i -t %e-mail% -s %today%_todayslog

この方法ですとyyyymmdd形式に整形し、デクリメントしているだけなので、
月初や年始はどうしてもおかしくなります。
毎日23:30に日付をtoday.txtというファイルに格納する事を思いつきましたが、
逆にファイルから変数に入力する方法が分かりませんでした。
日付の概念で昨日を算出するか、ファイルから変数への入力方法を探しています。

16 :デフォルトの名無しさん:05/01/13 12:48:53
>>15
バッチファイルを生成して、そいつをcallしたら?
後で暇見て試してみるか。

17 :デフォルトの名無しさん:05/01/13 14:22:56
>>15
日付の概念で昨日を算出した方がスマートな気がするが、
まあ簡単なファイルを環境変数に代入する例として書いておくか。

for /F %%i in (today.txt) do echo %%i

これで、today.txtの内容が環境変数iに代入される。
正確にはtoday.txtの1行目がiに代入されechoされ、
次に2行目がiに代入されechoされ・・・と
全行に対してecho(doの後のコマンド)が実行される。

バッチファイルではなく、コマンドラインから実行するときは%%でなく%にすること

18 :17:05/01/13 14:27:44
>>15
ちょっと探してみたらあったので報告。

バッチで前日の日付を求める
http://homepage1.nifty.com/jak/batch/date.html

19 :デフォルトの名無しさん:05/01/13 15:40:46
質問させてください。

現在とある部屋にある数台のPCにpingを打ち、replyの帰ってきた端末にのみ
net sendでメッセージを送る事を考えています。

と言うのも最初からnet sendで全台にメッセージを送ると電源が入っていない
端末が途中にあると次の端末に送るまでに15秒ほど止まってしまうからです。
そこで「ping -n 1 -w 50 192.168.0.11」を全端末分作成するか「for /L %%f
in (11,1,45) do ping -n 1 -w 50 192.168.0.%%f」を実行してreplyのあった
ものだけにnet sendを実行したいのですが、方法が分かりません。

誰か分かる人がいれば教えて下さい。お願いします。

20 :デフォルトの名無しさん:05/01/13 19:22:24
>>19
こんなもんでヒントになるかな。

@echo off
set PING=NG
for /F %%i in ('ping 127.0.0.1') do if %%i==Reply set PING=OK
echo %PING%

21 :デフォルトの名無しさん:05/01/13 19:24:38
早く.NET時代の新シェルできないかな・・・

22 :デフォルトの名無しさん:05/01/13 19:39:53
>>11 のふたつめ

Command1 && Command2

&& 記号の前にあるコマンドが正常に終了した場合にのみ、この記号の後の
コマンドを実行するために使います。1 つ目のコマンドが実行され、そのコマン
ドが正常に終了した場合にのみ、2 つ目のコマンドが実行されます。


23 :デフォルトの名無しさん:05/01/13 19:50:44
pingで反応が無くてもエラーレベルは0なので&&は使えませんが何か?

24 :デフォルトの名無しさん:05/01/13 20:02:46
> ping 1.2.3.4 && echo succ || echo fail

Pinging 1.2.3.4 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 1.2.3.4:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
fail


25 :デフォルトの名無しさん:05/01/13 20:09:10
>>23
うちのは 1 になっちゃうよ。

26 :デフォルトの名無しさん:05/01/13 20:10:03
おかしいなぁ。うちではこう表示されるけどなぁw

> ping 1.2.3.4 && echo succ || echo fail
Pinging 1.2.3.4 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 1.2.3.4:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
succ

27 :デフォルトの名無しさん:05/01/13 20:17:33
>>24 = winXP
>>26 = win2K

28 :デフォルトの名無しさん:05/01/13 20:17:48
OSは?
>24はXPProSP2

29 :28:05/01/13 20:18:15
かぶった・・・

30 :19:05/01/13 21:38:58
何かちょっと見ない間にレスが!半分諦めかけてたので嬉しいです。
今は帰宅しているので明日にでも頂いたヒントを元に色々とやってみます。
有難うございます。

ただ>>20がイマイチ理解できない自分が情けないorz
('ping 127.0.0.1')にあて先のIPを入れるって理解で良いのでしょうか?
ヘボですみません

31 :301:05/01/14 11:49:46
>>15で質問したものです。

>>17
的確な回答有り難うございます。
FORは確かに使えますね。

>>18
ジャストミートな資料の提示、有り難うございます。
まさに求めていたものですが、
やはりというか日付の処理は全部記述していますね・・・。
DOS派なのでバッチなんですが、こういう時はwshに心動かされますね。

両方試行錯誤してみたいと思います。
形になったらまた報告しに来ますねー。

32 :301:05/01/14 13:55:42
>>15>>31です。

@echo off
rem :前処理
d:
cd \scripts

rem :送信先設定
set e-mail=xxxxxx@docomo.ne.jp

rem :日付取得&ログファイル名生成
set today=%DATE%
call yesterday.bat %today%
set filename=%yesterday%.log

rem :送信作業
smail -d -i -hsmtp.com -f"report <report@e-mail.com>" -s%yesterday%_report -F%filename% %e-mail% > .\log\send_%yesterday%.log

>>17さんの意見を尊重し、概念で日付を取得する方を選び、こんな感じになりました。
ありがとうございました。

33 :デフォルトの名無しさん:05/01/16 14:04:01
xcopyでC:\hogeというディレクトリの中身を丸々コピーする際に
C:\hoge\fugaというディレクトリだけを除きたいのですが
どのようにすればよいでしょうか?


xcopyの/excludeでコピーしないファイルを指定することは
できますが、コピーしないディレクトリを指定することって
できますか?

34 :デフォルトの名無しさん:05/01/16 14:26:22
ファイルと同じようにディレクトリを指定すれば普通にできる。

つーか、どうやったらできなかったんだ?

35 :デフォルトの名無しさん:05/01/17 22:33:45
バッチファイルを右クリックして編集をクリックした時パスワードを要求するソフトありますか?

36 :デフォルトの名無しさん:05/01/17 22:37:44
NTFSの暗号化使え

37 :35:05/01/17 22:45:37
>>36
OSはXP
でも奴はフロッピーの中に入ってる。
つまりフロッピーの中のバッチファイルのソースを作業員に見せたくない。

38 :デフォルトの名無しさん:05/01/18 23:49:32
>>37
大量のコメントで迷彩掛けるとか。
さもなくば、アーカイバーの自己展開機能で実行させるとか。

39 :デフォルトの名無しさん:05/01/19 17:34:52
Winntでipアドレスを変更するバッチファイルを作りたいんだけど
Win2000のnetshみたいなのはありますか?

40 :デフォルトの名無しさん:05/01/21 04:41:49
タスクが有効か無効かを自動でチェックする仕組みってなんかありますか?
今は、手作業で
・デスクトップにつくってあるタスクフォルダショートカットをダブルクリック
・目視確認
なんすけど、自動化できるんじゃねーのかなーーと思って。


41 :デフォルトの名無しさん:05/01/21 13:42:25
ps -efW | find "Explorer" || Explorer

42 :デフォルトの名無しさん:05/01/21 22:37:48
echo A>test.txt
echo B>>test.txt
echo C>>test.txt

と書いたバッチファイルを運用して一ヶ月程したら
test.txtの中身が
A
C
B
C
となってしまいました。今までは正常に
A
B
C
となっていたのですが、原因としてありそうなことがありましたら教えて下さい。

43 :デフォルトの名無しさん:05/01/21 23:11:29
バッチを別プロセスで同時に走らせたらそうなるかもな

44 :デフォルトの名無しさん:05/01/21 23:29:15
>>43
なるほど。思い当たる節があるので調べてみます。
ありがとうございました。

45 :デフォルトの名無しさん:05/01/22 03:43:22
000.txt〜999.txtまで1000個のファイルを格納したフォルダをD&Dすると
ある実行ファイル(\hoge.exe)に対してファイルパスを引数として10個くらいづつ振り分けて与えるようなbatって可能ですか?
コマンドラインの文字数制限で1度のD&Dで1000個(実際は数百〜3000くらい)のファイルを処理するのは無理なので

\hoge.exe 000.txtのパス 001.txtのパス ・・・・・009.txtのパス
\hoge.exe 010.txtのパス 011.txtのパス ・・・・・019.txtのパス
 :
\hoge.exe 990.txtのパス 991.txtのパス ・・・・・999.txtのパス

といった感じで処理を振り分けたいのです。
今はファイルリストを作って、そこからテキスト置換でその都度batを作成していますが
非常に手間なので、どなたか解る方おりましたらご教授くださいませ。
フォルダをD&Dしたら中のファイルを対象に、複数ファイルをD&Dしたらそのファイルを対象に、という感じに出来れば更に幸せになれそうです。

46 :デフォルトの名無しさん:05/01/22 05:38:10
>>45
%1がフォルダかファイルかを判別して分岐
ファイルなら
\hoge.exe %*
フォルダなら
for /f "usebackq delims= skip=4" %%i IN (`dir/w/a-d %1 `) DO \hoge %%i

ファイル名にスペース等が含まれていないことが前提
最後2 行がエラーになる
渡せる引数の数はファイル名の文字数によって変わる

47 :デフォルトの名無しさん:05/01/22 05:43:27
>>40の件についてですが・・・

http://67.49.101.245/
のSchAgent.zipのTaskScheduler.dllを入れて、

Set taskA = CreateObject("Scheduler.SchAgent")
'task.TargetComputer = "\\server"
taskA.refresh

For Each tsk In taskA
  WScript.Echo tsk.Name, tsk.Status
Next

をかますことでできました。
でももっと簡単(というか、MS製ライブラリ)でできねーもんかね。

48 :デフォルトの名無しさん:05/01/22 06:05:31
フォルダD&Dでフォルダ内の全ファイル

@echo off
(%~d1) && (cd %1)
for %%f in (*) do echo %%f
pause



49 :45:05/01/22 06:38:10
>46
どうもです。
> ファイルなら
> \hoge.exe %*
これをやると「渡せる引数の数はファイル名の文字数によって変わる」という制限があるので
それを解消するのが目的です。


>48
どうもです。フォルダの場合はこれで完璧です。

ファイルの場合とフォルダの場合の条件分岐はなんとか自分で書くので
複数のファイルがD&Dされた場合も>48のように処理する方法が解る方、どうかアドバイスよろしくです。

50 :46:05/01/22 09:33:11
>>49
引数に複数のファイルを渡したいわけじゃないのか。

@echo off
if not exist "%~1" echo D^&Dしたファイルとフォルダ以下のファイル名を出力&pause>nul&goto :eof
:始
cd/d %1 2>nul
if ERRORLEVEL 1 goto ファイル else goto フォルダ
:フォルダ
for /r %%a in (*) do echo "%%~fa"
goto 終
:ファイル
echo "%~f1"
goto 終
:終
if exist "%~2" shift & goto 始
pause>nul

51 :デフォルトの名無しさん:05/01/22 10:14:11
>50
どうもです。
で、フォルダの場合はOKなんだけど、ファイルの場合がダメ。
でよく考えたらbatに大量のファイルをD&Dした時点でコマンド文字数オーバーしてるんだから
batの内部処理をどう振り分けようと無駄だということに気付いた。
10個程度のファイルをD&Dすれば正常に動作するので46氏の記述には全く問題は無いと思う。

1ファイル当たり半角英数20文字程度のパスを持つファイルを3000個くらい一気にD&Dするのは
やっぱり無理なんだろうな。フォルダ内の一部のファイルのみを処理する場合は
別フォルダに振り分けてからフォルダごとD&Dで対処するようにします。
46氏、48氏にはお手数をお掛けしました。フォルダの処理をする方は有効に活用させていただきます。

52 :デフォルトの名無しさん:05/01/22 17:44:45
CHOICEが見つかりません!

53 :デフォルトの名無しさん:05/01/22 19:48:32
cmdの見てくれに飽きた人へ
http://www.geocities.jp/cygwin_ck/
ck.exe -e cmd.exe

54 :42:05/01/23 23:09:24
どうもサーバーにリモートログインしているとサーバー側でのバッチと
リモート側でのバッチが同時に実行されるようです(確証はありませんが)。
あるプロセスが実行中は別プロセスが実行できないような方法ありませんか?

55 :デフォルトの名無しさん:05/01/24 06:44:21
XPのcmdがなぜか英語キーボード扱いになってしまってしまったのですがどうやって直せばいいんでしょうか?
cmd以外は普通に入力できているんですが。

56 :デフォルトの名無しさん:05/01/25 13:19:13
Win98で起動時にrouteを通すべく、スタートアップに拡張子batで保存したのですが、
実行時にショートカットが作られてしまうようで、2回動いてしまいます。
すっきり動かすにはどうすればよいのでしょう?

57 :デフォルトの名無しさん:05/01/25 15:08:21
>>56
バッチは他に置けば?

58 :デフォルトの名無しさん:05/01/26 00:05:36
ログを大量にUPするバッチをつくりたいのですが
3秒間隔とか時間差を行うときのバッチの処理がわかりません
どういう感じで処理するかこのあたりだけおしえてください
できれば、ソースをかいてくださいおねがいします

59 :デフォルトの名無しさん:05/01/26 20:12:49
sleep 3000

60 :デフォルトの名無しさん:05/01/28 03:37:46
これは既出?
BATCPをXPで使うとバッチファイルの内容によっては挙動がおかしかったけど、
これは問題なさそう。

Bat2Hide
http://homepage3.nifty.com/rcworks/bat2hide.htm

61 :デフォルトの名無しさん:05/01/28 06:10:46
バッチ・ファイル中で日付をファイル名に使用する
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html

62 :デフォルトの名無しさん:05/01/28 09:46:22
てか超ガイシュツじゃね?

63 :デフォルトの名無しさん:05/01/28 10:01:10
下記の様な簡単なbatファイルを作成したのですが、batファイルの置き場所によってうまく
動作したり、しなかったりしてしまいます。

for /L %%f in (11,1,50) do ping -n 1 -w 50 192.168.0.%%f

OSはXPです。c:\直下に配置すると大抵はうまく動作するのですが、他の場所では正常に動作
せずにループしているような状態に陥り、延々とこのコマンドが流れてしまいます。
また良く分からないのですがc:\直下でも正常動作せずに同じようにループに入ってしまう事
もあります。
何故なのか調べているのですが、分かりません。コマンドの書き方が悪いのでしょうか?

>>60のも試してみましたがダメでした。

64 :デフォルトの名無しさん:05/01/28 12:25:08
>>63
ping.bat ってオチは?

65 :64:05/01/28 14:46:11
>>63
恥ずかしながら同ディレクトリにping.batってのをおいてました。有難うございます。

66 :デフォルトの名無しさん:05/01/31 00:09:38
バッチで使えるお勧めの圧縮ソフト教えてよ

67 :デフォルトの名無しさん:05/01/31 00:13:29
>>66
diet

68 :66:05/01/31 00:34:42
Thanks.

69 :デフォルトの名無しさん:05/01/31 01:50:34
cabarc

70 :デフォルトの名無しさん:05/02/01 17:19:00
コマンドfooが呼び出し可能かどうかで分岐することって出来ますか?
実行して実行できなかったら、ではなく前もって知りたいんですが。

71 :デフォルトの名無しさん:05/02/01 17:29:16
パスにファイルが存在するかチェックなら可

72 :デフォルトの名無しさん:05/02/01 17:52:24
pathとpathextをばらしてwhich自作ですか・・・

%path%を ; で区切るのってどうやるんでしょう。
for /f "delims=;" %%q in (foo;bar bar;baz) do (
だとfooが見つかりませんというエラーになってしまいます。

73 :46:05/02/01 18:36:55
http://www.vector.co.jp/soft/win95/util/se302883.html
のWhich.CMDを参考にするといいかも

74 :デフォルトの名無しさん:05/02/04 22:14:36
バッチからJavaプログラムを起動し、
戻ってきたERRORLEVELの値をechoで表示させています。
(正常なら0、異常なら-1が戻る)
普段は普通に0や-1が表示されるのですが、
たまにプログラムが突然終了して、
ERRORLEVELに「143」というわけのわからない値が入ってくるので困ってます。

%ERRORLEVEL%の値からエラー内容を知ることはできますか?
(もしスレ違いなら適切なスレへ誘導していただけると嬉しいです)


75 :デフォルトの名無しさん:05/02/04 22:22:22
>>74
それはそのJavaのプログラムのソース次第だろ。
ソースを143で検索するかそのプログラムリリースしたところに聞くしか。

76 :デフォルトの名無しさん:05/02/05 03:01:33
誰かバッチファイルで面白いアドベンチャーとか作れよ。

77 :デフォルトの名無しさん:05/02/05 03:38:59
中身が丸見えじゃないか

78 :74:05/02/05 09:40:14
>>75
ソース次第ですか。ありがとうございました。

79 :デフォルトの名無しさん:05/02/05 21:38:51
>>76-77
なんかワラタw

80 :デフォルトの名無しさん:05/02/08 11:44:41
あるbatファイルをatコマンドを利用して定期的に稼動させています。
定期的とは例えば毎週月曜日の12:00,火曜日の11:00などです。
しかしこれらの指定する時間が多々変更しなければならない事があり、
その度にタスクを変更するのが面倒と言うか全然PCの分からない人に
でも変更可能なようにしたいと考えています。

で、csvなどでスケジュールを指定して表を読み込ませて、その時間に
batファイルを動かせるようにしたいのですが、良い方法ってあるでしょ
うか?別の方法でも良いのですが、視覚的に分かりやすいものを、と
考えています。

何か漠然とした質問ですみません
ヒントだけでもいただけると助かります。

81 :デフォルトの名無しさん:05/02/08 12:30:30
cron使え

82 :デフォルトの名無しさん:05/02/08 12:35:48
>>80
Windows標準のタスク機能を使えばいい

83 :デフォルトの名無しさん:05/02/08 12:50:54
>>80
for /f "delims=, tokens=1,2,3,4,〜" %a in (〜.csv) do at 〜 %a 〜 %b 〜

84 :80:05/02/08 13:52:56
皆さまレス有難うございます

>>81
cronってWindowsにもありましたっけ?

>>82
タスクを手で作り変えるには量が多くてミスの可能性が高そうなので他の方法で考えています。

>>83
何か使った事のないコマンドがあるので良く分からないのですが、調べて検討します。
有難うございます。

85 :80:05/02/08 15:36:31
連続投稿すみません。
教えて頂いたのを元に下記のようなbatを作ってみましたがうまく動作しません。

for /f "delims=, tokens=1,2,3," %%a in (test.csv)
do if %%a==○ && at 11:25 /next:m "C:\aaa.bat"
if %%b==○ && at 11:27 /next:m "C:\bbb.bat"
if %%c==○ && at 11:29 /next:m "C:\ccc.bat"

test.csvの中身は下記のようなものです。
○,○,○,
,○,○,
○,,○,

使い方が間違っているのでしょうか?

最終的なイメージとしては下記を考えています。
,1,2,3,4,5,6,7,8,
月,○,○,○,○,○,○,○,○,
火,○,○,,○,,○,,○,
水,,,,○,,○,○,,
木,○,,,,,,,○,
金,,○,,○,○,,,○,

○のある箇所のみatコマンドを入力したく思っています。
これって可能でしょうか?それともバッチファイルでは難しいのでしょうか?
長々と書いてすみませんがヒント頂けないでしょうか?お願いします。

86 :デフォルトの名無しさん:05/02/08 16:04:27
for /f "delims=, tokens=1,2,3,4,5,6,7,8,9" %%i in (test.csv) do (
echo %%i, %%j,%%k, %%l, %%m, %%n, %%o, %%p, %%q
)


87 :80:05/02/08 16:24:55
私の書き方がまずかったみたいですね。すみません。
○のついた曜日の時間のみにatコマンドでbatをタスクスケジューラーに入れた
いと思っているのです。
echoで表示させる事はできるのですが、%%a等に○が入った時に、他のbatを呼び出して
それぞれのコマンドを実行させる事ができないのです。
また空白の箇所(○が入っていない)箇所は無視されて左にシフトされてしまう事
にも悩んでいます。例えば「,,,,,○,○」のcsvファイルを読み込ませると
○○が左詰になってしまいます。
分かりにくい文章ですみませんがお願いします。

88 :デフォルトの名無しさん:05/02/09 00:59:22
86です。私も読解力不足でした。
■お悩み1
>%%a等に○が入った時に、他のbatを呼び出してそれぞれのコマンドを実行させる事ができない
これは「&&」が不要です。
 if %%a == ○ at 11:25 /next:m "C:\aaa.bat"
だとうまくATコマンドが実行されます。
■お悩み2
>空白の箇所(○が入っていない)箇所は無視されて左にシフトされてしまう
う〜ん。これは以下のようにカンマの間にスペースなどを入れて逃げるしかないような。

89 :デフォルトの名無しさん:05/02/09 01:02:03
続き
test.csvの内容
-------------------------
,1,2,3,4,5,6,7,8
月, , , ,○, ,○, ,○
火,○, ,○, ,○, ,○, 
水, ,○, ,○, ,○, ,○
木,○, ,○, ,○, ,○, 
金, ,○, ,○, ,○, ,○
土,○, ,○, ,○, ,○, 
日, ,○, ,○, ,○, ,○
-------------------------

ご参考程度にバッチのコードも載せておきますね。

@echo off

for /f "delims=, tokens=2-9" %%a in (test.csv) do (
if %%a == ○ at 11:25 /next:m "C:\aaa.bat"
if %%b == ○ at 11:27 /next:m "C:\bbb.bat"
if %%c == ○ at 11:29 /next:m "C:\ccc.bat"
if %%d == ○ at 11:31 /next:m "C:\ddd.bat"
if %%e == ○ at 11:33 /next:m "C:\eee.bat"
if %%f == ○ at 11:35 /next:m "C:\fff.bat"
if %%g == ○ at 11:37 /next:m "C:\ggg.bat"
if %%h == ○ at 11:39 /next:m "C:\hhh.bat"
)


90 :80:05/02/09 09:17:15
>>86==>>88-89
レス有難うございます。早速確認してみます。感謝です

91 :デフォルトの名無しさん:05/02/10 01:22:21
zshでいう
mkdir data{0000..0020}
のようなことをしたいのですが
for /L %i in (1,1,20) do set num=000%i & mkdir data%num:~-4%
ではnumが最初に読み込まれるだけで以降更新してくれません

なんかいい方法ないですか?

92 :デフォルトの名無しさん:05/02/10 01:35:29
>>91
>>7
setlocal

93 :デフォルトの名無しさん:05/02/10 04:50:19
こんな感じかな。
-------------------------------
@echo off
setlocal enabledelayedexpansion
for /L %%i in (1,1,20) do (
 set num=000%%i
 mkdir data!num:~-4!
)
endlocal
-------------------------------


94 :デフォルトの名無しさん:05/02/11 22:54:24
>>92,93
多謝
まだまだ無知であることを痛感しました

95 :デフォルトの名無しさん:05/02/12 00:22:58
バッチで取得した値を、クリップボードに格納するにはどうすればいいのですか?
不可能ではないらしいのですが、ググってもさっぱりわかりません。
博識なお方、例として%date%をそのままクリップボードに送る方法の解説をお願いします。

96 :デフォルトの名無しさん:05/02/12 00:31:10
たぶん無理。wshで無理やりIEコンポ使ったやり方はあるけど。
お前ら、wsh使ってますか? Part4
http://pc5.2ch.net/test/read.cgi/win/1100489339/295

cygwinなら > /dev/clipboardでできたりする。

97 :デフォルトの名無しさん:05/02/12 00:43:11
>>95
http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/ja-jp/clip.asp
\176,000

98 :デフォルトの名無しさん:05/02/13 19:24:47
階層がぐちゃぐちゃなフォルダがたくさんあるので、ファイル整理をしています。

全部のフォルダを1階層(フォルダの中にフォルダがない状態)にするための
バッチを作っています。

C:\新しいフォルダ\新しいフォルダ\A.A , B.B...
C:\新しいフォルダ\A.A , B.B...
※フォルダ名に一貫性はありません。

move *.* ../ で2階層目のフォルダの中身を上に送れますが、送った後、
空になったゴミフォルダ C:\新しいフォルダ\新しいフォルダ\
を自動的に削除するにはどうしたらいいでしょうか?

RDはワイルドカードが効かないので、ゴミフォルダだけ消せません。

99 :デフォルトの名無しさん:05/02/13 19:44:45
>>98
消したいディレクトリを全て適当なディレクトリに移動して、そのディレクトリを階層ごと削除すればいいかと。
xcopy /e *.* foo
rmdir /s foo
って感じかな?
#手元に環境がないので適当に調べてくれ。

100 :デフォルトの名無しさん:05/02/13 19:55:06
`dir /b`を取り込んで出力が0行なら空

101 :デフォルトの名無しさん:05/02/13 20:08:59
>>100 こうですか?
for /F %e in ('dir /b') do rmdir %e /s /q

102 :99:05/02/13 20:42:50
役に立たなかったらしい。んじゃあとはしらね。

103 :デフォルトの名無しさん:05/02/13 21:18:28
>>102 なんとかやってみます。 ありがとう

104 :デフォルトの名無しさん:05/02/13 22:33:42
for /f "usebackq delims=" %%f in (`dir /b test`) do goto notempty
echo empty!
:notempty

105 :デフォルトの名無しさん:05/02/14 11:18:34
sambaの共有フォルダにアクセスして自動的にファイルを取得するバッチを作ろうと思ってるんですが
パスワードが設定されているので毎回手入力しないといけません。入力せずに自動的にID,PASSを入れ
る事のできる方法ってありますか?

106 :デフォルトの名無しさん:05/02/14 12:59:09
>>105
net use

107 :デフォルトの名無しさん:05/02/14 18:57:06
>>106

たとえば共有したい場所を\\192.168.0.2のtempフォルダだととしたら

net use Q: \\192.168.0.2\temp

とするとパスワードを求められますが、ここの入力も自動化したいのです。

108 :デフォルトの名無しさん:05/02/14 19:46:44
>>107
net use

109 :デフォルトの名無しさん:05/02/14 20:28:46
>>107
ヘルプを見れ

110 :デフォルトの名無しさん:05/02/17 14:25:13
単発で実行するとき窓開かないようには出来ないの?

111 :デフォルトの名無しさん:05/02/17 14:54:15
>>110
バッチファイルのプロパティで「実行時の大きさ」を「最小化」にする。

112 :デフォルトの名無しさん:05/02/17 14:57:32
最小化だとタスクバーにでちゃうから
とにかく窓作らないようには出来ないの?

113 :デフォルトの名無しさん:05/02/17 15:09:47
>>112
cmd.exeを単独で使う限り、無理。

114 :デフォルトの名無しさん:05/02/18 00:23:45
cmd.exe使いにくいんですが、それに代わるソフトってないんでしょうか?

115 :デフォルトの名無しさん:05/02/18 00:31:15
cygwin&ck

116 :デフォルトの名無しさん:05/02/18 08:58:28
>>114
nyacus

117 :114:05/02/18 21:27:48
>>115
ダウンロードしようと思ったら40Mもあったのでやめました。

>>116
cmd.exeとの違いがよくわかりません。

cmd.exeは任意のフォントが使えないのと、ウィンドウサイズ変えるのが
面倒なのと、自動保管が糞なのと・・・・
DOSやめます。

118 :デフォルトの名無しさん:05/02/18 21:45:09
プログラミングと関係ないDOSの話なら >>1

119 :デフォルトの名無しさん:05/02/18 21:47:02
バッチファイルをプログラミングと呼ぶのはなんとなく気恥ずかしい

120 :デフォルトの名無しさん:05/02/18 23:34:14
Windows XPなんですが、バッチファイルを実行したらDOS窓は自動的に
閉じますよね。
これを閉じないようにしたいんですけどどうやるんですか?

121 :デフォルトの名無しさん:05/02/18 23:59:29
>>120
バッチの実行結果を確認したいなどの目的で一時的に残したいだけなら、
バッチの最後にpauseコマンドでも入れておくべし。

122 :デフォルトの名無しさん:05/02/19 00:09:36
>>121
ありがとう。やってみた。でもやっぱ
C:\Documents and Settings\XXXXX\デスクトップ>
↑こんな感じの状態で止まるようにはできませんよね?

123 :デフォルトの名無しさん:05/02/19 00:11:09
cmd /k yourbatch.bat出起動しろ

124 :120&122:05/02/19 00:20:52
あっ、
最後にバッチの中の最後に
cmdという文字列を入れればできることに気がつきました!
ありがとうございました。

125 :デフォルトの名無しさん:05/02/20 23:11:10
複数の(10くらい)ファイルをドラッグアンドドロップすると、あらかじめ指定したフォルダへ全て無条件でコピーしてくれるバッチファイルを作りたいのですが、教えていただけませんか?

よろしくお願いいたします。

126 :デフォルトの名無しさん:05/02/20 23:13:48
SendToにそのフォルダのショートカット置くとかじゃ駄目?

:loop
if "%1"=="" goto :exit
copy "%~1" c:\dest
shift
goto :loop
:exit

127 :デフォルトの名無しさん:05/02/20 23:38:15
>>126
ありがとうございます。

@echo off
:loop
if %1=="" goto :exit
copy %1 c:\dest
shift
goto :loop
:exit

でできました。XPなんですが、" のあるなしって何か関係あるのでしょうか?

128 :デフォルトの名無しさん:05/02/21 01:33:17
きりばんげとずさー
>>127
マイドキュメントからコピーするときにちょっと幸せになれるかも

129 :デフォルトの名無しさん:05/02/21 03:01:53
当方WinXPで、
コマンドプロンプトを起動するたびに

cd デスクトップ

と打つんですが、
これを短縮して起動させるバッチファイルとか可能ですか?
もしくはデフォルトのディレクトリをデスクトップにすることはできませんか?

130 :デフォルトの名無しさん:05/02/21 03:05:01
cmd /k cd デスクトップ

131 :130:05/02/21 10:18:15
>>130
cmd cd デスクトップ

で行けました。
ありがとうございます。

132 :デフォルトの名無しさん:05/02/21 10:18:52
あ・・・名前ミスったw

133 :デフォルトの名無しさん:05/02/21 21:01:47
「a」というフォルダがあって、その中に「a1」,「a2]...「a10」の10個のサブフォルダがあったとします。
その10個のサブフォルダのそれぞれに「b」というフォルダがあったとします。
カレントディレクトリが「a」として、ここから「b」のフォルダとその中身を全部削除するには
どうコマンドをかけばよいですか?
なるべく1行で。
*?を使ってできるのかな?

134 :デフォルトの名無しさん:05/02/21 21:29:15
>>133
for /d %%a in (a\a??) do @echo rd/s/q %%a\b

135 :デフォルトの名無しさん:05/02/22 01:28:36
バッチファイルでアクセスカウンターは作れますか?

136 :デフォルトの名無しさん:05/02/22 03:06:19
http://olive.dip.jp/~hachiya/cgi-bin/counter.bat

137 :217:05/02/22 22:27:23
いろいろやって、やっとできました。
このバッチあると、階層が深いフォルダ( フォルダの中にフォルダがある)の中のファイルを
「フォルダの中のファイルをすべて選択 - ファイルを切り取り - 一段あがって貼り付け - 中間フォルダを削除」
の面倒なファイル操作しなくていいんですごい楽です。

A\B\aa.a bb.b cc.c → A\aa.a bb.b cc.c の作業がすごい簡単です。

for /f "usebackq delims=" %%f in (`dir /b /ad`) do set a=%%f
cd %a%
move *.* ../
cd ..
rmdir /s /q "%a%"

138 :デフォルトの名無しさん:05/02/25 03:35:47
>>136
これってどうやってるの?
流れとしては、
1.カウンターをファイルから読み込む
2.カウンターに1を足す
3.カウンターをファイルに書き込む
4.カウンターを表示する
のはずだけど。
バッチファイルでやろうとすると1の段階で詰まる。
ファイルの内容を”変数”に読み込まないと2以降の作業ができないんだけど、バッチじゃ無理っぽい。
何か特別な方法でもあるの?

139 :デフォルトの名無しさん:05/02/25 03:41:38
AddHandler cgi-script .bat

140 :デフォルトの名無しさん:05/02/25 03:46:05
>>139
そういうこと聞いてるんじゃないんだけど。
バッチにファイルの内容を変数に読み込む命令なんてあるの?
もし無いならどうやってるの?

そういう質問。

141 :デフォルトの名無しさん:05/02/25 04:27:14
>>140
for /?

FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k

この例は、myfile.txt の各行を解析します。セミコロンで始まる行を無視し、
各行の 2 番目と 3 番目のトークンを for 本体に渡します。トークンは、カンマ
またはスペースで区切られています。for 本体の文が %i で 2 番目のトークン
を、%j で 3 番目のトークンを取得し、%k で 3 番目移行のすべてのトークンを
取得していることに注意してください。スペースを含むファイル名に対しては、

142 :デフォルトの名無しさん:05/02/26 13:08:22
>>140
ひょっとしてWin9x?
だったらFOR文で/Fオプション使えないよな。

143 :デフォルトの名無しさん:05/02/26 21:46:46
まあ9x系でもファイルの内容を環境変数に
読み込むことは出来ると思うが。
たとえばこんな感じでできるはず。

・バッチファイル
@echo off
type data.dat > temp.bat
call temp.bat
echo %test%

・data.datの中身
set test=abc

144 :デフォルトの名無しさん:05/02/26 21:49:35
9xでCGIなんてありえない

145 :デフォルトの名無しさん:05/02/26 21:51:14
data.datの頭ににset test=ってつけられないのならこんな感じだな。

・バッチファイル
@echo off
copy work.dat+data.dat temp.bat
call temp.bat
echo %test%

・work.datの中身
set test=

・data.datの中身
abc

146 :デフォルトの名無しさん:05/02/26 22:04:11
出力を実行するという荒業もアル

@echo off
echo set data=%%2 > ボリューム.bat
vol > temp.bat
call temp.bat


147 :デフォルトの名無しさん:05/03/04 03:38:29
スレ違いかもしれんが、文字置換コマンドを実行するのに
Win32 Perlをインストしてあればコマンドから

>perl -i.bak -pe "s/大/小/" aa.txt
(aa.txt内の"大"の文字を"小"に変更する)
ができる。結構便利。 また、UNIXのコマンドをコマンドラインから使う方法もある。
NT版UNIX-like tools <<<<主要なUNIXコマンドのWinへの移植 UNIXのほぼ全てのコマンドが使える

バッチでできるなら、それに越したことがないけど。

148 :デフォルトの名無しさん:05/03/04 10:55:23
>>147
それ言い出すと、素直にcygwinをインストールしてbash使えばいいって結論になってまうがね。

149 :デフォルトの名無しさん:05/03/04 23:43:52
バッチファイルに "abc def.zip"などというスペースを含む
ファイルの渡し方を教えてください。

foo.bat "abc defzip"

ではエラーになります。


150 :149:05/03/05 11:37:01
内容がないようでした。

@echo off
set FileName=%1
echo %FileName:~-4%
if /i "%1:~-4%"==".zip" (echo Ok ) else (
echo No)

こんなバッチファイルでエラーになります。
何が悪いのでしょう?


151 :デフォルトの名無しさん:05/03/05 12:10:53
%1に入ってるファイル名の拡張子は %~x1 で取り出せる

152 :デフォルトの名無しさん:05/03/05 12:16:03
>>150
call /?

153 :149:05/03/05 20:43:54
ありがとうございました。
無事解決しました。

154 :デフォルトの名無しさん:05/03/09 02:58:28
複数の端末からNETUSEを使用して
IPアドレス一覧を上から順に接続していきデータを取得、切断し次の端末に接続を繰り返すバッチ。
しかしその端末とのPINGがNGな状態だと動作がとまってしまいます。
それを回避したいのですが・・
 1接続不可の場合にすぐに次の端末に接続を試みる方法
 2または先にIPアドレス一覧リストを元に、PINGを実行してOKなリストの作成をするにはどう書けばいいのでしょうか?

155 :デフォルトの名無しさん:05/03/09 09:48:13
初心者〜管理者まで必読!コマンドライン(DOS Pt.3)
http://pc5.2ch.net/test/read.cgi/win/1062775949/

運用系の話はこっちの方がいいと思うんだが


156 :デフォルトの名無しさん:05/03/09 12:24:06
>>154
下記みたいな感じじゃダメかな?テストしてないから分からんけど

set PING=NG
for /F %%i in ('ping -n 1 -w 50 IPアドレス') do if %%i==Reply set PING=OK && net use x ....

157 :デフォルトの名無しさん:05/03/10 11:04:15
WIN Xpで再起動のバッチはどうすればできますか?
@exitじゃだめなんですよね・・

158 :デフォルトの名無しさん:05/03/10 11:30:30
shutdown -r

159 :デフォルトの名無しさん:05/03/10 20:28:12
suttamonnda -r

160 :デフォルトの名無しさん:05/03/10 22:45:56
基本なんでしょうけど
音を鳴らしたいのですが
・でなるようなのですが
どう書いたらいいのですか?

161 :デフォルトの名無しさん:05/03/10 23:06:19
>>160
まず日本語を勉強しなおせ。
話はそれからだ。

162 :デフォルトの名無しさん:05/03/12 00:00:59
>>160
その・は、おそらく\a(0x07)のBelのつもりだと思う。
コマンドプロンプトで
echo Ctrl+G
と打ってみ。(表示はecho ^Gになる)


163 :デフォルトの名無しさん:05/03/12 00:32:18
某所でバッチでタイマーを使う方法として

@echo off
echo 5秒後に実行します
ehoice /c:1 /t:1,05>NUL
echo 実行開始

というものが紹介されていたのですが、
> 'choice' は、内部コマンドまたは外部コマンド、
> 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
となってしまいます。
WindowsXP Pro SP1aなのですが、どうすれば使えるようになりますか?

164 :デフォルトの名無しさん:05/03/12 00:35:02
>>163
Windows2003を買う

165 :163:05/03/12 00:53:44
>>164
時期的に2003発売前に書かれたものなので、
2003でしか使えないということは無いと思うのですが。

166 :デフォルトの名無しさん:05/03/12 01:05:29
>>165
MS-DOS6.2を買う

167 :デフォルトの名無しさん:05/03/12 01:25:45
>>165
choice.com and choice.exe
ttp://www.vector.co.jp/soft/win95/util/se349380.html

168 :デフォルトの名無しさん:05/03/13 15:59:58
>>165
これ見てみ。
http://www.nifty.com/cgi-bin/Ssearch.cgi?Target=_top&Did=3&cflg=%8C%9F%8D%F5&Search_Sort=Ranking_Sort&Search_SortNum=1&Category=fpcu_dosvcmd&keywd=CHOICE


169 :デフォルトの名無しさん:05/03/13 16:15:08
おいおい、、、w

170 :デフォルトの名無しさん:05/03/13 23:18:09
すみません、初歩的な事なのですが教えて下さい。
ローカルフォルダをドライブにマウントするのに
"net use e: \\127.0.0.1\winxp\bin"
このようなコマンドを入力すると

「システムエラー 58が発生しました
ネットワークパスが見つかりません」

と、マウント出来ないのです。
OSはXP-SP1 です。



171 :170:05/03/13 23:19:22
システムエラー 53でした

172 :デフォルトの名無しさん:05/03/14 00:06:34
>>170
エクスプローラで「\\127.0.0.1\winxp\bin」が開けるかどうか確認してみれ。

ttp://www.microsoft.com/resources/documentation/WindowsServ/2003/enterprise/proddocs/ja-jp/Default.asp?url=/resources/documentation/WindowsServ/2003/enterprise/proddocs/ja-jp/sag_TCPIP_tro_Topnode.asp
システム エラー 53 が発生しました。

原因 ;  システム エラー 53 は、net use コマンドを使ったコンピュータ名の名前解決に
失敗した場合に返されます。

解決方法 ;  目的のコンピュータがローカル サブネット上にある場合は、その名前の綴り
が正しいこと、および目的のコンピュータ上でも TCP/IP が実行されていることを確認します。


173 :デフォルトの名無しさん:05/03/14 00:25:16
>>170
"net use e: \\127.0.0.1\winxp\bin"
bin ってサブフォルダは無理だろ
net use e: \\127.0.0.1\winxp
ぐらいにしとけ。

174 :170:05/03/14 00:33:34
素直に接続できるマシンは、ルートでもサブディレクトリでも無条件でマウント出来ます。
簡単に接続出来たので、別のマシンで設定すると、うまくマウント出来ないのです。
net use (return) で出てくる共有先はつながるのですが、なぜかおかしいのです。


175 :デフォルトの名無しさん:05/03/14 01:00:15
>>170
net view \\127.0.0.1
で「winxp」が共有リソース(Disk)になってることを確認した?

176 :170:05/03/14 01:15:43
>>175
はい、その辺は思い当たる所は確認しています。
net use で「OK」が出ている所だけしか接続出来ないようなのです

177 :170:05/03/14 01:22:19
あ、今再度良く見たら「使用」の項目には、どの共有先も何も記載されていません


178 :デフォルトの名無しさん:05/03/14 02:28:47
>>170
net use e: \\%COMPUTERNAME%\winxp\bin
でも繋がらなかったら、原因になりそうなのは
・共有名「winxp」フォルダの共有設定がおかしい
・「winxp」フォルダの中に「bin」フォルダがない
くらいしか思い浮かばないが。

179 :デフォルトの名無しさん:05/03/14 06:19:37
どのへんがプログラミング?

180 :デフォルトの名無しさん:05/03/14 07:50:15
(^□^)ギャハハハハハハハハハ!!
binが共有名ならその上のフォルダ名winxpは要らんのじゃよ
よって正解は

net use e: \\ホスト名\bin じゃな。

181 :170:05/03/14 09:51:40
>>180
binは共有していません。
c:\bin にあるわけで、\\PC\winxp\bin なんです。
仮に、binを共有して、\\PC\bin としても、同じくエラーでマウント出来ないのです。
現在、全く問題無いPCで色々試しているのですが、同じ現象が出るのはLANコードを抜いたり
LANカードを無効にした時に発生しています。

182 :デフォルトの名無しさん:05/03/14 10:07:36
>>181
説明が下手だなぁ。
>LANコードを抜いたりLANカードを無効にした時に発生しています。
これは、「抜いたり向こうにした後再度接続しても」という意味でいいのかな?
そうでない、文字通り接続できない状況ならそりぁあマウントできねぇべ。

183 :デフォルトの名無しさん:05/03/14 16:18:56
WinXPで、DOS窓を一切表示させずにbatを実行するにはどうしればいいですか?
ショートカットを作って実行サイズを最小化したりSmartProcessorを使ったりして
最小化状態で実行させることは出来るのですが、タスクバーにも表示されないようにする方法が解りません。


184 :デフォルトの名無しさん:05/03/14 16:21:00
CreateProcessしろ

185 :デフォルトの名無しさん:05/03/15 00:28:13
>>183
うち(WinXP)では
nircmd exec hide "hoge.bat"
で、できるけど。どうかな?

nircmd.exe
ttp://www.nirsoft.net/utils/index.html

186 :デフォルトの名無しさん:05/03/15 00:45:59
>>183
タスクでバッチを走らせるんなら、別ユーザーで実行すれば全く見えなくなるのでわ?

187 :デフォルトの名無しさん:05/03/15 01:09:53
>>186
それはどうかな?

俺の予想では別のPCで実行すればまったく見えなくなりそうな気がする。

188 :186:05/03/15 07:45:06
>>187
それはどうかな?ってw

やってみてから言ってくれよな( ´,_ゝ`)プッ

189 :デフォルトの名無しさん:05/03/15 10:03:26
>>188
オマエモナー

190 :186:05/03/15 20:52:54
だいたい別のPCからバッチを走らせるなんて、メンドクサイ事この上ないだろ。
接続性の問題とか、常時電源ONにしなくちゃいけない別PCが必要だとか
ネットワーク越しではうまく動作しないとか。

で、やってみたのかい?
ユーザーをバッチ用に作って、タスクを実行するユーザーにそのユーザーを指定して
やれば、バックグラウンドでジョブが走ってくれるだろ。
これが一番簡単な方法だと思うがね( ´,_ゝ`)プッ

191 :デフォルトの名無しさん:05/03/15 21:09:43
>>190
まじれす乙

vbsならこんなんでできる。
CreateObject("WScript.Shell").Run "unko.bat", 0


192 :186:05/03/15 21:18:10
>>191
そっちの方が簡単そうだ
見直したぜ、おまえ( ´,_ゝ`)プッ

193 :デフォルトの名無しさん:05/03/15 21:46:25
あんまりこう言うの→( ´,_ゝ`)プッを多用すると必死に見えるから
控えた方が良いよ


194 :186:05/03/15 21:49:35
( ´,_ゝ`)プッ わかったぜ( ´,_ゝ`)プッ

195 :デフォルトの名無しさん:05/03/15 21:56:25
じゃあ、必死で回答を求めてる時はレス容量が許す限り
( ´,_ゝ`)プッで埋め尽くせば、必死さが伝わる訳か。
こんど、急ぎで回答が欲しい場合などに使ってみよう。

196 :デフォルトの名無しさん:05/03/15 23:01:23
ツマラン流れだな

197 :デフォルトの名無しさん:05/03/15 23:14:31
( ´,_ゝ`)ウン

198 :デフォルトの名無しさん:05/03/15 23:21:54
>>197
( ´,_ゝ`)プッ

199 :デフォルトの名無しさん:05/03/15 23:27:24
     ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ

プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)

     ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ

プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)

     ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ

プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)

     ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ

プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)

     ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ

プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)

200 :デフォルトの名無しさん:05/03/16 01:05:13
>>186
本気でキモイからそろそろやめてください。
お願いだからここを荒らすのはやめてください。本当にお願いします。

201 :186:05/03/16 07:36:43
>>197-199
おまえらやめれってさ。

202 :デフォルトの名無しさん:05/03/16 10:13:51
>>186
もういいよ

203 :デフォルトの名無しさん:2005/03/21(月) 18:32:18
c:\1\2\3\hoge.bat
を実行した場合、パラメータで
%~d0 c:
%~p0 \1\2\3\
%~n0 hoge
%~x0 .bat
という値を取得できますが、
\1\2\ と 3\ を取得するにはどうすれば良いでしょうか?
ぶっちゃけカレントフォルダをバッチにD&Dして%~p1と%~n1を使えばいいんですが、
一々その操作をするのが煩わしいので、解る方教えてください。
フォルダ名やファイル名は可変です。

204 :デフォルトの名無しさん:2005/03/21(月) 23:53:21
>>203 具体的に何がしたいのか書けよ
for %%a in (%~f0\..) do @echo %%~pa と %%~na\ を取得

59 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)