バッチファイルプログラミング 2.bat
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGバッチファイルプログラミング質問スレ
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/
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG[[/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 遅延環境展開を無効にします。
0004デフォルトの名無しさん
NGNGは、"文字列" として指定されます。また互換性の理由から /X と /E:ON、/Y と
/E:OFF、および /R と /C は同じです。そのほかのスイッチは無視されます。
/C または /K が指定されている場合、スイッチの後の残りのコマンド ラインがコマ
ンド ラインとして処理されます。次のルールが引用符 (") の処理に使われます:
1. 次のすべての条件に一致する場合、コマンド ラインの引用符が有効になり
ます:
- /S スイッチがない
- 引用符が 1 組ある
- 引用符の中に特殊文字がない
(特殊文字は &<>()@^| です)
- 引用符の中に 1 つ以上のスペースがある
- 引用符の中の文字列が、実行可能ファイルの名前である
2. 最初の文字が引用符であるにも関わらず上の条件に一致しない場合は、最初
の引用符とコマンド ラインの最後の引用符が削除され、 最後の引用符のあ
とのテキストが有効になります。
0005デフォルトの名無しさん
NGNGまたは 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 を設定すると無効になります。
ユーザー固有の設定は、コンピュータの設定より優先されます。
コマンド ライン スイッチは、レジストリの設定より優先されます。
0006デフォルトの名無しさん
NGNGDEL または ERASE
COLOR
CD または CHDIR
MD または MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (外部コマンドの起動の変更を含みます)
ASSOC
FTYPE
詳細は、コマンド名の後に /? と入力すると表示されるヘルプを参照してください。
0007デフォルトの名無しさん
NGNGは無効にして 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 を設定すると無効になります。
ユーザー固有の設定は、コンピュータの設定より優先されます。
コマンド ライン スイッチは、レジストリの設定より優先されます。
遅延環境変数の展開が有効になっている場合、感嘆符を使うと実行時に環境変数の
値を置き換えることができます。
0008デフォルトの名無しさん
NGNG名の補完機能を有効または無効にして 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)。
ユーザー固有の設定は、コンピュータの設定より優先されます。
コマンド ライン スイッチは、レジストリの設定より優先されます。
0009デフォルトの名無しさん
NGNGリ名補完機能、Ctrl-F はファイル名補完機能) が使用されます。
レジストリで特定の補完文字を無効にするには、制御文字として有効でないスペース
(0x20) の値を使用します。
2 つの制御文字のどちらかを入力すると、補完機能が起動されます。パスが存在しな
い場合、プログラムはカーソルの左側のパス文字列にワイルド カード文字を付加し、
一致するパスの一覧を作成します。その後一致する最初のパスを表示します。
パスが一致しない場合、音を鳴らします。同じ制御文字を押し続けると一致するパス
の一覧を順に表示します。Shift キーを押しながら制御文字を押すと一覧を逆回り表
示します。行を編集して制御文字をもう一度押すと、保存されていた一致したパスの
一覧は破棄され、新しい一覧が作成されます。ファイル名補完機能とディレクトリ名
補完機能を切り替えたときも同様です。2 つの制御文字の違いは、ディレクトリ補完
文字がディレクトリ名だけを照合するのに対し、ファイル名補完文字はファイルと
ディレクトリ名の両方を照合する点です。ファイル補完機能が内部ディレクトリコマ
ンド (CD、MD または RD) に使用された場合、ディレクトリ補完機能と見なされま
す。
一致するパスの前後に引用符を付けると、補完機能コードでスペースまたはほかの特
別な文字を含むファイル名が使用できるようになります。また、行の前に戻って補完
機能を起動した場合、補完機能が呼び出された時点でカーソルの右側にあったテキス
トは破棄されます。
0010デフォルトの名無しさん
NGNG質問するときはWindowsのバージョンを教えてね
0011デフォルトの名無しさん
NGNGコマンド ライン リファレンス
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
0012デフォルトの名無しさん
NGNGどのようにすればよろしいでしょうか?
環境変数%DATE%だと、yyyy/mm/ddという書式になってしまいます。
0013デフォルトの名無しさん
NGNGset /?
0014デフォルトの名無しさん
NGNGありがとうございます。
%DATE:/=-%
で出来ました。
0015301
NGNGrem @echo off
set [email protected]
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というファイルに格納する事を思いつきましたが、
逆にファイルから変数に入力する方法が分かりませんでした。
日付の概念で昨日を算出するか、ファイルから変数への入力方法を探しています。
0016デフォルトの名無しさん
NGNGバッチファイルを生成して、そいつをcallしたら?
後で暇見て試してみるか。
0017デフォルトの名無しさん
NGNG日付の概念で昨日を算出した方がスマートな気がするが、
まあ簡単なファイルを環境変数に代入する例として書いておくか。
for /F %%i in (today.txt) do echo %%i
これで、today.txtの内容が環境変数iに代入される。
正確にはtoday.txtの1行目がiに代入されechoされ、
次に2行目がiに代入されechoされ・・・と
全行に対してecho(doの後のコマンド)が実行される。
バッチファイルではなく、コマンドラインから実行するときは%%でなく%にすること
001817
NGNGちょっと探してみたらあったので報告。
バッチで前日の日付を求める
http://homepage1.nifty.com/jak/batch/date.html
0019デフォルトの名無しさん
NGNG現在とある部屋にある数台の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を実行したいのですが、方法が分かりません。
誰か分かる人がいれば教えて下さい。お願いします。
0020デフォルトの名無しさん
NGNGこんなもんでヒントになるかな。
@echo off
set PING=NG
for /F %%i in ('ping 127.0.0.1') do if %%i==Reply set PING=OK
echo %PING%
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGCommand1 && Command2
&& 記号の前にあるコマンドが正常に終了した場合にのみ、この記号の後の
コマンドを実行するために使います。1 つ目のコマンドが実行され、そのコマン
ドが正常に終了した場合にのみ、2 つ目のコマンドが実行されます。
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNGPinging 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
0025デフォルトの名無しさん
NGNGうちのは 1 になっちゃうよ。
0026デフォルトの名無しさん
NGNG> 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
0027デフォルトの名無しさん
NGNG>>26 = win2K
0028デフォルトの名無しさん
NGNG>24はXPProSP2
002928
NGNG003019
NGNG今は帰宅しているので明日にでも頂いたヒントを元に色々とやってみます。
有難うございます。
ただ>>20がイマイチ理解できない自分が情けないorz
('ping 127.0.0.1')にあて先のIPを入れるって理解で良いのでしょうか?
ヘボですみません
0031301
NGNG>>17
的確な回答有り難うございます。
FORは確かに使えますね。
>>18
ジャストミートな資料の提示、有り難うございます。
まさに求めていたものですが、
やはりというか日付の処理は全部記述していますね・・・。
DOS派なのでバッチなんですが、こういう時はwshに心動かされますね。
両方試行錯誤してみたいと思います。
形になったらまた報告しに来ますねー。
0032301
NGNG@echo off
rem :前処理
d:
cd \scripts
rem :送信先設定
set [email protected]
rem :日付取得&ログファイル名生成
set today=%DATE%
call yesterday.bat %today%
set filename=%yesterday%.log
rem :送信作業
smail -d -i -hsmtp.com -f"report <[email protected]>" -s%yesterday%_report -F%filename% %e-mail% > .\log\send_%yesterday%.log
>>17さんの意見を尊重し、概念で日付を取得する方を選び、こんな感じになりました。
ありがとうございました。
0033デフォルトの名無しさん
NGNGC:\hoge\fugaというディレクトリだけを除きたいのですが
どのようにすればよいでしょうか?
xcopyの/excludeでコピーしないファイルを指定することは
できますが、コピーしないディレクトリを指定することって
できますか?
0034デフォルトの名無しさん
NGNGつーか、どうやったらできなかったんだ?
0035デフォルトの名無しさん
05/01/17 22:33:450036デフォルトの名無しさん
05/01/17 22:37:440038デフォルトの名無しさん
05/01/18 23:49:32大量のコメントで迷彩掛けるとか。
さもなくば、アーカイバーの自己展開機能で実行させるとか。
0039デフォルトの名無しさん
05/01/19 17:34:52Win2000のnetshみたいなのはありますか?
0040デフォルトの名無しさん
05/01/21 04:41:49今は、手作業で
・デスクトップにつくってあるタスクフォルダショートカットをダブルクリック
・目視確認
なんすけど、自動化できるんじゃねーのかなーーと思って。
0041デフォルトの名無しさん
05/01/21 13:42:250042デフォルトの名無しさん
05/01/21 22:37:48echo B>>test.txt
echo C>>test.txt
と書いたバッチファイルを運用して一ヶ月程したら
test.txtの中身が
A
C
B
C
となってしまいました。今までは正常に
A
B
C
となっていたのですが、原因としてありそうなことがありましたら教えて下さい。
0043デフォルトの名無しさん
05/01/21 23:11:290044デフォルトの名無しさん
05/01/21 23:29:15なるほど。思い当たる節があるので調べてみます。
ありがとうございました。
0045デフォルトの名無しさん
05/01/22 03:43:22ある実行ファイル(\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したらそのファイルを対象に、という感じに出来れば更に幸せになれそうです。
0046デフォルトの名無しさん
05/01/22 05:38:10%1がフォルダかファイルかを判別して分岐
ファイルなら
\hoge.exe %*
フォルダなら
for /f "usebackq delims= skip=4" %%i IN (`dir/w/a-d %1 `) DO \hoge %%i
ファイル名にスペース等が含まれていないことが前提
最後2 行がエラーになる
渡せる引数の数はファイル名の文字数によって変わる
0047デフォルトの名無しさん
05/01/22 05:43:27http://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製ライブラリ)でできねーもんかね。
0048デフォルトの名無しさん
05/01/22 06:05:31@echo off
(%~d1) && (cd %1)
for %%f in (*) do echo %%f
pause
004945
05/01/22 06:38:10どうもです。
> ファイルなら
> \hoge.exe %*
これをやると「渡せる引数の数はファイル名の文字数によって変わる」という制限があるので
それを解消するのが目的です。
>48
どうもです。フォルダの場合はこれで完璧です。
ファイルの場合とフォルダの場合の条件分岐はなんとか自分で書くので
複数のファイルがD&Dされた場合も>48のように処理する方法が解る方、どうかアドバイスよろしくです。
005046
05/01/22 09:33:11引数に複数のファイルを渡したいわけじゃないのか。
@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
0051デフォルトの名無しさん
05/01/22 10:14:11どうもです。
で、フォルダの場合はOKなんだけど、ファイルの場合がダメ。
でよく考えたらbatに大量のファイルをD&Dした時点でコマンド文字数オーバーしてるんだから
batの内部処理をどう振り分けようと無駄だということに気付いた。
10個程度のファイルをD&Dすれば正常に動作するので46氏の記述には全く問題は無いと思う。
1ファイル当たり半角英数20文字程度のパスを持つファイルを3000個くらい一気にD&Dするのは
やっぱり無理なんだろうな。フォルダ内の一部のファイルのみを処理する場合は
別フォルダに振り分けてからフォルダごとD&Dで対処するようにします。
46氏、48氏にはお手数をお掛けしました。フォルダの処理をする方は有効に活用させていただきます。
0052デフォルトの名無しさん
05/01/22 17:44:450053デフォルトの名無しさん
05/01/22 19:48:32http://www.geocities.jp/cygwin_ck/
ck.exe -e cmd.exe
005442
05/01/23 23:09:24リモート側でのバッチが同時に実行されるようです(確証はありませんが)。
あるプロセスが実行中は別プロセスが実行できないような方法ありませんか?
0055デフォルトの名無しさん
05/01/24 06:44:21cmd以外は普通に入力できているんですが。
0056デフォルトの名無しさん
05/01/25 13:19:13実行時にショートカットが作られてしまうようで、2回動いてしまいます。
すっきり動かすにはどうすればよいのでしょう?
0057デフォルトの名無しさん
05/01/25 15:08:21バッチは他に置けば?
0058デフォルトの名無しさん
05/01/26 00:05:363秒間隔とか時間差を行うときのバッチの処理がわかりません
どういう感じで処理するかこのあたりだけおしえてください
できれば、ソースをかいてくださいおねがいします
0059デフォルトの名無しさん
05/01/26 20:12:490060デフォルトの名無しさん
05/01/28 03:37:46BATCPをXPで使うとバッチファイルの内容によっては挙動がおかしかったけど、
これは問題なさそう。
Bat2Hide
http://homepage3.nifty.com/rcworks/bat2hide.htm
0061デフォルトの名無しさん
05/01/28 06:10:46ttp://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html
0062デフォルトの名無しさん
05/01/28 09:46:220063デフォルトの名無しさん
05/01/28 10:01:10動作したり、しなかったりしてしまいます。
for /L %%f in (11,1,50) do ping -n 1 -w 50 192.168.0.%%f
OSはXPです。c:\直下に配置すると大抵はうまく動作するのですが、他の場所では正常に動作
せずにループしているような状態に陥り、延々とこのコマンドが流れてしまいます。
また良く分からないのですがc:\直下でも正常動作せずに同じようにループに入ってしまう事
もあります。
何故なのか調べているのですが、分かりません。コマンドの書き方が悪いのでしょうか?
>>60のも試してみましたがダメでした。
0064デフォルトの名無しさん
05/01/28 12:25:08ping.bat ってオチは?
0066デフォルトの名無しさん
05/01/31 00:09:380067デフォルトの名無しさん
05/01/31 00:13:29diet
006866
05/01/31 00:34:420069デフォルトの名無しさん
05/01/31 01:50:340070デフォルトの名無しさん
05/02/01 17:19:00実行して実行できなかったら、ではなく前もって知りたいんですが。
0071デフォルトの名無しさん
05/02/01 17:29:160072デフォルトの名無しさん
05/02/01 17:52:24%path%を ; で区切るのってどうやるんでしょう。
for /f "delims=;" %%q in (foo;bar bar;baz) do (
だとfooが見つかりませんというエラーになってしまいます。
007346
05/02/01 18:36:55のWhich.CMDを参考にするといいかも
0074デフォルトの名無しさん
05/02/04 22:14:36戻ってきたERRORLEVELの値をechoで表示させています。
(正常なら0、異常なら-1が戻る)
普段は普通に0や-1が表示されるのですが、
たまにプログラムが突然終了して、
ERRORLEVELに「143」というわけのわからない値が入ってくるので困ってます。
%ERRORLEVEL%の値からエラー内容を知ることはできますか?
(もしスレ違いなら適切なスレへ誘導していただけると嬉しいです)
0075デフォルトの名無しさん
05/02/04 22:22:22それはそのJavaのプログラムのソース次第だろ。
ソースを143で検索するかそのプログラムリリースしたところに聞くしか。
0076デフォルトの名無しさん
05/02/05 03:01:330077デフォルトの名無しさん
05/02/05 03:38:590079デフォルトの名無しさん
05/02/05 21:38:51なんかワラタw
0080デフォルトの名無しさん
05/02/08 11:44:41定期的とは例えば毎週月曜日の12:00,火曜日の11:00などです。
しかしこれらの指定する時間が多々変更しなければならない事があり、
その度にタスクを変更するのが面倒と言うか全然PCの分からない人に
でも変更可能なようにしたいと考えています。
で、csvなどでスケジュールを指定して表を読み込ませて、その時間に
batファイルを動かせるようにしたいのですが、良い方法ってあるでしょ
うか?別の方法でも良いのですが、視覚的に分かりやすいものを、と
考えています。
何か漠然とした質問ですみません
ヒントだけでもいただけると助かります。
0081デフォルトの名無しさん
05/02/08 12:30:300082デフォルトの名無しさん
05/02/08 12:35:48Windows標準のタスク機能を使えばいい
0083デフォルトの名無しさん
05/02/08 12:50:54for /f "delims=, tokens=1,2,3,4,〜" %a in (〜.csv) do at 〜 %a 〜 %b 〜
008480
05/02/08 13:52:56>>81
cronってWindowsにもありましたっけ?
>>82
タスクを手で作り変えるには量が多くてミスの可能性が高そうなので他の方法で考えています。
>>83
何か使った事のないコマンドがあるので良く分からないのですが、調べて検討します。
有難うございます。
008580
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コマンドを入力したく思っています。
これって可能でしょうか?それともバッチファイルでは難しいのでしょうか?
長々と書いてすみませんがヒント頂けないでしょうか?お願いします。
0086デフォルトの名無しさん
05/02/08 16:04:27echo %%i, %%j,%%k, %%l, %%m, %%n, %%o, %%p, %%q
)
008780
05/02/08 16:24:55○のついた曜日の時間のみにatコマンドでbatをタスクスケジューラーに入れた
いと思っているのです。
echoで表示させる事はできるのですが、%%a等に○が入った時に、他のbatを呼び出して
それぞれのコマンドを実行させる事ができないのです。
また空白の箇所(○が入っていない)箇所は無視されて左にシフトされてしまう事
にも悩んでいます。例えば「,,,,,○,○」のcsvファイルを読み込ませると
○○が左詰になってしまいます。
分かりにくい文章ですみませんがお願いします。
0088デフォルトの名無しさん
05/02/09 00:59:22■お悩み1
>%%a等に○が入った時に、他のbatを呼び出してそれぞれのコマンドを実行させる事ができない
これは「&&」が不要です。
if %%a == ○ at 11:25 /next:m "C:\aaa.bat"
だとうまくATコマンドが実行されます。
■お悩み2
>空白の箇所(○が入っていない)箇所は無視されて左にシフトされてしまう
う〜ん。これは以下のようにカンマの間にスペースなどを入れて逃げるしかないような。
0089デフォルトの名無しさん
05/02/09 01:02:03test.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"
)
0091デフォルトの名無しさん
05/02/10 01:22:21mkdir data{0000..0020}
のようなことをしたいのですが
for /L %i in (1,1,20) do set num=000%i & mkdir data%num:~-4%
ではnumが最初に読み込まれるだけで以降更新してくれません
なんかいい方法ないですか?
0092デフォルトの名無しさん
05/02/10 01:35:29>>7
setlocal
0093デフォルトの名無しさん
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
-------------------------------
0094デフォルトの名無しさん
05/02/11 22:54:24多謝
まだまだ無知であることを痛感しました
0095デフォルトの名無しさん
05/02/12 00:22:58不可能ではないらしいのですが、ググってもさっぱりわかりません。
博識なお方、例として%date%をそのままクリップボードに送る方法の解説をお願いします。
0096デフォルトの名無しさん
05/02/12 00:31:10お前ら、wsh使ってますか? Part4
http://pc5.2ch.net/test/read.cgi/win/1100489339/295
cygwinなら > /dev/clipboardでできたりする。
0097デフォルトの名無しさん
05/02/12 00:43:11http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/ja-jp/clip.asp
\176,000
0098デフォルトの名無しさん
05/02/13 19:24:47全部のフォルダを1階層(フォルダの中にフォルダがない状態)にするための
バッチを作っています。
例
C:\新しいフォルダ\新しいフォルダ\A.A , B.B...
C:\新しいフォルダ\A.A , B.B...
※フォルダ名に一貫性はありません。
move *.* ../ で2階層目のフォルダの中身を上に送れますが、送った後、
空になったゴミフォルダ C:\新しいフォルダ\新しいフォルダ\
を自動的に削除するにはどうしたらいいでしょうか?
RDはワイルドカードが効かないので、ゴミフォルダだけ消せません。
0099デフォルトの名無しさん
05/02/13 19:44:45消したいディレクトリを全て適当なディレクトリに移動して、そのディレクトリを階層ごと削除すればいいかと。
xcopy /e *.* foo
rmdir /s foo
って感じかな?
#手元に環境がないので適当に調べてくれ。
0100デフォルトの名無しさん
05/02/13 19:55:060101デフォルトの名無しさん
05/02/13 20:08:59for /F %e in ('dir /b') do rmdir %e /s /q
010299
05/02/13 20:42:500103デフォルトの名無しさん
05/02/13 21:18:280104デフォルトの名無しさん
05/02/13 22:33:42echo empty!
:notempty
0105デフォルトの名無しさん
05/02/14 11:18:34パスワードが設定されているので毎回手入力しないといけません。入力せずに自動的にID,PASSを入れ
る事のできる方法ってありますか?
0106デフォルトの名無しさん
05/02/14 12:59:09net use
0107デフォルトの名無しさん
05/02/14 18:57:06たとえば共有したい場所を\\192.168.0.2のtempフォルダだととしたら
net use Q: \\192.168.0.2\temp
とするとパスワードを求められますが、ここの入力も自動化したいのです。
0108デフォルトの名無しさん
05/02/14 19:46:44net use
0109デフォルトの名無しさん
05/02/14 20:28:46ヘルプを見れ
0110デフォルトの名無しさん
05/02/17 14:25:130111デフォルトの名無しさん
05/02/17 14:54:15バッチファイルのプロパティで「実行時の大きさ」を「最小化」にする。
0112デフォルトの名無しさん
05/02/17 14:57:32とにかく窓作らないようには出来ないの?
0113デフォルトの名無しさん
05/02/17 15:09:47cmd.exeを単独で使う限り、無理。
0114デフォルトの名無しさん
05/02/18 00:23:450115デフォルトの名無しさん
05/02/18 00:31:150116デフォルトの名無しさん
05/02/18 08:58:28nyacus
0117114
05/02/18 21:27:48ダウンロードしようと思ったら40Mもあったのでやめました。
>>116
cmd.exeとの違いがよくわかりません。
cmd.exeは任意のフォントが使えないのと、ウィンドウサイズ変えるのが
面倒なのと、自動保管が糞なのと・・・・
DOSやめます。
0118デフォルトの名無しさん
05/02/18 21:45:090119デフォルトの名無しさん
05/02/18 21:47:020120デフォルトの名無しさん
05/02/18 23:34:14閉じますよね。
これを閉じないようにしたいんですけどどうやるんですか?
0121デフォルトの名無しさん
05/02/18 23:59:29バッチの実行結果を確認したいなどの目的で一時的に残したいだけなら、
バッチの最後にpauseコマンドでも入れておくべし。
0122デフォルトの名無しさん
05/02/19 00:09:36ありがとう。やってみた。でもやっぱ
C:\Documents and Settings\XXXXX\デスクトップ>
↑こんな感じの状態で止まるようにはできませんよね?
0123デフォルトの名無しさん
05/02/19 00:11:090124120&122
05/02/19 00:20:52最後にバッチの中の最後に
cmdという文字列を入れればできることに気がつきました!
ありがとうございました。
0125デフォルトの名無しさん
05/02/20 23:11:10よろしくお願いいたします。
0126デフォルトの名無しさん
05/02/20 23:13:48:loop
if "%1"=="" goto :exit
copy "%~1" c:\dest
shift
goto :loop
:exit
0127デフォルトの名無しさん
05/02/20 23:38:15ありがとうございます。
@echo off
:loop
if %1=="" goto :exit
copy %1 c:\dest
shift
goto :loop
:exit
でできました。XPなんですが、" のあるなしって何か関係あるのでしょうか?
0128デフォルトの名無しさん
05/02/21 01:33:17>>127
マイドキュメントからコピーするときにちょっと幸せになれるかも
0129デフォルトの名無しさん
05/02/21 03:01:53コマンドプロンプトを起動するたびに
cd デスクトップ
と打つんですが、
これを短縮して起動させるバッチファイルとか可能ですか?
もしくはデフォルトのディレクトリをデスクトップにすることはできませんか?
0130デフォルトの名無しさん
05/02/21 03:05:010132デフォルトの名無しさん
05/02/21 10:18:520133デフォルトの名無しさん
05/02/21 21:01:47その10個のサブフォルダのそれぞれに「b」というフォルダがあったとします。
カレントディレクトリが「a」として、ここから「b」のフォルダとその中身を全部削除するには
どうコマンドをかけばよいですか?
なるべく1行で。
*?を使ってできるのかな?
0134デフォルトの名無しさん
05/02/21 21:29:15for /d %%a in (a\a??) do @echo rd/s/q %%a\b
0135デフォルトの名無しさん
05/02/22 01:28:360136デフォルトの名無しさん
05/02/22 03:06:190137217
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%"
0138デフォルトの名無しさん
05/02/25 03:35:47これってどうやってるの?
流れとしては、
1.カウンターをファイルから読み込む
2.カウンターに1を足す
3.カウンターをファイルに書き込む
4.カウンターを表示する
のはずだけど。
バッチファイルでやろうとすると1の段階で詰まる。
ファイルの内容を”変数”に読み込まないと2以降の作業ができないんだけど、バッチじゃ無理っぽい。
何か特別な方法でもあるの?
0139デフォルトの名無しさん
05/02/25 03:41:380140デフォルトの名無しさん
05/02/25 03:46:05そういうこと聞いてるんじゃないんだけど。
バッチにファイルの内容を変数に読み込む命令なんてあるの?
もし無いならどうやってるの?
そういう質問。
0141デフォルトの名無しさん
05/02/25 04:27:14for /?
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 番目移行のすべてのトークンを
取得していることに注意してください。スペースを含むファイル名に対しては、
0142デフォルトの名無しさん
05/02/26 13:08:22ひょっとしてWin9x?
だったらFOR文で/Fオプション使えないよな。
0143デフォルトの名無しさん
05/02/26 21:46:46読み込むことは出来ると思うが。
たとえばこんな感じでできるはず。
・バッチファイル
@echo off
type data.dat > temp.bat
call temp.bat
echo %test%
・data.datの中身
set test=abc
0144デフォルトの名無しさん
05/02/26 21:49:350145デフォルトの名無しさん
05/02/26 21:51:14・バッチファイル
@echo off
copy work.dat+data.dat temp.bat
call temp.bat
echo %test%
・work.datの中身
set test=
・data.datの中身
abc
0146デフォルトの名無しさん
05/02/26 22:04:11@echo off
echo set data=%%2 > ボリューム.bat
vol > temp.bat
call temp.bat
0147デフォルトの名無しさん
05/03/04 03:38:29Win32 Perlをインストしてあればコマンドから
>perl -i.bak -pe "s/大/小/" aa.txt
(aa.txt内の"大"の文字を"小"に変更する)
ができる。結構便利。 また、UNIXのコマンドをコマンドラインから使う方法もある。
NT版UNIX-like tools <<<<主要なUNIXコマンドのWinへの移植 UNIXのほぼ全てのコマンドが使える
バッチでできるなら、それに越したことがないけど。
0148デフォルトの名無しさん
05/03/04 10:55:23それ言い出すと、素直にcygwinをインストールしてbash使えばいいって結論になってまうがね。
0149デフォルトの名無しさん
05/03/04 23:43:52ファイルの渡し方を教えてください。
foo.bat "abc defzip"
ではエラーになります。
0150149
05/03/05 11:37:01@echo off
set FileName=%1
echo %FileName:~-4%
if /i "%1:~-4%"==".zip" (echo Ok ) else (
echo No)
こんなバッチファイルでエラーになります。
何が悪いのでしょう?
0151デフォルトの名無しさん
05/03/05 12:10:530152デフォルトの名無しさん
05/03/05 12:16:03call /?
0153149
05/03/05 20:43:54無事解決しました。
0154デフォルトの名無しさん
05/03/09 02:58:28IPアドレス一覧を上から順に接続していきデータを取得、切断し次の端末に接続を繰り返すバッチ。
しかしその端末とのPINGがNGな状態だと動作がとまってしまいます。
それを回避したいのですが・・
1接続不可の場合にすぐに次の端末に接続を試みる方法
2または先にIPアドレス一覧リストを元に、PINGを実行してOKなリストの作成をするにはどう書けばいいのでしょうか?
0155デフォルトの名無しさん
05/03/09 09:48:13http://pc5.2ch.net/test/read.cgi/win/1062775949/
運用系の話はこっちの方がいいと思うんだが
0156デフォルトの名無しさん
05/03/09 12:24:06下記みたいな感じじゃダメかな?テストしてないから分からんけど
set PING=NG
for /F %%i in ('ping -n 1 -w 50 IPアドレス') do if %%i==Reply set PING=OK && net use x ....
0157デフォルトの名無しさん
05/03/10 11:04:15@exitじゃだめなんですよね・・
0158デフォルトの名無しさん
05/03/10 11:30:300159デフォルトの名無しさん
05/03/10 20:28:120160デフォルトの名無しさん
05/03/10 22:45:56音を鳴らしたいのですが
・でなるようなのですが
どう書いたらいいのですか?
0161デフォルトの名無しさん
05/03/10 23:06:19まず日本語を勉強しなおせ。
話はそれからだ。
0162デフォルトの名無しさん
05/03/12 00:00:59その・は、おそらく\a(0x07)のBelのつもりだと思う。
コマンドプロンプトで
echo Ctrl+G
と打ってみ。(表示はecho ^Gになる)
0163デフォルトの名無しさん
05/03/12 00:32:18@echo off
echo 5秒後に実行します
ehoice /c:1 /t:1,05>NUL
echo 実行開始
というものが紹介されていたのですが、
> 'choice' は、内部コマンドまたは外部コマンド、
> 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
となってしまいます。
WindowsXP Pro SP1aなのですが、どうすれば使えるようになりますか?
0164デフォルトの名無しさん
05/03/12 00:35:02Windows2003を買う
0166デフォルトの名無しさん
05/03/12 01:05:29MS-DOS6.2を買う
0167デフォルトの名無しさん
05/03/12 01:25:45choice.com and choice.exe
ttp://www.vector.co.jp/soft/win95/util/se349380.html
0168デフォルトの名無しさん
05/03/13 15:59:58これ見てみ。
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
0169デフォルトの名無しさん
05/03/13 16:15:080170デフォルトの名無しさん
05/03/13 23:18:09ローカルフォルダをドライブにマウントするのに
"net use e: \\127.0.0.1\winxp\bin"
このようなコマンドを入力すると
「システムエラー 58が発生しました
ネットワークパスが見つかりません」
と、マウント出来ないのです。
OSはXP-SP1 です。
0171170
05/03/13 23:19:220172デフォルトの名無しさん
05/03/14 00:06:34エクスプローラで「\\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 が実行されていることを確認します。
…
0173デフォルトの名無しさん
05/03/14 00:25:16"net use e: \\127.0.0.1\winxp\bin"
bin ってサブフォルダは無理だろ
net use e: \\127.0.0.1\winxp
ぐらいにしとけ。
0174170
05/03/14 00:33:34簡単に接続出来たので、別のマシンで設定すると、うまくマウント出来ないのです。
net use (return) で出てくる共有先はつながるのですが、なぜかおかしいのです。
0175デフォルトの名無しさん
05/03/14 01:00:15net view \\127.0.0.1
で「winxp」が共有リソース(Disk)になってることを確認した?
0177170
05/03/14 01:22:190178デフォルトの名無しさん
05/03/14 02:28:47net use e: \\%COMPUTERNAME%\winxp\bin
でも繋がらなかったら、原因になりそうなのは
・共有名「winxp」フォルダの共有設定がおかしい
・「winxp」フォルダの中に「bin」フォルダがない
くらいしか思い浮かばないが。
0179デフォルトの名無しさん
05/03/14 06:19:370180デフォルトの名無しさん
05/03/14 07:50:15binが共有名ならその上のフォルダ名winxpは要らんのじゃよ
よって正解は
net use e: \\ホスト名\bin じゃな。
0181170
05/03/14 09:51:40binは共有していません。
c:\bin にあるわけで、\\PC\winxp\bin なんです。
仮に、binを共有して、\\PC\bin としても、同じくエラーでマウント出来ないのです。
現在、全く問題無いPCで色々試しているのですが、同じ現象が出るのはLANコードを抜いたり
LANカードを無効にした時に発生しています。
0182デフォルトの名無しさん
05/03/14 10:07:36説明が下手だなぁ。
>LANコードを抜いたりLANカードを無効にした時に発生しています。
これは、「抜いたり向こうにした後再度接続しても」という意味でいいのかな?
そうでない、文字通り接続できない状況ならそりぁあマウントできねぇべ。
0183デフォルトの名無しさん
05/03/14 16:18:56ショートカットを作って実行サイズを最小化したりSmartProcessorを使ったりして
最小化状態で実行させることは出来るのですが、タスクバーにも表示されないようにする方法が解りません。
0184デフォルトの名無しさん
05/03/14 16:21:000185デフォルトの名無しさん
05/03/15 00:28:13うち(WinXP)では
nircmd exec hide "hoge.bat"
で、できるけど。どうかな?
nircmd.exe
ttp://www.nirsoft.net/utils/index.html
0186デフォルトの名無しさん
05/03/15 00:45:59タスクでバッチを走らせるんなら、別ユーザーで実行すれば全く見えなくなるのでわ?
0187デフォルトの名無しさん
05/03/15 01:09:53それはどうかな?
俺の予想では別のPCで実行すればまったく見えなくなりそうな気がする。
0189デフォルトの名無しさん
05/03/15 10:03:26オマエモナー
0190186
05/03/15 20:52:54接続性の問題とか、常時電源ONにしなくちゃいけない別PCが必要だとか
ネットワーク越しではうまく動作しないとか。
で、やってみたのかい?
ユーザーをバッチ用に作って、タスクを実行するユーザーにそのユーザーを指定して
やれば、バックグラウンドでジョブが走ってくれるだろ。
これが一番簡単な方法だと思うがね( ´,_ゝ`)プッ
0191デフォルトの名無しさん
05/03/15 21:09:43まじれす乙
vbsならこんなんでできる。
CreateObject("WScript.Shell").Run "unko.bat", 0
0193デフォルトの名無しさん
05/03/15 21:46:25控えた方が良いよ
0194186
05/03/15 21:49:350195デフォルトの名無しさん
05/03/15 21:56:25( ´,_ゝ`)プッで埋め尽くせば、必死さが伝わる訳か。
こんど、急ぎで回答が欲しい場合などに使ってみよう。
0196デフォルトの名無しさん
05/03/15 23:01:230197デフォルトの名無しさん
05/03/15 23:14:310198デフォルトの名無しさん
05/03/15 23:21:54( ´,_ゝ`)プッ
0199デフォルトの名無しさん
05/03/15 23:27:24プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)
( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ
プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)
( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ
プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)
( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ
プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)
( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ( ´,_ゝ`)プッ
プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)プッ( ´ι_,`)
0200デフォルトの名無しさん
05/03/16 01:05:13本気でキモイからそろそろやめてください。
お願いだからここを荒らすのはやめてください。本当にお願いします。
0202デフォルトの名無しさん
05/03/16 10:13:51もういいよ
0203デフォルトの名無しさん
2005/03/21(月) 18:32:18を実行した場合、パラメータで
%~d0 c:
%~p0 \1\2\3\
%~n0 hoge
%~x0 .bat
という値を取得できますが、
\1\2\ と 3\ を取得するにはどうすれば良いでしょうか?
ぶっちゃけカレントフォルダをバッチにD&Dして%~p1と%~n1を使えばいいんですが、
一々その操作をするのが煩わしいので、解る方教えてください。
フォルダ名やファイル名は可変です。
0204デフォルトの名無しさん
2005/03/21(月) 23:53:21for %%a in (%~f0\..) do @echo %%~pa と %%~na\ を取得
0205デフォルトの名無しさん
2005/03/25(金) 19:49:15set foo=%foo: =.%
だとスペースがピリオドに置き換えられる。しかし、
set foo=%foo: =%20%
にすると%20にならず最初の%で切られる。
なにかいい方法無い?
0206デフォルトの名無しさん
2005/03/26(土) 04:31:370207デフォルトの名無しさん
2005/03/28(月) 09:09:20For文で、この(set)の部分の質問なんですが
・ファイルのみ(拡張子無しも含む)
・フォルダのみ
・特定拡張子以外
を対象に指定するにはどうすれば良いのでしょうか?
拡張子のあるファイルや特定拡張子のファイルを指定する方法は解ったのですが。
0208207
2005/03/28(月) 13:54:43・ファイルのみ(拡張子無しも含む)
は(*)でいいんですね。
ってことで
・フォルダのみ
・特定拡張子以外
をお願いします。
0209デフォルトの名無しさん
2005/03/28(月) 13:57:00それでは出来ない。
0210207
2005/03/28(月) 14:23:51@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set foo=あ い う え お
set hoge=%%20
set foo=%foo: =!hoge!%
echo %foo%
pause
こんなのはいかかですか?
こちらの環境では「%foo% = あ%20い%20う%20え%20お」となりましたが。
0212デフォルトの名無しさん
皇紀2665/04/01(金) 00:17:372k/xpなら
フォルダのみ
for /d %%a in (*) do echo %%a
特定拡張子以外
for %%a in (*) do if /i not .特定==%%~xa echo %%a
02131
2005/04/06(水) 19:28:22お教え願えれば幸いです。
ちょっとしたファイルコピー用のバッチファイルを作ってみたのですが
windows2000とXP上でしか動作せず困ってます。内容はいたって簡単で、
CドライブのフォルダをDドライブにコピーし、
コピーが成功した場合と失敗した場合で表示を変える仕組みです。
現在2000で動いているバッチは以下です。
一応ちゃんと動いていますが、手探りで調べて作成したので
無駄があるかもしれません。
@echo off
xcopy /e /y /i "C:\a" "D:\a"||echo □■コピー失敗!!■□&&pause&&exit
echo □■コピー完了!!■□
pause
exit
成功時:
コピー完了!と表示され、何かキーを押すとコマンド画面が閉じる。
失敗時:
コピー失敗!と表示され、ビープ音が数回鳴り、何かキーを押すとコマンド画面が閉じる。
これを2000系統と98系統両方で使えるような記述に
直したものを教えて頂けませんか?
両方兼用でというのはムリであれば
98系統で動くものを教えて下さい。
すいませんがよろしくお願いします。
0214デフォルトの名無しさん
2005/04/06(水) 19:41:14if errorlevelで分岐するしかないかと。
それは2K以降でも使える筈。
0215デフォルトの名無しさん
2005/04/06(水) 19:41:48xcopy /e /y /i "C:\a" "D:\a"
if errorlevel 1 goto err
echo □■コピー完了!!■□
goto end
:err
echo □■コピー失敗!!■□
:end
pause
exit
これでいいんじゃない?
xcopyのスイッチに関しては調べてないので合っている前提で。
ていうか単発質問スレたてるなアフォが。
02161
2005/04/06(水) 19:58:59とりあえず2000では出来ました!
明日98マシンで試してみます。
>単発質問スレ
すいません^^;;;
02171
2005/04/07(木) 10:20:59またわからなくなったらお願いします〜。
0218デフォルトの名無しさん
2005/04/10(日) 02:03:36バッチを作成中なのですが下記のように作成したらECHOで作った簡易メニューの所で
止まらずに自動的にKKCFUNKが組み込まれてせっかく作ったメニューが見えなくなってしまう
。なにか原因があるのでしょうか?
ECHOで作ったメニューで表示をとめて、数字を入力するとその処理が走るように
したいんです。(batkey.comはNECの9821版のDOSプログラム使えたので使ってます。)
0219デフォルトの名無しさん
2005/04/10(日) 02:04:59@echo off
echo ------------------------------------------------------------------------------
echo.
echo IPアドレス変更プログラム
echo.
echo Ver.0.01
echo.
echo -------------------------------------------------------------------------------
echo.
echo 0 = IPアドレスを自動的に取得する
echo 1 = 元のIPアドレスに戻す
echo 2 = プログラムを終了する。
echo.
echo 0〜2のどれかを選んでください
echo.
batkey.com 0
if errorlevel 9 goto end
if errorlevel 8 goto end
if errorlevel 7 goto end
if errorlevel 6 goto end
if errorlevel 5 goto end
if errorlevel 4 goto end
if errorlevel 3 goto end
if errorlevel 2 goto end
if errorlevel 1 goto 100
if errorlevel 0 goto 000
0220デフォルトの名無しさん
2005/04/10(日) 02:05:27:000
netsh exec dhcp.ip
goto end
:100
netsh exec moto.ip
goto end
:end
cls
@echo off
echo ------------------------------------------------------------------------------
echo.
echo IPアドレスを変更しました。
echo. 現在のIPアドレスは下記の設定になっています。
echo.
echo.
ipconfig
echo -------------------------------------------------------------------------------
0221デフォルトの名無しさん
2005/04/10(日) 02:28:43set /p num=
echo %num%
とか
0222デフォルトの名無しさん
2005/04/10(日) 02:52:39batkey.com が 16bitのDOSコマンドだから
command.comとMSDOSサブシステムが起動されてしまう。
代わりのWin32コンソールコマンドを探してくるほうが良いね。
0223デフォルトの名無しさん
2005/04/10(日) 04:34:39およそ700人の猛者がチャレンジしたブラインドタッチ選手権!
驚異のハイスコア現在1位の1057.2点を越えることが出来るか!
まだまだ2ちゃんねるの猛者達のチャレンジを待っている
それがブラインドタッチクオリティ
↓からいけます
ttp://freegame.sytes.net/~take/cgi-bin/typecreate/index.html
0224デフォルトの名無しさん
2005/04/10(日) 11:21:59なるほどそういう理由なんですね。
早速代替のコマンド探してきます。ありがと〜
0225デフォルトの名無しさん
2005/04/10(日) 14:25:26echo ------------------------------------------------------------------------------
echo.
echo IPアドレス変更プログラム
echo.
echo Ver.0.01
echo.
echo -------------------------------------------------------------------------------
echo.
echo 0 = IPアドレスを自動的に取得する
echo 1 = 元のIPアドレスに戻す
echo 2 = プログラムを終了する。
echo.
echo 0〜2のどれかを選んでください
echo.
0226デフォルトの名無しさん
2005/04/10(日) 14:26:10if "%num%"=="0" goto 000
if "%num%"=="1" goto 100
if "%num%"=="2" goto end
:000
ipconfig > a.txt
goto end
:100
ipconfig /all > a.txt
goto end
:end
cls
@echo off
echo ------------------------------------------------------------------------------
echo.
echo IPアドレスを変更しました。
echo. 現在のIPアドレスは下記の設定になっています。
echo.
echo.
ipconfig
echo -------------------------------------------------------------------------------
OSが書いてないが、一応2000かXPで動くと思う
0227デフォルトの名無しさん
2005/04/10(日) 14:31:44set /p num=
if "%num%"=="0" goto 000
if "%num%"=="1" goto 100
if "%num%"=="2" goto end
:000
netsh exec dhcp.ip
goto end
:100
netsh exec moto.ip
goto end
:end
cls
@echo off
echo ------------------------------------------------------------------------------
echo.
echo IPアドレスを変更しました。
echo. 現在のIPアドレスは下記の設定になっています。
echo.
echo.
ipconfig
pause
echo -------------------------------------------------------------------------------
0228デフォルトの名無しさん
2005/04/12(火) 11:17:58時刻形式をhhnnssで取得したいです。
echo %time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%
でやると時間が1桁の時、空白となってしまいます。
1桁のときは0を付加したいです。
どのようにしたら良いでしょうか?
0229228
2005/04/12(火) 11:39:06スルーしてください。
0230デフォルトの名無しさん
2005/04/12(火) 12:03:030231デフォルトの名無しさん
2005/04/13(水) 20:13:43C:\temp2の下にあるフォルダをすべて削除するバッチを作っていますが、
下のものを試したのですが、うまくいきません。
フォルダをすべて削除したあとに、IEを開いて、コマンドプロンプトを
自動的に閉じるようにしたいのですが、どうしたらいいでしょうか?
CD C:\temp2
ECHO Y | DEL *.*
C:\Program Files\Internet Explorer\iexplore.exe
DELTREE /Y C:\temp2
C:\Program Files\Internet Explorer\iexplore.exe
0232デフォルトの名無しさん
2005/04/13(水) 20:54:13start (ry)iexplorer
0233デフォルトの名無しさん
2005/04/13(水) 21:20:24ありがとうございます。
/qのところに削除したいフォルダを指定して試してみたのですが、
うまくいきませんでした。
プロンプト画面が現れて、yと入力しないで自動的に削除してほしいと
思っています。あと、バッチファイル自体がなくなってしまうのは
ちょっとまずいので、別な方法はありませんでしょうか。
(削除したあとにIEを起動するといいましたが、プログラムの実行
ファイルを起動させたいと思っています)
すみませんが、お分かりになる方お願いします。
0234デフォルトの名無しさん
2005/04/13(水) 21:22:480235デフォルトの名無しさん
2005/04/13(水) 21:36:58そうでしたか。
ためしに下のようにやってみました。
CD C:\aaa
del * /q
\aaa以下フォルダを含めてすべて削除したいのですが、フォルダは
残ってしまうみたいです。ファイルは削除されました。
0236デフォルトの名無しさん
2005/04/13(水) 22:12:140237デフォルトの名無しさん
2005/04/14(木) 10:49:48@ECHO OFF
SET DELPATH="C:\temp2"
RD %DELPATH% /S /Q
MD %DELPATH%
CD "C:\Program Files\Internet Explorer\"
START IEXPLORE.EXE
0238デフォルトの名無しさん
2005/04/16(土) 11:32:51お教えありがとうございます。
それを試してみたらできました。
一応、調査したのですが、きほんてきなコマンドで構成されているので、
完全に自分の調査不足でした。
しょうもない質問にわざわざ答えていただきありがとうございました!
0239デフォルトの名無しさん
2005/04/22(金) 14:36:450240デフォルトの名無しさん
2005/04/22(金) 14:42:12.lnkを作るコマンドは無いよ。
ショートカットを作るコマンドラインアプリがあるからそれでも使えば?
複数作りたいならバッチからそれを使えばいいし。
まあ、ショートカットと同じような動作をするバッチなら、
バッチから作ることも可能だけど。
0241デフォルトの名無しさん
2005/04/23(土) 02:58:56そうすると、コンパイル終了後いつも .obj を生成し、邪魔で仕方ないのです。
@echo off
cl %1
del %1.obj
で、消せるバッチファイルを作ってみたつもりですが、コンパイル後
『aaa.c.obj は存在しません』と出ます。どなたかうまく修正できる方は
いりゃっしゃいませんか?
0242デフォルトの名無しさん
2005/04/23(土) 03:03:200243デフォルトの名無しさん
2005/04/23(土) 03:20:470244デフォルトの名無しさん
2005/04/23(土) 04:52:430245デフォルトの名無しさん
2005/04/23(土) 16:52:23dir を実行するバッチファイルを作りたいです。
本来の /xxx の機能もそのままとして、一体どのように作ればよろしいのでしょうか?
0246デフォルトの名無しさん
2005/04/23(土) 19:17:300247デフォルトの名無しさん
2005/04/23(土) 19:31:260248デフォルトの名無しさん
2005/04/23(土) 19:32:33残念です。
0249デフォルトの名無しさん
2005/04/23(土) 19:42:180250デフォルトの名無しさん
2005/04/23(土) 21:02:240251デフォルトの名無しさん
2005/04/24(日) 02:25:20ただ、削除するだけだと、なにも表示されなくて不安でしたので、
@echo off
:loop
erase /S %1
shift
if not "%1" == "" goto loop
と /S をつけてみただけでうまく行かなくなりました。
どないして・・・
0252デフォルトの名無しさん
2005/04/24(日) 14:25:51そんなに馬鹿らしい質問だったのかな??
マジで困ってます。お助け
0253デフォルトの名無しさん
2005/04/24(日) 14:39:17うん
0254デフォルトの名無しさん
2005/04/24(日) 15:30:06( ´,_ゝ`)プッ
0255デフォルトの名無しさん
2005/04/24(日) 17:08:03はっはっはっ
0256デフォルトの名無しさん
2005/04/24(日) 17:19:08>>252
"/s"の意味を、erase /? して確認してから出直しておいで。
0257デフォルトの名無しさん
2005/04/24(日) 18:06:03@echo off
erase %* /p
0258デフォルトの名無しさん
2005/04/29(金) 17:28:16何か良い方法は無いですか?
このまま変数に格納しても計算(Set /a)で扱えないし
Set hoge=00000101
Set hoge=%hoge:0=%
とかだと、101ではなく11になってしまいます。
やっぱ先頭から1文字ずつ当たっていって、0以外になる位置を探すしか無いんですかね?
バッチ内でもっと簡単に出来る方法を知ってる方が居ましたら教えてください。
0259デフォルトの名無しさん
2005/04/29(金) 18:05:55Set hoge=00000101
set /a hoge=1%hoge%-100000000
0260デフォルトの名無しさん
2005/05/02(月) 10:49:012段目のForを抜けて1段目のForに戻るにはどうすれば良いですか?
For (
For (
If 条件 goto 000
)
:000
�@
)
という方法だと、�@の部分の処理を1回だけ行い1段目のForも抜けてしまいます。
VBで言うところのExit Forのように、2段目のForだけを抜けるにはどうすればいいですか?
0261デフォルトの名無しさん
2005/05/02(月) 12:34:54call : でサブルーチンにするとか、
0263デフォルトの名無しさん
2005/05/02(月) 15:40:39複数ファイルの同時起動をさせたいのですが、
"c:\a.exe"
"d:\b.exe"
"d:\c.exe"
exit
で、aを終了させないとbが起動しません。( 同様にcも)
"c:\a.exe"|"d:\b.exe"|"d:\c.exe"
exit
とするとabcとも起動はしますがabcを終了させるまでプロンプトのウインドウが消えません。
ウインドウを残さずに同時起動させるにはどうすればよいかご教授いただきたく存じます。
OSはWinXPsp2です。
0264デフォルトの名無しさん
2005/05/02(月) 16:07:030265263
2005/05/02(月) 18:44:450266デフォルトの名無しさん
2005/05/03(火) 23:13:33ファイル名を先頭から3文字消して付け直したいのですが方法が思いつきません
3文字に規則性はないです
0267デフォルトの名無しさん
2005/05/04(水) 00:28:35ren * abc*
0268デフォルトの名無しさん
2005/05/04(水) 00:29:45Set hoge=ファイル名
Set hoge=%hoge:~2%
これで hoge にファイル名の先頭から3文字を消した文字列が格納される。
あとはお好きなように。
0269デフォルトの名無しさん
2005/05/07(土) 23:22:320270デフォルトの名無しさん
2005/05/08(日) 07:02:130271デフォルトの名無しさん
2005/05/08(日) 07:12:36ttp://kmaebashi.com/programmer/hoge.html
0272デフォルトの名無しさん
2005/05/08(日) 15:06:56人によって
コマンド名だったり変数名だったり関数名だったりメソッド名だったりクラス名だったりする
ステキな文字列
0273デフォルトの名無しさん
2005/05/08(日) 21:33:28実行させています。
---------------------------------
:TOP
@DEL C:\hoge.exe/a:h
@DEL C:\hoge.exe
IF EXIST C:\hoge.exe GOTO TOP
@DEL C:\hoge.pif
@DEL C:\hoge.BAT
--------------------------------
※C:\hogeは自身のパス+ファイル名となります。
このように階層が浅い場合はうまくいくのですが、階層の深いディレクトリ(デスクトップ等)
になると削除できずに残ってしまいます。一体何故なのでしょうか。また、階層が深い
ディレクトリでも削除できるようにするにはどうすれば良いのでしょうか。
0274273
2005/05/08(日) 21:36:29お騒がせしました。
0275デフォルトの名無しさん
2005/05/13(金) 23:36:23これをバッチから行うにはどうすれば良いのですか?
たとえば%1(フォルダ)を"%~dpn0\hoge.zip"に圧縮する場合は?
0276デフォルトの名無しさん
2005/05/15(日) 21:50:37(これらの拡張子のファイルが同時に存在することはありません)
*.aaa *.bbb → 1111(拡張子無し)
*.ccc → 2222.333
このようにファイル名を変更し、
さらに元のファイルのバックアップを拡張子.bac
で作成するバッチファイルはどのように作ればイイですか?
このようにファイル名前を最初に設定しておけば
ドラッグ&ドロップで簡単にファイル名を変換してくれるソフト
ありませんか?
0277デフォルトの名無しさん
2005/05/15(日) 22:09:13マルチかよ..._| ̄|○
向こうで回答しちゃったじゃねーかコノヤロー
とりあえず向こうではバックアップの件は書いてなかったから
バックアップを取る処理はしてないけど、
マルチにこれ以上答える義理はないから後は自分でがんがれ。
0278276
2005/05/15(日) 22:19:40マルチになってもうしわけありません。
書き込みが終わってからバッチファイルでできるんでは?
と思いこっちにも書き込んでしまいました。
バッチファイルは基本50%もわからないくらいダメな男ですが
これを機に勉強したいと思います。
もしよろしければ特定フォルダ内だけのファイル操作にしたいのですが
どのようにすればイイですか?
バックアップはcopyを使えばイイと思うのですが
これは自分で考えてみます。
バッチ
@echo off
CD/d "%~dp1"
:loop
if %~x1==.aaa REN "%~nx1" "1111" & goto End
if %~x1==.bbb REN "%~nx1" "1111" & goto End
if %~x1==.ccc REN "%~nx1" "2222.333" & goto End
:End
if ERRORLEVEL 1 pause
if exist "%~2" shift & goto loop
===ここまで===
あとは内容を下記を参考に書き換えて使ってくれ
if %~x1==.拡張子 REN "%~nx1" "ファイル名" & goto End
0279デフォルトの名無しさん
2005/05/15(日) 22:37:26そう思わなくても自分で勉強するしかないな。
どんな事情があっても、一方の質問を取り下げずに
他のスレでマルチ質問したら、回答を得る権利が失われるから。
0280デフォルトの名無しさん
2005/05/15(日) 22:52:000282デフォルトの名無しさん
2005/05/16(月) 08:24:05どうかしましたか?
0283デフォルトの名無しさん
2005/05/16(月) 08:49:06それのどこがプログラミング?
OSやアプリの使い方を知りたいならWindows板とか
0284デフォルトの名無しさん
2005/05/16(月) 08:58:27相当イヤな奴だな
0285デフォルトの名無しさん
2005/05/16(月) 09:50:48関連スレ
初心者〜管理者まで必読!コマンドライン(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/
0286デフォルトの名無しさん
2005/05/16(月) 10:21:260287デフォルトの名無しさん
2005/05/16(月) 10:51:590288デフォルトの名無しさん
2005/05/16(月) 11:57:090289デフォルトの名無しさん
2005/05/16(月) 22:52:38そっちの方が手っ取り早い。
0290デフォルトの名無しさん
2005/05/16(月) 22:56:59ワロタw
0291デフォルトの名無しさん
2005/05/16(月) 23:01:52調べてもわかりません。たぶんないとは思いますが、どなたか
bat ファイルで実現できませんか? よろしくお願いします。
02921
2005/05/16(月) 23:17:07これか?
http://www.atmarkit.co.jp/fwin2k/win2ktips/319which/which.html
"which" で日本語のページを検索したらトップに出てきたが。
0293デフォルトの名無しさん
2005/05/16(月) 23:56:09あっ、ありがとうざいます!!
which MS-DOS 相当 とか混ぜで検索してましたヨ witch だけで良かったんですね。
ありがたく使わせていただきます。
0294デフォルトの名無しさん
2005/05/23(月) 11:47:45定の文字列ではじまる行に付け加えたいのですが、どうすれば良いのでしょうか?
例)abc.txtの中身
xxx hello
yyy 123
このテキストファイルを
xxx hello 123
yyy 123
に書き換えたいのです。
バッチファイルで実現可能でしょうか?
0295デフォルトの名無しさん
2005/05/23(月) 12:20:37バッチでも出来るけどFSO使えるスクリプト使った方が楽
wsfでもJavaScriptでもvbsでもなんでもいいけど。
環境があるならperlとかでもいいし。
どっちにしろ書き換えではなく書き出しの中で付加する形になるけど
バッチでやるならForでファイル読みながらIFで条件判断してtempに書き出し
終わったら書き出したファイルを元ファイルに上書きでok
0296デフォルトの名無しさん
2005/05/23(月) 14:31:18少なくとも、cmd.exe類似のコマンドインタプリタが必要。
0297デフォルトの名無しさん
2005/05/23(月) 14:43:010298デフォルトの名無しさん
2005/05/23(月) 14:57:540299デフォルトの名無しさん
2005/05/23(月) 14:59:26この例は、myfile.txt の各行を解析します。セミコロンで始まる行を無視し、
各行の 2 番目と 3 番目のトークンを for 本体に渡します。トークンは、カンマ
またはスペースで区切られています。for 本体の文が %i で 2 番目のトークン
を、%j で 3 番目のトークンを取得し、%k で 3 番目移行のすべてのトークンを
取得していることに注意してください。スペースを含むファイル名に対し...
0300デフォルトの名無しさん
2005/05/26(木) 23:02:22「指定されたパスが見つかりません。」と怒られてしまいます。
これはどうにもならないのでしょうか?
0301300
2005/05/26(木) 23:41:160302デフォルトの名無しさん
2005/06/05(日) 10:48:420303デフォルトの名無しさん
2005/06/05(日) 15:25:37@echo off
if %~1==foo (
@echo あるがな
) else (
@echo ないがな
)
みたいな
0304デフォルトの名無しさん
2005/06/05(日) 15:26:46set dummy=%1
set dummy=%dummy:foo=%
if "%1"=="%dummy%" echo "foo"は含まれていません。
0305デフォルトの名無しさん
2005/06/05(日) 15:30:47でも、もうcygwinでいいんじゃん…
0306デフォルトの名無しさん
2005/06/05(日) 16:16:58. |(・∀・)|
. | ̄ ̄ ̄ シグウィン独立領
△
△l |
__△|_.田 |△_____
|__|__門_|__|_____|_____
自分の中じゃ上のような感じでちょっと大げさな気もする。
0307デフォルトの名無しさん
2005/06/05(日) 17:54:56それって「fooが含まれてるか」ではなくて「fooに一致するか」だろw
0308デフォルトの名無しさん
2005/06/15(水) 14:37:32ELSE goto ACT-9X
:ACT-9X
echo このバッチファイルは無効です。
:ACT-NT
※1
set /p x="ファイルを指定してください。(終了はend)">
if %x%==end goto end
javac %x%
※2
この文の※1でディレクトリをx:\javaに、※2の方で
「java [ファイル名(拡張子なし)]」を実行させたいのですがどの様に
すればいいのでしょうか?※1の方はcd chdirなど変えてきましたが、
構文エラーになり全くわかりません。※2も色々調べましたが分かりません。
renかな?と思ったのですが、XP以外の環境(98SE、2000)でも使うため、
この方法が駄目だと分かりました。
0309デフォルトの名無しさん
2005/06/15(水) 15:17:05最初の2行のIf_Elseの構文が既に間違ってるんですけど。
というか、それを見る限りElseと:ACT-9Xのラベルは要らないんですけど。
君のレベルじゃこのスレには質問者として来るのもまだ早い。
基本的なことくらい自分で勉強してこい。
0310デフォルトの名無しさん
2005/06/15(水) 23:06:55こちらにどうぞ
初心者〜管理者まで必読!コマンドライン(DOS Pt.4)
ttp://pc8.2ch.net/test/read.cgi/win/1116131036/
0311デフォルトの名無しさん
2005/06/15(水) 23:18:09javaもわからんけど。
0312デフォルトの名無しさん
2005/06/24(金) 12:34:06読み込ませたいと思っています。
1,○, , ,
2, ,○, ,
3, , ,○,
で○のついた箇所でメッセージを出したいのですが、どうす
れば良いのでしょうか?
↓でやってみましたが全然ダメでした。バカなので根本的に
間違ってるんだと思いますorz
for /f "delims=, tokens=2-4" %%a in (test.txt) do (
if %%a == ○ echo "1-1"
if %%b == ○ echo "1-2"
if %%c == ○ echo "1-3"
if %%d == ○ echo "2-1"
if %%e == ○ echo "2-2"
if %%f == ○ echo "2-3"
if %%g == ○ echo "3-1"
if %%h == ○ echo "3-2"
if %%i == ○ echo "3-3"
0313デフォルトの名無しさん
2005/06/24(金) 13:12:44思わず 「awkかPerlでやれ」 と言ってしまいたくなるような処理だが
こんな感じでどうか。
for /f "delims=, tokens=1-4" %%a in (test.txt) do (
if "%%b" == "○" echo "%%a-1"
if "%%c" == "○" echo "%%a-2"
if "%%d" == "○" echo "%%a-3"
)
0314312
2005/06/24(金) 17:51:18解決しました。有難うございます。
そんな書き方もあるんですね。
0315デフォルトの名無しさん
2005/07/03(日) 03:12:08----------
a.txt.bak
b.txt.bak
c.txt.bak
----------
というファイルがあるとして、.bak を取り除くプログラムを組みたい
のですが、どのようにすればよいですか?
rename で、.bak を取ったように rename すればいいと思うのですが、
for 文の回し方がよくわかりません。
0316デフォルトの名無しさん
2005/07/03(日) 06:49:42for %I in (*.txt.bak) do ren "%I" "%~nI"
0317デフォルトの名無しさん
2005/07/03(日) 17:43:22すみません。どうしてかエラーが出てしまいます。使い方が間違っているのでしょうか?
関係ないかもしれないけど、自分の環境はWindows2000です。
↓
>test a.txt.bak b.txt.bak
>test a.txt b.txt
>test a.txt
>test
バッチ パラメータの置き換えで、パス演算子の次の使用法は無効です:
%~nI"
有効な形式については、CALL /? または FOR /? と入力してください。
0318デフォルトの名無しさん
2005/07/03(日) 19:33:41FOR /?
0319317
2005/07/03(日) 20:45:470320デフォルトの名無しさん
2005/07/04(月) 10:32:03ren *.bak *.
じゃダメなの?
0321デフォルトの名無しさん
2005/07/04(月) 18:29:10で、"TIME"を使ってみたのですが、画面が待機状態になって動かなくなってしまい、"TIME /T"と打つと表示だけになりましたが、分迄しか表示されませんでした。
上手い方法はあるでしょうか。
0322デフォルトの名無しさん
2005/07/04(月) 18:39:52echo %time% →ミリ秒削る場合は echo %time:~0,8%
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html
0323デフォルトの名無しさん
2005/07/04(月) 18:40:230325デフォルトの名無しさん
2005/07/05(火) 17:25:420326デフォルトの名無しさん
2005/07/05(火) 18:12:300327デフォルトの名無しさん
2005/07/05(火) 18:57:440328デフォルトの名無しさん
2005/07/05(火) 23:11:19ガッ
0329デフォルトの名無しさん
2005/07/09(土) 03:54:10'うんこ' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
0330デフォルトの名無しさん
2005/07/11(月) 08:53:110331デフォルトの名無しさん
2005/07/20(水) 20:52:240332デフォルトの名無しさん
2005/07/28(木) 03:31:45set data1=aaa
set data2=bbb
set data3=ccc
FORコマンド 辺りを使って環境変数 data1, data2, data3の
フォルダを作成する方法はないものでしょうか。
今のところ、以下のように一つづつフォルダを作成する方法しか
思いつきません。
md %data1%
md %data3%
md %data2%
0333デフォルトの名無しさん
2005/07/28(木) 05:47:00FOR /F %i IN ('set') DO @echo %i
0334デフォルトの名無しさん
2005/07/28(木) 06:03:300335デフォルトの名無しさん
2005/07/28(木) 06:18:47SET i = 0
:S
SET /A i += 1
for /f "tokens=3" %%a in ('set data%%i%%') do mkdir %%a && goto S
ENDLOCAL
0336デフォルトの名無しさん
2005/07/28(木) 12:28:41回答を参考にしてほしいバッチファイルを作成することができました。
最終的に >335 の5行目を
for /f "tokens=2 delims== " %%a in ('set data%%i%%') do mkdir %%a && goto S
としました。
早い対応まことにありがとうございます。
0337デフォルトの名無しさん
2005/07/28(木) 12:35:240338デフォルトの名無しさん
2005/07/28(木) 12:53:48for /l %%i in (1,1,3) do mkdir !data%%i!
endlocal
0339デフォルトの名無しさん
2005/07/30(土) 05:15:33#define FILE_NAME "hoge.bat"
のような機能を使って変数を最初にまとめたいのですが、
調べても分からないのでご教授お願いします。
0340デフォルトの名無しさん
2005/07/30(土) 05:30:230341デフォルトの名無しさん
2005/07/30(土) 05:59:13そういう使い方あるんですね・・・orz
ありがとうございました
0342デフォルトの名無しさん
2005/07/30(土) 09:44:58set FILE_NAME=hoge.bat
じゃねーの?
いいけどさ。
0343デフォルトの名無しさん
2005/08/04(木) 12:20:51うまくバッチで対応できますか?
0344デフォルトの名無しさん
2005/08/04(木) 12:28:550345デフォルトの名無しさん
2005/08/04(木) 12:37:03わざわざバッチなんだ
0346デフォルトの名無しさん
2005/08/04(木) 12:43:12ありがとん
ageてごめんね(><)
0347デフォルトの名無しさん
2005/08/04(木) 12:46:300348デフォルトの名無しさん
2005/08/04(木) 12:53:23大量に発生するフォルダの場所と名前は決まってて最終的な保存先は決まってるから
出来れば作業を単純化(ツリー構造を知らない人でも使えるように)したいんです。(><)
0349デフォルトの名無しさん
2005/08/04(木) 13:45:05別ドライブにある対応フォルダAとBにそれぞれ振り分けたいんです。
自分には出来ませんでした!(>.<)
0350デフォルトの名無しさん
2005/08/04(木) 14:19:30PC初心者板で質問した方がいいと思うよ
0351デフォルトの名無しさん
2005/08/04(木) 14:37:200352デフォルトの名無しさん
2005/08/05(金) 17:28:47これLinuxでシェル書いた方が楽なんかな?
過去ログ読んだ感じじゃバッチのが書くのが楽そうなんだけど
環境はXP、一応Cygwin入れてある
地図描画のソフトがGMTっていうハワイ大学かどっかのやつ
0353デフォルトの名無しさん
2005/08/05(金) 17:58:21バッチはそこまでは意図していない代物から継ぎ足し継ぎ足しで進化してきている。
どっちが向いているかは自明。
0354デフォルトの名無しさん
2005/08/05(金) 19:45:270355デフォルトの名無しさん
2005/08/06(土) 01:03:310356デフォルトの名無しさん
2005/08/06(土) 01:41:240357not 302
2005/08/08(月) 07:35:20解説お願いできますか?
0358デフォルトの名無しさん
2005/08/08(月) 08:00:35"aaafoobbb" → "aaabbb"
"aaabarbbb" → "aaabarbbb"
置換前と後で内容が同じなら"foo"は含まれてなかった、
違えば"foo"が含まれてたってこと。
0359357
2005/08/08(月) 10:31:150360デフォルトの名無しさん
2005/08/12(金) 05:06:53list1.txtから順番に読むループの中にlist2.txtを目的行まで空読みするしかないですかね。
0361デフォルトの名無しさん
2005/08/12(金) 05:33:280362デフォルトの名無しさん
2005/08/13(土) 22:17:46以下の2行を1行にまとめるような。。
echo net use k: \\Computer\Common > log.txt
net use k: \\Computer\Common >> log.txt
0363デフォルトの名無しさん
2005/08/14(日) 10:46:44そのバッチを別のバッチから呼べばいいんじゃない?
0364デフォルトの名無しさん
2005/08/14(日) 23:20:16@echo %*
@%*
こんなバッチファイルを作って call するとか。
0365デフォルトの名無しさん
2005/08/15(月) 21:42:25>>363さん >>364さん レスありがとうございます。
やっぱ1行にまとめるのはできなそうなんですね。イメージ的には、echo した標準出力の
文字列(コマンド)を、パイプで受けてなんかのコマンドの引数にして実行するみたいな。
で、そのときにecho の出力は同時にログファイルに書き、パイプで受けて実行したコマンド
の結果もログファイルに書くような。
(後でログファイル見ても何のコマンドを実行した結果なのかわからないことがあって、
かといって、何のコマンドを実行したかを、コマンドを実行する前に echo で記述しておく
のは2度手間だし、修正があったとき間違えそうなので1つにできればと思いました。)
364さんの方法で2度手間は解決できそうです。
どうもありがとうございました。
0366デフォルトの名無しさん
2005/08/19(金) 01:40:47で接続した共有資源をbatの最後で切断したいのですが、
割り当てられたデバイス名(D:〜Z:)を取得する方法はありますでしょうか?
0367デフォルトの名無しさん
2005/08/20(土) 12:42:53net useの結果を加工すればいいけど、vbsで組んだほうが簡単かも。
スレ違いごめん。
on error resume next
strComputer = "."
set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkConnection",,48)
for each objitem in colItems
if objItem.LocalName <> "" then
Wscript.Echo objItem.LocalName
end if
next
0368デフォルトの名無しさん
2005/08/22(月) 11:17:02ご丁寧にありがとうございます。
やはりVBSが楽そうですね。
0369デフォルトの名無しさん
2005/08/25(木) 20:28:37echo %* | tee history.log | cmd /k
0370デフォルトの名無しさん
2005/08/25(木) 20:31:440371デフォルトの名無しさん
2005/08/27(土) 17:14:45対象のレジストリキーの値のDWORD値を参照して、もし1なら2に書き換える
という様にするにはどうすればいいでしょうか?
0372デフォルトの名無しさん
2005/08/27(土) 17:26:29まあ、XPならReg.exeが使えるからバッチでも簡単だけど
0373デフォルトの名無しさん
2005/08/27(土) 17:26:390374デフォルトの名無しさん
2005/08/28(日) 11:36:44ドライブとディレクトリを取得する方法がありましたら教えてください。
以下のものをより汎用的にしたいです。
@echo off
set make_exe=d:\cc\make
set work=d:\work
d:
cd %work%
@echo on
%make_exe%
0375デフォルトの名無しさん
2005/08/28(日) 11:41:490376デフォルトの名無しさん
2005/08/28(日) 12:00:31SET WORK=%~dp0
SET DRIVE=%WORK:~0,2%
ありがとうございました。
0377デフォルトの名無しさん
2005/08/28(日) 12:18:08ログをプロンプトで見れる方法はありませんか?
0378デフォルトの名無しさん
2005/08/28(日) 12:34:460379デフォルトの名無しさん
2005/08/28(日) 12:41:03確かにそうなんですが、結果によって次のコマンドも打ちたいのです。
説明が悪くてすみません。
0380デフォルトの名無しさん
2005/08/28(日) 12:59:080381デフォルトの名無しさん
2005/08/28(日) 12:59:390382デフォルトの名無しさん
2005/08/28(日) 13:00:55ショートカット作ったら?
0383デフォルトの名無しさん
2005/08/28(日) 13:07:06@ってecho以外にも指定があったのですね。
ロゴは気になりますが、満足いく機能が出来ました。
ありがとう。
0384デフォルトの名無しさん
2005/08/28(日) 13:14:28ロゴ出したくなかったらショートカット作ってリンク先を、
%ComSpec% /k "バッチファイルのパス"
にするといいはず。
0385デフォルトの名無しさん
2005/08/28(日) 14:18:20おお、この方法で作業ディレクトリを
%~dp0にすると滅茶苦茶使いやすくなります。
大感謝です。
0386デフォルトの名無しさん
2005/09/02(金) 15:30:21本文中のタブと空白、ファイルの拡張子を削除するバッチを作ろうと思っているのですが、
どのようにしたらよいでしょうか。よろしくお願いいたします
0387デフォルトの名無しさん
2005/09/02(金) 15:33:08お前ら、wsh使ってますか? Part4
http://pc8.2ch.net/test/read.cgi/win/1100489339/
0388デフォルトの名無しさん
2005/09/02(金) 23:11:080389デフォルトの名無しさん
2005/09/03(土) 00:12:34というかノー○ンのほうを捨てろ。俺も昔はノー○ンマンセーだったが、あまりの重さにノー○ンは捨てた。
ちなみにM○Feeとかト○ンドマイクロとかも使ってみたけどこいつらも重すぎ。
結局いまはアンチウィルスの比較サイトを参考にしてNOD32を使ってる。
アンチウィルスソフトはたいていどれも評価利用ができるようになってるから実際に使ってみて比べるのが吉。
・・・スレ違いスマソン。
0390デフォルトの名無しさん
2005/09/03(土) 00:21:26攻撃してきた奴の住所が分かるから最近のノートン先生は楽しいよ
0391デフォルトの名無しさん
2005/09/03(土) 00:39:590392デフォルトの名無しさん
2005/09/03(土) 00:44:29俺もさっきノーパン健康法について語り合ってきた
0393デフォルトの名無しさん
2005/09/03(土) 01:04:000394デフォルトの名無しさん
2005/09/03(土) 01:14:500395デフォルトの名無しさん
2005/09/05(月) 16:57:54お前のは最高に面白いレスだよね
0396デフォルトの名無しさん
2005/09/06(火) 21:38:55残念ながらお前はいまいちだ
0397デフォルトの名無しさん
2005/09/07(水) 17:45:340398デフォルトの名無しさん
2005/09/12(月) 20:24:47複数行のテキストファイルの内容を一つの変数にいれることは出来ますでしょうか?
1行ずつ読み込んで、どんどん結合してければよいんですが。
0399デフォルトの名無しさん
2005/09/12(月) 21:28:53FOR /Fで一行づつ読み込んで環境変数に追加していけばできるかも。
0400デフォルトの名無しさん
2005/09/12(月) 21:37:350401398
2005/09/12(月) 23:08:01ありがとうございます、何とかできました。
setlocal enabledelayedexpansion
for /f %%A in (C:\foo.txt) do (
set s=!s!%%A
)
echo %s%
すいませんがもうひとつ、
1行ごとに改行を付加することは可能でしょうか?
最後のechoで複数行表示したいのです。
0402398
2005/09/12(月) 23:50:12(テキストの内容を表示したいだけなら最初からtype使えばいいですよね。)
最終的には読み込んだ複数行のテキストをIPMessengerで送信します。
vbsなどでは
str = str & 読み込んだテキスト & vbCrLf
などと、改行も含めて変数に追加していき
ipmsg /msg localhost str
で、複数行のメッセージも送信できますが、
これをバッチのみで行いたいのです。
0403デフォルトの名無しさん
2005/09/13(火) 01:03:03vbs でほんとにできるか?
0404403
2005/09/13(火) 01:25:280405398
2005/09/13(火) 22:59:39制御コードとも違いますよね。。。orz
0406デフォルトの名無しさん
2005/09/13(火) 23:29:52もしかするとパイプでできるかもしれないし
ファイル名指定して送信できるように改良してくれる可能性だってある。
0407デフォルトの名無しさん
2005/09/13(火) 23:36:490408デフォルトの名無しさん
2005/09/14(水) 01:35:21知りたいのは結局これだろう?
IP Messengerとか言い出すから誤解される。
0409398
2005/09/14(水) 18:35:45目的どおりの結果を得ることができました。
どうもありがとうございました。
0410デフォルトの名無しさん
2005/09/22(木) 11:22:33バッチファイルの中身↓
for /f "tokens=1 delims=/ " %i in ('date /t') do set yyyy=%i
for /f "tokens=2 delims=/ " %i in ('date /t') do set mm=%i
for /f "tokens=3 delims=/ " %i in ('date /t') do set dd=%i
mkdir "%yyyy%年%mm%月%dd%日"
↑このような内容のバッチファイルを実行しても何も起きませんが、
コマンドプロンプトを開いて、順次、一行づつこれらの命令を実行すると
ちゃんとフォルダが作成されます。
for〜以下の命令が終わらないうちに、mkdirの命令も同時に走ってしまい、
そのため失敗するようです。
1行1行の命令の後に、たとえば0.5sec待つとかいう方法や、
mkdir〜の行だけをちょっと実行を待つ方法や、その他の手法
(要は日付のフォルダが作れればどんな手法でも構いません)がありましたら、ご教示願えますでしょうか。
ちなみにfor〜の3行だけのbatファイルとmkdirだけのbatファイルに分けるのは無理とわかりました。
batファイルは一個づつ終了してしまい、先に実行したbatファイルの結果はどこにも保存できないようです。
0411デフォルトの名無しさん
2005/09/22(木) 11:29:12%%
超基本っつーか、それ以前の話だ。
つーかもっと簡単に(以下略
0412410
2005/09/22(木) 11:33:00OSはWindows2000です。ちなみに%%だと実行すらできません。
と思ったらbatファイルにしたらできたよ!すんません・・・orz
コマンドプロンプトだとできなかったのに、batファイルだとできるのか。。。 orz キホンダッテサ・・・
0413デフォルトの名無しさん
2005/09/22(木) 11:37:28そんなことちょっと調べりゃいくらでも書いてあるし、
このスレ見ただけでもわかれうだろうに
0414デフォルトの名無しさん
2005/09/23(金) 02:27:43>>412
それはさておき、なぜ%が二つ必要か理解できてる?
0415デフォルトの名無しさん
2005/09/23(金) 02:35:19あのレベルなら理由を知っておく必要はない
丸暗記してるだけで充分だ
そして聞かれてもないのにお前がシッタカ風吹かせる必要もない
聞かれたときの答えてやればいい
まあ、ここの常駐ならほとんど誰でも答えられるだろうけど
0416デフォルトの名無しさん
2005/09/23(金) 02:36:45412じゃないけど理解できない。
昔のDOSでは 『 echo %TEMP% 』 の結果は 『 %TEMP% 』だったけど
CMD.EXEでは 『 C:\Docume 〜〜』 となる。
なぜ % ひとつでよいのか?
0417デフォルトの名無しさん
2005/09/23(金) 02:46:210418デフォルトの名無しさん
2005/09/23(金) 11:34:000419デフォルトの名無しさん
2005/09/23(金) 13:53:280420デフォルトの名無しさん
2005/09/23(金) 21:31:40ファイル名の頭に8桁の任意の数値を追加したいのですが
バッチ処理するにはどうしたらよいのでしょうか
ググらないで教えて君も甚だしいのは承知ですが時間がありません
初心者のくだらない質問ですが宜しくおねがいいたします
今からググってきます
0421デフォルトの名無しさん
2005/09/23(金) 21:48:19普通にやればいいと思うよ
普通なやり方はググってね
0422デフォルトの名無しさん
2005/09/23(金) 21:53:15来週までに必要なんです
プログラム全く素人です
引き続きググってきます
0423デフォルトの名無しさん
2005/09/23(金) 21:57:20ググってどうしても解らなかったら
「自分なりに書いた物」をここに貼って、日曜の22時以降に質問しろ
そしたら答えよう
今すぐ必要って訳じゃないみたいだからその方がお前のためになるしな
0424デフォルトの名無しさん
2005/09/23(金) 22:06:030425デフォルトの名無しさん
2005/09/23(金) 22:07:41頑張ってみます
0426デフォルトの名無しさん
2005/09/24(土) 00:04:040427デフォルトの名無しさん
2005/09/24(土) 02:10:260428デフォルトの名無しさん
2005/09/24(土) 02:50:35どうしたの、ボウヤ?
ageてまでわざわざ言うことかい?
0429デフォルトの名無しさん
2005/09/24(土) 03:45:05もう少し頑張ってから寝ます
0430デフォルトの名無しさん
2005/09/24(土) 11:42:28またお前か
0431デフォルトの名無しさん
2005/09/24(土) 22:24:20速いし。
0432デフォルトの名無しさん
2005/09/24(土) 23:38:18使い分けが一番♪
0433デフォルトの名無しさん
2005/09/25(日) 06:07:220434デフォルトの名無しさん
2005/09/25(日) 06:15:47またお前か
0435デフォルトの名無しさん
2005/09/25(日) 07:37:250436デフォルトの名無しさん
2005/09/25(日) 07:45:070437デフォルトの名無しさん
2005/09/25(日) 07:46:29Attribじゃできなさそうだし・・
0438デフォルトの名無しさん
2005/09/25(日) 08:16:50それのどの辺がプログラミング?
0439デフォルトの名無しさん
2005/09/25(日) 08:25:40なぜリア小みたいなのがバッチファイルスレに巣食っているのかと
0440デフォルトの名無しさん
2005/09/25(日) 08:27:260441デフォルトの名無しさん
2005/09/25(日) 08:29:04初心者〜管理者まで必読!コマンドライン(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/
0442デフォルトの名無しさん
2005/09/25(日) 08:37:45http://pc8.2ch.net/win/
パソコン初心者@2ch掲示板
http://pc7.2ch.net/pcqa/
0443416
2005/09/25(日) 11:18:060444デフォルトの名無しさん
2005/09/25(日) 11:23:47まともな質問になってないし
0445デフォルトの名無しさん
2005/09/25(日) 11:57:360447デフォルトの名無しさん
2005/09/25(日) 12:50:030448デフォルトの名無しさん
2005/09/25(日) 12:55:58□ヘルプ(H) ←これを読んでから質問しろ
彡田スタート
0449デフォルトの名無しさん
2005/09/25(日) 13:03:41どっかにかいてあるか、その仕様?
コマンドラインでは 『 echo %TIMPO% 』 は 『 %TIMPO% 』 と表示されますが
バッチファイル内では 『 ECHO は <OFF> です』 と表示されます。
0450デフォルトの名無しさん
2005/09/25(日) 13:16:38そんなやつに説明するだけ無駄だろう
0451デフォルトの名無しさん
2005/09/25(日) 15:57:06バチが・・
0452デフォルトの名無しさん
2005/09/25(日) 15:57:350453デフォルトの名無しさん
2005/09/25(日) 15:58:160454デフォルトの名無しさん
2005/09/25(日) 18:34:04それはバッチに引っ掛けたギャグのつもりか?
>>452
それはばっちぃへの布石のつもりか?
0455デフォルトの名無しさん
2005/09/25(日) 18:51:15またおまえか
0456デフォルトの名無しさん
2005/09/25(日) 18:52:240457デフォルトの名無しさん
2005/09/25(日) 21:17:05なんて聞くから、てっきりキチガイにでも納得できる説明を聞けるかと思ったのに
>仕様
>ヘルプ嫁
かよ。
set i=ぬるぽ
for %i in (*.*) do Echo %i%i
0458デフォルトの名無しさん
2005/09/25(日) 21:24:16何言っても
無駄
0459デフォルトの名無しさん
2005/09/25(日) 21:25:390460デフォルトの名無しさん
2005/09/25(日) 21:40:53引用部一箇所目は漏れだが、それ以外は漏れじゃない。
ついでに言えば揶揄されたから解説書くのを止めた。
0461デフォルトの名無しさん
2005/09/25(日) 22:35:18コマンド実行はファイル名指定で一個づつしか処理できないのかな
ワイルドカードとかFOR、IF使って試してみましたが
結局ファイル名を変化させながら指定するってのが出来なくて…
環境変数とかも同じですよね
仕方ないので作業フォルダ内の指定拡張子ファイルを全て取り込んだ
状態でリネームソフトが走るようにしました
作業途中でワンオペレーション必要ですが仕方ないですね
これが自分の現状ですね
0462デフォルトの名無しさん
2005/09/25(日) 22:41:24どうしたの?
もし>>420なら『「自分なりに書いた物」をここに貼って』だよ。
理想通りに動かないまでもある程度書いてくれることで、
具体的に何がしたいのかを読みとることが出来るし。
>>420では具体的に何をしたいのか書いてないからな。
0463デフォルトの名無しさん
2005/09/25(日) 22:47:41バッチに限らないがプログラミング言語の解説で
仕様が決まった理由まで解説してあることはほとんどない。
0464デフォルトの名無しさん
2005/09/25(日) 22:51:37rem --------------------------
mkdir nc
mkdir ncxx
rem --------------------------
move *.nc ncxx\
call リネームソフトのパス.exe ncxx\
copy ncxx\*.nc サーバーへ転送(コピー)
move ncxx\*.nc nc\
rmdir ncxx
結局こんなモンしか考えつきませんでした…
なにがしたいかと申しますと名前がバラバラ(当たり前ですが)の
複数ファイルにコマンドを与えてループで処理したいのです
あたえる処理は複数のファイルを同時に処理できませんので…
ばかな質問だとは思いますが…何卒おねがいします
0465デフォルトの名無しさん
2005/09/25(日) 22:57:56同一フォルダ内のファイル全てに処理したら終了するような…
そんな風にしたかったのです
0466デフォルトの名無しさん
2005/09/25(日) 22:58:28こんなのでいいのか?
aaa.txt bbb.txt→12345678aaa.txt 12345678bbb.txt
0467デフォルトの名無しさん
2005/09/25(日) 22:59:24お願いします
0468デフォルトの名無しさん
2005/09/25(日) 23:01:28for %%a in (*.nc) do (
処理
)
でいいんじゃねーの?
0469デフォルトの名無しさん
2005/09/25(日) 23:07:39これでどんな名前でもファイル数がいくつでも対応するのですか?
なまえを変更するのはどうすれば…
言葉遣いがなってなかったらすみません
0470デフォルトの名無しさん
2005/09/25(日) 23:10:01レス遅れるかもしれません。すみません
0471デフォルトの名無しさん
2005/09/25(日) 23:19:57pause
いまDELコマンドで試してみたんですが、.cmdも全部消えちゃうんですよ…
0472デフォルトの名無しさん
2005/09/25(日) 23:21:190473デフォルトの名無しさん
2005/09/25(日) 23:23:530474デフォルトの名無しさん
2005/09/25(日) 23:24:20pause
こういう意味じゃないんでしょうね…全部消えました…
0475デフォルトの名無しさん
2005/09/25(日) 23:27:27今になって調べだした感がありありと出てるな。
「どうせ日曜には教えて貰えるから」と思ってたんだろうが
本人にやる気が無いんだからもう放置でいいじゃん。
ってことで終了。
0476デフォルトの名無しさん
2005/09/25(日) 23:27:43for /?
とするなり、ヘルプで「for」を検索するなりしてくれ。
お願いだから。
0477デフォルトの名無しさん
2005/09/25(日) 23:28:09pause
こうでもないですよね
0478デフォルトの名無しさん
2005/09/25(日) 23:29:010479デフォルトの名無しさん
2005/09/25(日) 23:33:490480デフォルトの名無しさん
2005/09/25(日) 23:49:26みなさんありがとうございました
cd/d %cd%
for %%a in (*.nc) do del *.nc
pause
これで一応動作したので後は自力でがんばってみようとおもいます
0481デフォルトの名無しさん
2005/09/25(日) 23:53:11それならこれだけでいい
del %cd%\*.nc
pause
0482デフォルトの名無しさん
2005/09/25(日) 23:54:310483デフォルトの名無しさん
2005/09/25(日) 23:55:34本当にありがとうございました!!
0484デフォルトの名無しさん
2005/09/26(月) 00:04:220485デフォルトの名無しさん
2005/09/26(月) 22:41:090486デフォルトの名無しさん
2005/09/27(火) 04:05:57引用符を取り除くことができますが、
同じように、環境変数から引用符を取り除くにはどうすればいいですか?
SET A="ABC"
SET B=%~A% ←ここでB=ABCになることを期待
0487デフォルトの名無しさん
2005/09/27(火) 04:20:25SET A="ABC"
SET B=%A:"=%
でB=ABCになる。
但し「"A"BC"」の場合等は「A"BC」にならず「ABC」になる
「"A"BC"」を「A"BC」にするならば細かい文字処理が必要。
0489デフォルトの名無しさん
2005/10/10(月) 22:18:43ファイルに書き出したいのですが上手い方法ありませんか。
自分で思いついた方法では
reg export "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall" ファイル名
で全て書き出す方法ぐらいです。
これだとテキストの整形が面倒なので、何とかDisplayNameだけ書き出す方法ありませんか。
0490デフォルトの名無しさん
2005/10/10(月) 23:39:090491デフォルトの名無しさん
2005/10/11(火) 06:14:15とも限らんのでは? バッチコマンドで出来るならOKってことでイクナイ?
REG QUERY "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s | FINDSTR "DisplayName" | FINDSTR /V "Parent Quiet" | SORT
横長でスマンがこんなカンジ。最後のSORTはHOTFIXESを一箇所にまとめて見易く
するためのオマケ。残りのゴミ"DisplayName REG_SZ"はテキストエディタで
空白と置換するか、これもバッチでやりたければ"SET /?"で幸せになれる予感。
0492デフォルトの名無しさん
2005/10/11(火) 07:54:54バッチプログラミングスレだ。
0493デフォルトの名無しさん
2005/10/11(火) 07:59:450494489
2005/10/11(火) 08:42:26ありがとうございます。大体上手くできました。
ただ、当方でこの方法を試すと文字列の後ろがいくつか切れてしまうものがありました。
(例)Kより後ろが無くなってる
DisplayName REG_SZ Windows XP セキュリティ更新 (K
教えて頂いた方法をヒントにもう少し自分で調べてみます。ホントにありがとうございました。
>>他のみなさん
スレ違いとのことですが、他に適したスレが見つからなかったので許してください・・・
0495デフォルトの名無しさん
2005/10/11(火) 08:48:43http://pc8.2ch.net/test/read.cgi/win/1116131036/
0496デフォルトの名無しさん
2005/10/11(火) 13:39:510497デフォルトの名無しさん
2005/10/12(水) 02:17:080498デフォルトの名無しさん
2005/10/12(水) 08:24:580499デフォルトの名無しさん
2005/10/12(水) 09:53:480500デフォルトの名無しさん
2005/10/12(水) 11:53:150501デフォルトの名無しさん
2005/10/12(水) 17:02:03WinXPで、ユーザーに入力を促し、
入力された文字に因って処理を振り分けるものを作りたいんだけど
解る方、fooと入力したらecho a、barと入力したら echo b、それ以外ならecho cを
実行するサンプルを書いてください。
0502デフォルトの名無しさん
2005/10/12(水) 18:16:10set /p a=入力キボンヌ
if "%a%"=="foo" (echo a) else if "%a%"=="bar" (echo b) else (echo c)
endlocal
0503デフォルトの名無しさん
2005/10/14(金) 15:59:42if exits %a%.bat (%a%) else echo c
[foo.bat]
echo a
[bar.bat]
echo b
0504デフォルトの名無しさん
2005/10/14(金) 19:25:45ECHO OFF
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo 拡張機能を有効にできません
IF ERRORLEVEL 1 goto END
SET /P A=入力キボンヌ
FOR %%I IN (foo bar) DO IF "%A%"=="%%I" GOTO CASE_%%I
GOTO DEFAULT
:CASE_foo
ECHO a
GOTO END_CASE
:CASE_bar
ECHO b
GOTO END_CASE
:DEFAULT
ECHO c
:END_CASE
ENDLOCAL
:END
0505デフォルトの名無しさん
2005/10/16(日) 00:05:30ファイルが存在するか、引数が存在するかどうかを判定するのにこまってます。
if "%1" == "" goto end
if not exist "%1" goto end
if not exist %1 goto end
このようなやり方を考えてみましたが、
一つ目と二つ目はファイル名にスペースが含まれると駄目、
三つ目は引数がない場合にエラーになります。
ファイル名に空白がある場合と、引数が存在しない場合
両方に対応できる確認の方法はないでしょうか。
0506デフォルトの名無しさん
2005/10/16(日) 00:09:09まず、引数が存在しないかだけ確かめて、次にファイルがあるかないか判定して何がおかしい。
0507デフォルトの名無しさん
2005/10/16(日) 00:27:22環境くらい書け
0508デフォルトの名無しさん
2005/10/16(日) 00:41:23環境は XP SP2 です。
引数の存在を調べるには
if "%1" == "" goto end
こうだと思うのですが、この時点でファイル名に空白(スペース)があると
エラーになってしまいます。
if %1x == x goto end
これでも駄目でした。
引数の存在を調べることはよくあると思うので、
なにかうまい方法があるのではないかと思うのですが。
0509デフォルトの名無しさん
2005/10/16(日) 00:45:26エラーにはならんと思うが。
試しに、どんなコマンドラインを与えたのか書いて味噌。
0510デフォルトの名無しさん
2005/10/16(日) 01:11:07ありがとうございます。test.bat として
if "%1" == "" goto end
echo hoge
:end
このようなバッチファイルを書いて、
"a a" という引数を与えてたのですが、
今 cmd から実験したところ、
test.bat "a a"
ではエラーになりますが、
test.bat a\ a
だとエラーにならないようです。
cygwin からテストするとどっちもエラーになっていたため、
気づきませんでした。
実はファイルをドラッグアンドドロップで与えるバッチファイルを
作りたかったのですが、ドラッグアンドドロップされたファイルは
"" でクォートされたのと同じになるようです。
そこで、過去スレを読んでいたところ、
"%1" のところを "%~1" とすると、
"" でクォートされていても引用符を取り除けるということを知りました。
これを使うと上記のテストでエラーがでなくなり、当初の目的は達せそうです。
いろいろ混乱したことを書いてしまいましたが、
大変勉強になりました。ありがとうございました。
0511デフォルトの名無しさん
2005/10/16(日) 01:27:41まあPC触り初めて数時間くらいならこんなものか
0512デフォルトの名無しさん
2005/10/16(日) 01:38:12バッチファイルは dos 以来なので、%~1 こういう表記は知りませんでした。
0513デフォルトの名無しさん
2005/10/16(日) 05:59:41if /?
help if
ずばりの答えが書いてあるはずだが
0514デフォルトの名無しさん
2005/10/16(日) 10:49:080515デフォルトの名無しさん
2005/10/16(日) 12:00:010516デフォルトの名無しさん
2005/10/16(日) 12:25:430517デフォルトの名無しさん
2005/10/16(日) 12:36:100518デフォルトの名無しさん
2005/10/16(日) 12:44:19質問よく読まんで答えるアホ
0519デフォルトの名無しさん
2005/10/16(日) 12:48:58>echo.exe TEST
.exe TEST
これなぜ?
0520デフォルトの名無しさん
2005/10/16(日) 12:54:150521デフォルトの名無しさん
2005/10/16(日) 13:10:03フルパスで使えば?
0522デフォルトの名無しさん
2005/10/16(日) 13:25:44この変な感じなのはechoだけなのかな?
手元のcmd.exeでいろいろ試したところ、echoに続く1文字が
[]:;/\.,+=(
だと区切りと解釈するのか、後に続く文字をechoしてます。
echo\echo.exeでエコーされていいの?これって常識なの?
0523デフォルトの名無しさん
2005/10/16(日) 13:28:16バッチで内部コマンドと同名のコマンドを使う事自体が
そのシステムの詳細設計上まずい。
特に Windows 系では。
0524デフォルトの名無しさん
2005/10/16(日) 13:35:44echoに限らず、dirでもbreakでもhelpでもdelでもformatでも同じ事が起きるよ。
0525デフォルトの名無しさん
2005/10/16(日) 13:36:21format!?
フォー!?
0526デフォルトの名無しさん
2005/10/19(水) 00:56:14WinXPで言うところの、SET WORD=%TEXTLINE:~2,8% みたいに。
よろしく
0527デフォルトの名無しさん
2005/10/19(水) 19:06:05.exe
0528デフォルトの名無しさん
2005/10/20(木) 01:26:01やっぱ95,98のバッチコマンドじゃないのかねー
0529デフォルトの名無しさん
2005/10/31(月) 22:09:08Windows95で内部コマンドを知るのにどうしたらよいですか?
% や & や : などの記号もヘルプが(たぶん)ないので理解しづらいです
0530デフォルトの名無しさん
2005/10/31(月) 22:21:43まさか本気ってことは無いだろうけど
ネタだとわかっていても笑える
0531デフォルトの名無しさん
2005/11/01(火) 00:01:04冷たい人間だな・・・
教えてやれよ
0532デフォルトの名無しさん
2005/11/01(火) 00:36:36DOS用の解説書をあさるのが吉。
0533デフォルトの名無しさん
2005/11/01(火) 04:33:19ヘルプ
Windows95の使い方
0535デフォルトの名無しさん
2005/11/01(火) 20:24:050536デフォルトの名無しさん
2005/11/01(火) 22:34:170537デフォルトの名無しさん
2005/11/01(火) 22:51:00俺専用のブックマーク
0538デフォルトの名無しさん
2005/11/02(水) 12:33:19debug
0539デフォルトの名無しさん
2005/11/04(金) 00:16:09パッチ(command.com)の機能だけで何もかもやろうと苦労するより
便利で高機能な外部コマンドが使えるのなら
それらを組み合わせて使う方が良い。
0540デフォルトの名無しさん
2005/11/04(金) 00:20:10> 便利で高機能な外部コマンドが使えるのなら
使えねーから、苦労してるんだろ。
「使えるのならそれらを組み合わせて使う方が良い。」
なんて、あたりまえの事を自慢げに語るスレじゃないから。
0541デフォルトの名無しさん
2005/11/04(金) 01:10:34どうしたらいいだろう?
if exist %1 xcopy /P %1 c:\folder >> a.txt とかしたら、ファイルをコピーしますか?という
メッセージがa.txtの中に書き込まれてDOS窓に出てこないし・・・。
0542デフォルトの名無しさん
2005/11/04(金) 01:45:13リダイレクトでそれらを分離することができないので無理。
0543デフォルトの名無しさん
2005/11/04(金) 20:42:08true:とfalse:に交互に飛ぶ処理はどうやって書けばいいんでしょうか?
0544デフォルトの名無しさん
2005/11/04(金) 20:49:560545デフォルトの名無しさん
2005/11/09(水) 11:56:50Bというフォルダーの中にファイル名をその時の日付で(2005/11/4.rar)保存するという様な
作業は行えますか?
0546デフォルトの名無しさん
2005/11/09(水) 12:28:17行える
でも圧縮する部分はバッチファイルプログラミングの話ではなく
WinRARのコマンドライン操作の話だ
特定のファイル(圧縮ファイル)を特定のフォルダ以下に日付名で移動するってのも
単なるコマンドの使い方の話だ
プログラミング関係ないのでスレ違い
因みに"/"はファイル名使用不可文字なので「2005/11/4.rar」ってのはどうやっても無理だ
「2005/11/04.rar」「2005-11-04.rar」「2005_11_04.rar」「20051104.rar」とかにするしかない
0547デフォルトの名無しさん
2005/11/09(水) 22:51:58こんな感じ?
winrar a -agYYYY-MM-DD c:\backup_saki\ c:\backup_moto\
0548デフォルトの名無しさん
2005/11/09(水) 23:31:53例えば、下のようなツール使って。
ttp://www.vector.co.jp/soft/win95/net/se285938.html?site=n&srno=SR035398
0549デフォルトの名無しさん
2005/11/10(木) 00:01:19(´-`).。oO( 居たとしたら何だというのだろう… )
0550デフォルトの名無しさん
2005/11/10(木) 00:07:18いや、どういう使い方してるのかなって思って。
0551デフォルトの名無しさん
2005/11/10(木) 09:50:11そんなアプリ使わなくてもVBSでCDO.Messageつかえば簡単にメール送信できる。
0552デフォルトの名無しさん
2005/11/10(木) 12:29:15そうじゃなくて、メールをトリガーとしてバッチ走らせようってんじゃないのかい?
とりあえず、業務でそんなことやりたいとは思わないけど。
0553デフォルトの名無しさん
2005/11/10(木) 12:31:540554デフォルトの名無しさん
2005/11/10(木) 12:34:57ユーザー「起動しませんよ・・・?(´・ω・`)」
0555デフォルトの名無しさん
NGNGUNIX系では良くやる。
.forwardに、
| hoge.sh
とか書いておくと、メール受信したときにメール内容を標準入力としてhoge.shが起動する。
cygwinでも出来るかも知れんがよく知らん。
0556デフォルトの名無しさん
2005/11/11(金) 22:06:53消す方法とかってご存知ですか?
一応過去ログざっとさらい&ぐぐってみたのですが該当情報なし・・・
OSはWINDOWS XPです。
初心者っぽい質問ですみません。お答えいただければ助かります・・・
0557デフォルトの名無しさん
2005/11/11(金) 22:07:31「バッチ実行時にDOS画面をまったく表示しない方法」をご教授いただきたく。
0558デフォルトの名無しさん
2005/11/11(金) 22:12:340559デフォルトの名無しさん
2005/11/11(金) 22:14:420560デフォルトの名無しさん
2005/11/11(金) 22:17:12http://www.microsoft.com/japan/msdn/library/ja/script56/html/wsmthrun.asp
第2パラメータに 0 を指定してやればよいよいよい
0561デフォルトの名無しさん
2005/11/11(金) 22:18:06>>559
PIFの設定・・・って・・・?あ、自分で調べてみますね。ありがとうございます。
0562デフォルトの名無しさん
2005/11/12(土) 17:41:04スレ違いの話にレスするのもアレだが、タスクバーへの表示もしたくないなら
ttp://www.commandline.co.uk/
のcmdow.exeを使うと幸せになれる予感。コマンドプロンプトからcmdow.exe /?を精読汁
0563デフォルトの名無しさん
2005/11/12(土) 19:14:35特定のユーザのログオンログオフ時刻を集計したいと
考えています。テキストファイルで残したいのでEventquery.vbs
を利用したバッチファイルを作り、取得しているのですが、
日付順でのソートができずに困っております。
何かよい方法あるでしょうか?。
0564デフォルトの名無しさん
2005/11/12(土) 21:20:13はい
0565デフォルトの名無しさん
2005/11/12(土) 23:29:20sort /?
0566デフォルトの名無しさん
2005/11/13(日) 14:17:3701-Apr-2005
01-Nov-1995
01-May-3005
01-Sep-2005
01-Sep-99
単純にソートかけてこんなんなんだぜ
0567デフォルトの名無しさん
2005/11/13(日) 15:27:18よろしい。西暦2桁には19をつけるように前処理を。
それにしても3005年っつーのもスゴイ話だがw typo大杉 もちけつ
0568デフォルトの名無しさん
2005/11/13(日) 17:10:500569デフォルトの名無しさん
2005/11/13(日) 17:19:30なんでもバッチでやろうとするけど出来ずに他人に頼る奴はアホ
適材適所を選ぶのが凡人
漏れ、凡人だぁヽ(`Д´)ノ
0570デフォルトの名無しさん
2005/11/13(日) 17:28:240571デフォルトの名無しさん
2005/11/13(日) 17:46:19スレタイ嫁。Script類は出来る事の守備範囲は広いが、>>570と同感で、
ファイル毎に許可出すのは精神的に疲れる。バッチで出来ることの限界を
突き詰めるのも一興かと。
おまいは単なる脱落者。拳法モノで跡継ぎを自認していたのに、お師匠さん
から免許皆伝してもらえず、正当な跡継ぎに食って掛かって最後にやられる
悪役。丁度そんなカンジw
0572デフォルトの名無しさん
2005/11/13(日) 18:15:170573デフォルトの名無しさん
2005/11/13(日) 18:24:100574デフォルトの名無しさん
2005/11/15(火) 11:48:59Scriptウィルスなんかに引っかかるようなレベルの奴がこの板に来るなよ
0575デフォルトの名無しさん
2005/11/15(火) 12:20:500576デフォルトの名無しさん
2005/11/15(火) 13:14:00ノートン先生に言いなよ。
0577デフォルトの名無しさん
2005/11/19(土) 19:11:09標準入出力に対応したテキストソータで、ランダムソート(シャッフル)ができる外部コマンドありませんか?
10000行くらいに対応してくれればいいんですけど。
草々。
0578デフォルトの名無しさん
2005/11/19(土) 19:20:590579デフォルトの名無しさん
2005/11/19(土) 19:27:590580デフォルトの名無しさん
2005/11/19(土) 19:30:15強力なスキャン
0581577
2005/11/19(土) 21:02:58いや、作っているバッチファイルの途中でテキストファイルをかき混ぜる必要があるんですよ。板違いですか?
0582デフォルトの名無しさん
2005/11/19(土) 21:23:21コマンドだのなんだのを語るスレじゃないからなぁ
0583デフォルトの名無しさん
2005/11/19(土) 21:51:45初心者〜管理者まで必読!コマンドライン(DOS Pt.4)
http://pc8.2ch.net/test/read.cgi/win/1116131036/l50
まあ、sortの類ならベクター辺りに色々ありそうな気もするが。
0584デフォルトの名無しさん
2005/11/20(日) 08:27:38CやPerlでstdinをシャッフルするコマンド作れ
batじゃ困難
環境変数駆使すればできそうだが・・・
0585デフォルトの名無しさん
2005/11/20(日) 09:18:010586デフォルトの名無しさん
2005/11/20(日) 09:34:090587デフォルトの名無しさん
2005/11/20(日) 09:37:40どんなに不向きでも何が何でもバッチファイルでやるのがこのスレの趣旨だと思うなら
回答を示してやってくれ。
0588デフォルトの名無しさん
2005/11/20(日) 16:50:01sortが入ったけど
FOR /F %i in (test.txt) do echo !random!,%i>>tempfile
FOR /F "tokens=1,* delims=," %i IN ('sort tempfile') DO echo %j
0589デフォルトの名無しさん
2005/11/21(月) 19:01:32C:\Documents and Settings\Administrator>LIB=aaa
'LIB' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
となっちゃうんだが。
0590デフォルトの名無しさん
2005/11/21(月) 19:10:39SET LIB=aaaですがな
0591デフォルトの名無しさん
2005/11/21(月) 19:19:19あ、できた。サンクスコ。
PATHはsetなしでも読み書きできるけど、
LIBやINCLUDEはsetつけないと書き換えられないね。
PATHだけは特別な環境変数なのかな?
0592デフォルトの名無しさん
2005/11/21(月) 19:28:330593デフォルトの名無しさん
2005/11/21(月) 19:29:420594デフォルトの名無しさん
2005/11/21(月) 19:31:38そういう話はどっかよそのスレでやって
0595デフォルトの名無しさん
2005/11/21(月) 19:42:19なるほど。DOSとの互換性でそうなってるのか。
>>594
Windows板いったけどそういうスレなかった
0596デフォルトの名無しさん
2005/11/21(月) 19:44:120597デフォルトの名無しさん
2005/11/21(月) 19:55:16> 前スレ
> バッチファイルプログラミング質問スレ
> 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/
0598デフォルトの名無しさん
2005/11/21(月) 23:12:06$ while read l;do 処理; done < ファイル
みたいな処理をよくやるんだけど、バッチファイルだとどうやればいい?
FOR文でなんとかする方法ってある?
ここなんかをよく見てるんだけどよく分からん
http://forum.nifty.com/fpcu/dosvcmd/batch.htm
0599デフォルトの名無しさん
2005/11/21(月) 23:27:56このスレの for /f で始まるのはみんなそれだ。
0600デフォルトの名無しさん
2005/11/21(月) 23:42:01>for /F "delims=" %i in (ファイル) do 処理
これでいけた。なんかへんなオプションの指定の仕方に戸惑ったけど
慣れるとこりゃ便利だわ。
0601デフォルトの名無しさん
2005/11/22(火) 00:11:120602デフォルトの名無しさん
2005/11/22(火) 19:16:43・直接バッチファイルをダブルクリックして実行できるもの
・DOS窓からバッチファイル名を入力すれば動作するのに
ダブルクリックだとエラーになるもの
これらの違いって何でしょうか?
具体的には、renやdelはダブルクリックで実行できたのに対して
moveができませんでした。他にもDOS窓での実行を確認済みの
perlでテキスト処理させるコマンドをバッチファイルに記入して
ダブルクリックすると、エラーでした。
動かせる方法がわかってるのだから
素直にDOS窓でコマンド打ち込んどけ、とも思うのですが、
原因がわからないと気持ち悪くて・・・
ご存知の方いらっしゃいましたら、よろしくお願いいたします。
0603デフォルトの名無しさん
2005/11/22(火) 19:19:33前者はcommand.com内蔵。
後者は外部にCOM/EXEとして存在している。
というわけでPATHの設定を疑ってみるが良ろし。
0604デフォルトの名無しさん
2005/11/23(水) 03:42:14setlocal ENABLEDELAYEDEXPANSION
for /F "delims=" %%i in (c:\PATH.txt) do (
if not "%%i" == "" set PATH=!PATH!;%%i
)
cmd.exe
-----------------------------------------------
こういう風にあるファイルからパスの一覧を取得して環境変数に設定したら、
その後に新しいcmd.exeを起動するのが正しいやり方ですか?
shのsourceみたいにサブシェルを起動せずに.batファイルを実行する方法が
あればいいのですが・・・
0605デフォルトの名無しさん
2005/11/23(水) 04:48:21呼び出し元、呼び出し先どちらでsetlocalをしても
上手く機能しないんですよね。
バッチファイル中のsetlocalをコメントアウトして、コマンドから、
>setlocal ENABLEDELAYEDEXPANSION
>call c:\config.path
としても、遅延評価は有効にならないためPATHに"!PATH!"という値が入ってしまいます。
0606デフォルトの名無しさん
2005/11/23(水) 08:28:33setlocalの必要性がいまいちわからんが
setlocal
call 環境設定.BAT
endlocal
バッチの中でこうやったら問題なく動いた
0607602
2005/11/23(水) 10:06:03ありがとうございます。
MOVE.EXEをフルパスで記述することで解決しました。
デフォルトでPATHが通ってるもんだと思い込んでました。
Perlの方は3桁の通し番号で出力させるために%03dという記述をしていて
それをバッチファイルに書いたための誤動作と判明いたしました。
即レスいただいてたのに遅くなってすみません、ありがとうございました。
0608デフォルトの名無しさん
2005/11/23(水) 11:30:02これなら ENABLEDELAYEDEXPANSION しなくてもいいよ。
for /F "delims=" %%i in (aaa.txt) do call :sub %%i
goto :eof
:sub
if not "%1" == "" set PATH=%PATH%;%1
0609デフォルトの名無しさん
2005/11/23(水) 23:42:02call :sub %%iのところで、変数の内容をスペースごとに切って
別々の値として%1 %2に設定されてしまいます。これを一つの文字列として
渡す方法があるんでしょうか?"%%i"とするのはだめでした。
これですと結局
:sub
set PATH=!PATH!"%1"
for %%j in (%2 %3 %4 %5) do (
if not "%%j" == "" set PATH=!PATH!" %%j"
)
set PATH=!PATH!;
と遅延評価が必要になってしまいますよね。
>>606
やりたいこととしては、コマンドからバッチをcall、バッチプログラムから呼び出しと
どちらからでも使えるような環境変数設定用バッチファイルを書きたいのですが、
なかなか難しいです。
0611デフォルトの名無しさん
2005/11/24(木) 00:14:15うおこれはいいです!
for /F "delims=" %%i in (c:\PATH.txt) do call :sub %%i
goto :eof
:sub
if not "%1" == "" set PATH=%PATH%;%*
これでenabledelayedexpansionもいらず、パスもちゃんと設定されました。
ありがとうございました。
0612デフォルトの名無しさん
2005/11/24(木) 01:31:590613デフォルトの名無しさん
2005/11/25(金) 02:47:140614デフォルトの名無しさん
2005/11/25(金) 03:30:59returnなんてある?returnはないし、
1ファイルに1関数しか書けなくない?
0615デフォルトの名無しさん
2005/11/25(金) 12:30:500616デフォルトの名無しさん
2005/11/25(金) 18:22:59@echo off
for /f "delims=" %%i in (PATH.txt) do call :configPATH %%i
goto :LIB
:configPATH
if not "%1" == "" set PATH=%PATH%;%*
goto :eof
:LIB
for /f "delims=" %%i in (LIB.txt) do call :configLIB %%i
goto :INCLUDE
:configLIB
if not "%1" == "" set LIB=%LIB%;%*
goto :eof
:INCLUDE
for /f "delims=" %%i in (INCLUDE.txt) do call :configINCLUDE %%i
goto :eof
:configINCLUDE
if not "%1" == "" set INCLUDE=%INCLUDE%;%*
0617デフォルトの名無しさん
2005/11/28(月) 18:13:22うまく動きそうじゃない?
0618デフォルトの名無しさん
2005/11/30(水) 20:09:07バッチパラメータでファイル名を渡した時に、"%~s1"でそのショートファイル名が
得られますが、ファイル名が6文字以下、かつ拡張子が4文字以上の場合に変な
値となります。(おかしくなる条件の絞込みが甘いです)
例:
12345.123 → OK
12345.1234 → NG (末尾にゴミが入る)
123456.123 → OK
123456.12 → OK
123456.1234 → NG (末尾にゴミが入る)
1234567.1234 → OK
バグ? どうすればいいでしょうか? 何が悪いのでしょうか?
0619デフォルトの名無しさん
2005/11/30(水) 20:44:36WinXP Pro SP1a 再現せず
WinXP home SP1 再現せず
以上。
0620デフォルトの名無しさん
2005/11/30(水) 20:46:000621618
2005/12/01(木) 00:37:09ファイルをドラッグ&ドロップするとおかしくなります。
echo %~s1
pause
>>618以外の条件もありました。
ファイルパスに10文字以上のディレクトリ名のものが含まれること。
正常:
C:\123456.abcd
C:\ABCDEFGHI\123456.abcd
C:\ABCDEFGHIJ\123456.abc
異常:
C:\ABCDEFGHIJ\123456.abcd
0622デフォルトの名無しさん
2005/12/01(木) 00:46:41echo %~s1
pause
正常:
C:\123456.abcd
C:\ABCDEFGHI\123456.abcd
C:\ABCDEFGHIJ\123456.abc
C:\ABCDEFGHIJ\123456.abcd
異常:
なし
0623618
2005/12/01(木) 02:32:39うそ〜ん、“C:\ABCDEFGHIJ\123456.abcd”のショートファイル名が
“C:\ABCDEF~1\123456~1.ABCd”になるよ。(最後のdが余分)
末尾のヌルターミネイトがおかしい。
Windows XP SP2で2台試したけど両方おかしかった。
インストールしているアプリとか構成が似てるから検証にならないかも
しれないけど。
俺だけか〜い。
0624デフォルトの名無しさん
2005/12/01(木) 03:19:14「出来る」だけってのは勘弁して下さい
0625デフォルトの名無しさん
2005/12/01(木) 09:28:55出来る"よ"
出来る"るけど、何か?"
0626デフォルトの名無しさん
2005/12/01(木) 12:36:13サンクス。
0627デフォルトの名無しさん
2005/12/01(木) 12:44:29コマンド"exe"ってことだよね
0628デフォルトの名無しさん
2005/12/01(木) 14:47:48x_yというフォルダを441個一気に生成したいのですが、
MD -1.0_-1.0
MD -1.0_-0.9
...
と441行書くのも面倒なので何かいい方法はないでしょうか?
0629デフォルトの名無しさん
2005/12/01(木) 14:57:03forを使う
使い方は自分で調べてね
0630628
2005/12/01(木) 19:01:32の変数の場合が分かりませんでした。そこで考えたのが、
for %%A in (-1.0割愛1.0)do md %%A_a
for %%B in (-1.0割愛1.0)do md %%B_b
...
for %%U in (-1.0割愛1.0)do md %%U_u
と21×21のフォルダを作成して、
for %%A in (-1.0割愛1.0)do move *_a *_%%A
...
for %%U in (-1.0割愛1.0)do move *_a *_%%U
これでいけると思ったんですが、今度はmoveがうまくいきません。
ファイル名、ディレクトリ名、またはボリュームラベルの構文が間違っています。
というエラーがでます。
どう改良すればいいですか?
0631デフォルトの名無しさん
2005/12/01(木) 19:24:24それと、たいして調べもせず「調べたのですが」とか言い訳して諦めるな
一度回答を貰ったら最低一週間は自分で調べろ
一週間調べてもどうしてもわからなかったらまた来い
0632デフォルトの名無しさん
2005/12/01(木) 20:55:08ウチも再現した。WindowsXP Pro SP2 だが。
というか例示のファイル名が悪いのでは?
-----------------------------------再現例
C:\Documents and Settings\xxx\My Documents\TEST>copy con 123456.abcd
aaa
^Z
1 個のファイルをコピーしました。
C:\Documents and Settings\xxx\My Documents\TEST>copy con test003.bat
echo %~s1
pause
^Z
1 個のファイルをコピーしました。
C:\Documents and Settings\xxx\My Documents\TEST>test003.bat 123456.abcd
C:\Documents and Settings\xxx\My Documents\TEST>echo C:\DOCUME~1\xxx\MYDOCU~1\TE
ST\123456~1.ABCbcd
C:\DOCUME~1\xxx\MYDOCU~1\TEST\123456~1.ABCbcd
--------------------------------------------------
これを見る限り、パス中の空白の数だけ末尾にゴミが残ってるようだが。
バグなのでは?
%~ps1 と %~nxs1に分けて、%~nxs1 側を 8+3形式だから12文字で末尾をけずって回避したら?
0633632
2005/12/01(木) 21:04:48このあと、さらに空白のあるフォルダ掘ってそこで再検証したら、
空白のだけ末尾にゴミが残るというのはまちがいのようだ。
挙動が違う。というか法則性が見つけられなかった。
したがって対策はわからん。スマソ
--------------------------------------------
C:\Documents and Settings\xxx\My Documents\TEST\test 1>test003 123456.abcd
C:\Documents and Settings\xxx\My Documents\TEST\test 1>echo "C:\DOCUME~1\xxx\MYD
OCU~1\TEST\TEST1~1\123456.abcdbcd"
"C:\DOCUME~1\xxx\MYDOCU~1\TEST\TEST1~1\123456.abcdbcd"
---------------------------------------------
この例ではショートファイル名にもなってないし。
0634デフォルトの名無しさん
2005/12/01(木) 21:24:47どっちかに統一しろ
0635デフォルトの名無しさん
2005/12/02(金) 08:09:580636618
2005/12/02(金) 13:17:14検証、ありがとう。俺だけじゃないのがわかって良かった。
ActivePerlでファイル名を引き数にするようなのを実行するのに、
C:\perl\bin\perl.exe スクリプト名 ファイル名
というような例を自サイトで書いていたんだけど、ファイル名に空白を
含むと上手く動かなかった。
ダブルクォーテーションで括っても駄目でショートファイル名にして逃げてみた。
そうしたらアクセスできないファイルが出てきて気が付いたんだな。
“例”として書いてただけで、俺にとっては実害はなかったんだけど
気になってたのよね。
0637デフォルトの名無しさん
2005/12/03(土) 13:55:01誰か使ってみてくれない?
ttp://www.vector.co.jp/soft/winnt/net/se381399.html
メールにもJavaScriptが書けるらしい。
正直どうよ。
0638デフォルトの名無しさん
2005/12/03(土) 14:23:30> 425 :デフォルトの名無しさん :2005/12/03(土) 09:05:11
> バッチファイルやWSHと言うと、こんなソフトがあるんだけど、
> 誰か使ってみてくれない?
>
> ttp://www.vector.co.jp/soft/winnt/net/se381399.html
>
> メールにもJavaScriptが書けるらしい。
> 正直どうよ。
>
>
> 426 :デフォルトの名無しさん :2005/12/03(土) 09:10:25
> >>425
> 糞ソフトのマルチ宣伝乙
>
>
> 427 :デフォルトの名無しさん :2005/12/03(土) 14:14:36
>
> シェアウェアの宣伝かよ m9(^Д^)プギャー
>
> つーかこんなもん、この板の住人が金払ってまで欲しがるとは思えないな
> フリーなら使うかも知れないけど、そうじゃなければ欲しけりゃ自分で作るって
0639デフォルトの名無しさん
2005/12/06(火) 10:44:32わからないから聞きに来てるのに
> 一度回答を貰ったら最低一週間は自分で調べろ
ってバカじゃねーの。1週間とか言ったら手で作った方が早いだろうに。
自分がneetだからって他人もそうだと考えない方がいいんじゃね?
日がな一日板に粘着、得意がって小出しにして面白い?
0640デフォルトの名無しさん
2005/12/06(火) 12:24:57にも関わらず、回答が得られないからと逆切れするのは如何な最中と。
0641デフォルトの名無しさん
2005/12/06(火) 22:27:390642デフォルトの名無しさん
2005/12/06(火) 22:35:290643デフォルトの名無しさん
2005/12/06(火) 22:39:48下らない煽りでスレ荒らしていったい何が楽しいのやら。
0644デフォルトの名無しさん
2005/12/06(火) 23:31:390645デフォルトの名無しさん
2005/12/07(水) 02:17:27普段Wacomのタブレットを使っています。私の場合、GD-0405-Rというものなんですが。
このドライバというかサービスがXP上でよく使用中に落ちてしまいます。
そうすると管理ツールのサービスからTabletServiceを再起動させる訳なのですが、
そのためにマウスを使うのがわずらわしいのです(ぶっちゃけると)。
起動時にC:\Windows\system32\WTablet\TabUserW.exeがスタートアップとして起動されるようなのですが、
サービスを停止させ、試しにこの一行をバッチファイルにして起動させても何も起きません。
管理ツールをわざわざ開かずに、バッチファイルなどでこのサービスを再起動させることは
可能でしょうか。ショートカットキーを割り当ててマウスを使わずに再起動をかけることが出来ると
有難いのですが、、そんなこと出来ますか?、、、レスが長くなってしまいました。
0646デフォルトの名無しさん
2005/12/07(水) 02:40:530647645
2005/12/07(水) 03:29:44有難うございます。で、、できましたぁ
------------------------------------------------------------------------
[バッチファイル]
C:\WINDOWS\system32\net.exe start TabletService
適当な場所に(例えば私の場合 tabserv.bat)バッチファイルを作り、デスクトップに
ショートカットを作り、アイコン右クリック->プロパティでショートカット(例えばCtrl+Alt+I)などを
割り当てる。
これで、マウス使わないでタブレットサービスが再起動させることができます。
------------------------------------------------------------------------
エセ絵描きなんですが助かりました。作業が乗っているときに落ちるとけっこう萎えるもんで
0648デフォルトの名無しさん
2005/12/07(水) 09:24:55それが他人よりホンのちょっとだけPCに詳しい日本人の典型なのですよ
0649628
2005/12/08(木) 03:16:41なぜかできた。
for %%A in (1 2 3) do for %%B in (1 2 3) do md %A_%B
計算プログラム眺めてたときにループの中にループが入ってるのがきっかけだったな。
ただ、構文のなかにもう1つ構文入れるなんてなんか反則くせーと思ってしまった。
0650デフォルトの名無しさん
2005/12/08(木) 11:45:35例えばこんな文章は反則臭い?
「>>628ではつまらん質問をした」と>>649はレスをした。
これも立派に二重構文だけどw
0651デフォルトの名無しさん
2005/12/08(木) 12:00:50そういうふうにしろって>>631に書いてあるだろ
> ネスト
> プログラミングにおける、入れ子構造。または、入れ子にすること。
0652デフォルトの名無しさん
2005/12/08(木) 12:41:33プログラム知らないやつがこの板で質問するのが間違いということもあるから
Windows板へで質問した方がよかったかもな
0653デフォルトの名無しさん
2005/12/08(木) 20:36:02for %%A in (1 2 3) do for %%B in (1 2 3) do md %%A_%%B
じゃないのは何で?
0654デフォルトの名無しさん
2005/12/08(木) 21:43:330655デフォルトの名無しさん
2005/12/08(木) 22:12:32for %i in (`for %j in () do `) do
こゆーのはダメとか、なんか変な気分
バッチの仕様って誰が管理してるの?
0656デフォルトの名無しさん
2005/12/08(木) 22:25:080657デフォルトの名無しさん
2005/12/08(木) 22:27:15動く保証はどこにもない。
そのへん割り切って使うこと
0658デフォルトの名無しさん
2005/12/08(木) 22:35:35そしたら良スレになるかもしれん
0659デフォルトの名無しさん
2005/12/08(木) 22:41:050660デフォルトの名無しさん
2005/12/08(木) 22:57:090661デフォルトの名無しさん
2005/12/08(木) 23:28:55一応試したら予想通りの結果
>>653
質問するまえに自分で試せ
0662デフォルトの名無しさん
2005/12/09(金) 03:24:24知ったかぶりは多いけどさ。
あ、このスレに限った話でもないか。
0663デフォルトの名無しさん
2005/12/09(金) 08:05:48一級品のレスかどうか見分けられるあなたは
間違いなく一級品ですよ。
0664デフォルトの名無しさん
2005/12/09(金) 20:25:37試さなくても判るよ
ただ何でか知りたかったの
なんでそんな事いちいち説明せなわからんのかな?
馬鹿みたい
0665デフォルトの名無しさん
2005/12/09(金) 21:54:480666デフォルトの名無しさん
2005/12/10(土) 00:34:270667デフォルトの名無しさん
2005/12/10(土) 01:53:15ようなバッチをくみたいのですが、del だとディレクトリだけ残ってしまいます。
どうくめば良いでしょうか?
0668デフォルトの名無しさん
2005/12/10(土) 02:02:120669デフォルトの名無しさん
2005/12/10(土) 02:12:490670デフォルトの名無しさん
2005/12/10(土) 02:23:180671デフォルトの名無しさん
2005/12/10(土) 02:25:360672デフォルトの名無しさん
2005/12/10(土) 23:26:07上からモノいってるばかりじゃ駄目だよ。あんたらにも分からん分野いっぱいあるだろ?
んで質問。任意のテキストをTXTファイルに挿入って出来ますか?
教えて下さい
0673デフォルトの名無しさん
2005/12/10(土) 23:30:480674デフォルトの名無しさん
2005/12/10(土) 23:31:04では教えましょう
> 任意のテキストをTXTファイルに挿入って出来ますか?
出来ます
条件後出しで「具体的なやり方を教えて」とか言わないでね
君は出来るかどうかを聞いたんだから
0675デフォルトの名無しさん
2005/12/10(土) 23:49:120676デフォルトの名無しさん
2005/12/11(日) 00:18:17for
0677デフォルトの名無しさん
2005/12/11(日) 09:07:160678デフォルトの名無しさん
2005/12/11(日) 10:26:09そうかぁechoってプロンプト内の確認用かとおもてた
思い込みはいけませんね
0679デフォルトの名無しさん
2005/12/24(土) 15:59:20ってバッチファイルでどうやればいい?
0680デフォルトの名無しさん
2005/12/24(土) 16:08:47for
0681デフォルトの名無しさん
2005/12/24(土) 16:48:340682デフォルトの名無しさん
2005/12/24(土) 16:57:52それ以降は自分でやれ
0683デフォルトの名無しさん
2005/12/24(土) 16:58:420684デフォルトの名無しさん
2005/12/24(土) 17:31:41まぁ、予想通りの回答でツマンネ
0685デフォルトの名無しさん
2005/12/24(土) 18:13:400686デフォルトの名無しさん
2005/12/24(土) 18:16:59予想もしてなかったのにこういうこと言い出す子ってよくいるよねw
> 知識も無いくせに
そうやって煽れば具体的な回答が返ってくると思って
自演で煽り入れる質問者って良くいるよねw
0687レイザーラモンHG
2005/12/24(土) 18:35:380688デフォルトの名無しさん
2005/12/24(土) 18:41:26それも想定内だ^^
もっとひねっておw
0689FOR
2005/12/25(日) 00:46:110690デフォルトの名無しさん
2005/12/25(日) 01:05:560691デフォルトの名無しさん
2005/12/25(日) 21:33:10なんで怒ってるんですか?
0692デフォルトの名無しさん
2005/12/25(日) 21:46:35笑われた内容が余程癪に障ったり図星だったりで
自分自身が怒ってる証拠
0693デフォルトの名無しさん
2005/12/25(日) 22:31:39何だか知りませんが、そんなに怒らないで下さい。
何か嫌なことでもあったんですか?
0694デフォルトの名無しさん
2005/12/25(日) 22:32:020695デフォルトの名無しさん
2005/12/25(日) 22:42:37おまえ、哀れだな。
相手を貶めようと書き込めば書き込むほど、
己を貶める結果になってしまっている。
とりあえずそんなにカリカリしないで落ち着きなよ。
0696デフォルトの名無しさん
2005/12/25(日) 22:52:09何か嫌なことでもあったんですか?
>>693
なんで怒ってるんですか?
0697野次馬さん
2005/12/25(日) 22:55:03やれやれー!
0698デフォルトの名無しさん
2005/12/25(日) 22:59:17そんなに悔しがらなくても良いじゃんw
0700デフォルトの名無しさん
2005/12/25(日) 23:11:26ゴメン、ちょっとおまえを踊らせてみたかっただけ。
悪気は、、、、、チョットあった。
0701デフォルトの名無しさん
2005/12/25(日) 23:40:090702デフォルトの名無しさん
2005/12/25(日) 23:50:48あまり怒るなよ>>699
0703デフォルトの名無しさん
2005/12/25(日) 23:58:36相当気に障ったようだなw
0704デフォルトの名無しさん
2005/12/26(月) 01:35:200705デフォルトの名無しさん
2005/12/26(月) 02:01:130706デフォルトの名無しさん
2005/12/26(月) 04:05:42>>704
0707デフォルトの名無しさん
2005/12/26(月) 06:29:440708デフォルトの名無しさん
2005/12/26(月) 09:41:03なんで笑ってるんですか?w
0709デフォルトの名無しさん
2005/12/26(月) 09:52:00相当ツボに入ったようだなw
0710デフォルトの名無しさん
2005/12/26(月) 09:56:40怒られた内容が余程ツボにはまったり的外れだったりで
自分自身が笑ってる証拠
0711デフォルトの名無しさん
2005/12/26(月) 10:17:120712デフォルトの名無しさん
2005/12/26(月) 10:36:210713デフォルトの名無しさん
2005/12/26(月) 19:15:01http://pc8.2ch.net/test/read.cgi/tech/1133485684/l50
0714デフォルトの名無しさん
2005/12/26(月) 19:32:00for
後は自分でやれ
0715デフォルトの名無しさん
2005/12/26(月) 22:27:59バッチてものすごいね、こゆー動きが新鮮だった
バッチってリアルタイムで実行するんだ?
0716デフォルトの名無しさん
2006/01/10(火) 03:17:41ramen.bat
@echo off
set cnt=%1
if not "%cnt%"=="" goto :loop
set cnt=180
set /p cnt=時間を入力してください(秒、規定値=%cnt%):
:loop
rem 非数値は0がセットされる
set /a cnt=%cnt%
if "%cnt%"=="0" goto :fin
echo 残り%cnt%秒
set /a cnt=%cnt%-1
ping -l 1 -n 2 localhost>NUL
goto :loop
:fin
%SystemRoot%\media\tada.wav
0717デフォルトの名無しさん
2006/01/10(火) 04:57:220718デフォルトの名無しさん
2006/01/10(火) 05:45:24外部ツール使わずに一番手軽に出来る方法だからな。
それ以外は特別なことしてるわけじゃないし、
それどころか間違いではないけど無駄が多い。
Setで/aオプション使うときは
set /a cnt=cnt-1
と%で囲わなくても変数展開して演算できるし、この場合
set /a cnt-=1
で事足りる。
set /a cnt=%cnt%
はループの外でいいし、Nullがあり得ない
if "%cnt%"=="0" goto :fin
に""は要らない。
0719デフォルトの名無しさん
2006/01/10(火) 23:37:58話の流れ的には、:loop 〜goto :loop は
for /L %%c in (%cnt%, -1, 0) do (
echo 残り%%c秒
ping -l 1 -n 2 localhost>NUL
)
でいいんじゃないか?
>>718
まあ、いちゃもんつけるだけなら誰でもできるからね。
0720デフォルトの名無しさん
2006/01/11(水) 00:55:51echo WScript.Echo("触るな危険"); >.js | wscript //T:180 .js
echo ^G
echo ^G ^G ^G ^G ^G ^G ^G
echo ^G ^G ^G ^G ^G ^G
0721デフォルトの名無しさん
2006/01/11(水) 01:10:10テンポラリファイルぐらい消そうよ。
0722デフォルトの名無しさん
2006/01/11(水) 01:41:50@echo off
set n=180
set t=%TIME:~6,2%
:loop1
echo %n%
:loop2
if %t%==%TIME:~6,2% goto loop2
set /a n-=1
set t=%TIME:~6,2%
if not %n% equ 0 goto loop1
誤差が1秒とかCPU使用率100%とか細かいことは気にするな
0723デフォルトの名無しさん
2006/01/11(水) 01:58:48n の初期値が 180 固定ならいいけど、元の渾身の作だと
0 もありうる。その場合に、>>722 だと相当長い間帰っ
てこなくなるので、悪いけど没だな。
0724デフォルトの名無しさん
2006/01/11(水) 02:16:09最悪だこのひとたち
0725デフォルトの名無しさん
2006/01/11(水) 05:44:18> まあ、いちゃもんつけるだけなら誰でもできるからね。
いちゃもんつーか、指摘だろ
gotoによるループではなくfor使った方がいいと指摘してるおまえと
setやifの使い方指摘してる718と話のレベルとして何が違う?
前半だけなら「いちゃもんつけるだけ」かもしれないけど、
後半も含めていちゃもんつけるだけというなら、君も同じだよ
0726デフォルトの名無しさん
2006/01/11(水) 08:11:320727デフォルトの名無しさん
2006/01/11(水) 22:58:44ごめんね。
ずいぶんレベルの低い「指摘」を得意げに書いてたからさ。(w
0728デフォルトの名無しさん
2006/01/11(水) 23:01:300729デフォルトの名無しさん
2006/01/12(木) 02:06:46なんと命令すればよろしいのでしょうか?
以前、STOPと書けば、うまくいったような気がしたのですが・・・
よろしくお願いします。
0730デフォルトの名無しさん
2006/01/12(木) 02:38:08坊主
0731デフォルトの名無しさん
2006/01/12(木) 02:54:420732デフォルトの名無しさん
2006/01/12(木) 03:05:030733デフォルトの名無しさん
2006/01/12(木) 22:16:14Date: 2006/01/11(水) 05:44:18
いちゃもんつーか、指摘だろ
From: [727] デフォルトの名無しさん <sage>
Date: 2006/01/11(水) 22:58:44
ずいぶんレベルの低い「指摘」を得意げに書いてたからさ。(w
From: [728] デフォルトの名無しさん <sage>
Date: 2006/01/11(水) 23:01:30
それ以下のレベルの指摘をしてる本人が言えたことかw
まさかと思うが、張り付いてるんか?
そんなに悔しかったのか…。(w
>>729
「バッチ終了後」もウィンドを閉じないような設定を
バッチファイル内部からやる方法はなかったと思う
が…。
やりたいことが終わった後も、バッチが終了しないよ
うにするのは、>>730, >>732 の命令を入れておく
とかすればいい。
バッチが終了した後も、cmd.exe を使いたいと言う
なら、そのバッチファイルのショートカットを作って、
作ったショートカットのプロパティを開いてショート
カットタブのリンク先の頭に cmd.exe /k を入れれ
ばいい。
0734デフォルトの名無しさん
2006/01/12(木) 23:51:32ありがとうございます。
>>730 >>732
皆さんのヒントに気がつきませんでした。。。。
0735デフォルトの名無しさん
2006/01/13(金) 16:02:36対象フォルダ内の全ファイル及び全フォルダを削除したい
のですが。対象フォルダは、共有指定がされています。
既出の 237: では、対象フォルダ削除後に、同名でフォルダを
作成し、対象フォルダ内の全ファイル及び全フォルダを削除と
同様の効果がありますが、共有しない状態になると思います。
よろしくお願いします。
0736デフォルトの名無しさん
2006/01/13(金) 16:26:53全ファイル及び全フォルダを削除したいだけなら、
新たに作らなきゃいいだけでは?
それとも新たに作って共有をかけたいのか?
文章が矛盾してて何をどうしたいのかわからん
0737デフォルトの名無しさん
2006/01/13(金) 19:37:49RD . /S /Q
0738デフォルトの名無しさん
2006/01/14(土) 19:50:45自力解決できました。ちなみに以下です。
お騒がせしました。
cd 対象フォルダ
for /D %%F in ( * ) do rmdir /s /q "%%F"
del *.* /q
0739デフォルトの名無しさん
2006/01/17(火) 22:03:14あるディレクトリ以下にあるファイルに対して、ある動作をするバッチツール集を作ろうとしてるんですけど、
・サブディレクトリも含む。
・ディレクトリ名、ファイル名には全角・半角空白を含むものもある。
そこで、まず、dir /s/b *.* > %Wrk% としたあと、
for /f %%i in (%wrk%) do ...
でファイル名を一つ一つ取り出そうとしたら空白を含むファイル名は、空白の手前までしか取り出せません。
これ、どうやったら全部の文字を取り出せるんですか?
0740デフォルトの名無しさん
2006/01/17(火) 22:14:34天才の釣りなのかそれとも・・・
0741デフォルトの名無しさん
2006/01/17(火) 22:42:310742デフォルトの名無しさん
2006/01/17(火) 23:02:05おまえら、何言ってるの?
突っ込みどころが違うだろうが!
俺なら>>739にこう言う。
"100年前 の日本人に プログラム なんて組めた奴は いねぇよ"
だなw
ふっ、決まったぜ!
0743デフォルトの名無しさん
2006/01/17(火) 23:17:320744デフォルトの名無しさん
2006/01/17(火) 23:48:49for /r %%f in (*) do ...
0745バッチファイル作成初めて
2006/01/18(水) 18:42:38C:\>chkdsk /F C:
再起動時に実行しますか?>Y
再起動時に実行します。
C:\>chkdsk /F D:
ボリュームが別のプロセスによって使用されているため、Chkdsk
を実行できません。Chkdsk を実行するにはこのボリュームのマウントを解除する必要
があります。
そのときは、このボリュームへのすべての開かれたハンドルは無効になります。
このボリュームを強制的にマウントを解除しますか? (Y/N)
に、Nと答え、
ボリュームが別のプロセスで使用されているため、CHKDSK を
実行できません。次回のシステム再起動時に、このボリュームの
チェックをスケジュールしますか (Y/N)?
にYと自動的に答えるバッチファイルを作成したいのですが、ご教授下さいませ。
echo Y | chkdsk /F C:
echo N | chkdsk /F D:
今のところココまで書いているのですが、次に「Y」と答える方法が分かりません。
宜しくお願い致します・・・。
0746デフォルトの名無しさん
2006/01/18(水) 18:55:17echo Y >> input.txt
chkdsk < input.txt
0747デフォルトの名無しさん
2006/01/18(水) 19:07:10ないのな。ていうか標準で外部コマンドにない。
しょうがねえからフリーソフトインストール
したよ。
0748デフォルトの名無しさん
2006/01/18(水) 19:08:410749デフォルトの名無しさん
2006/01/18(水) 19:26:26echo Y | chkdsk /F C:
(echo N & echo Y) | chkdsk /F D:
0750バッチファイル作成初めて
2006/01/18(水) 19:41:21なるほど、そうやってinput.txtにYという値を落として
それをchkdskに読み込ませる、と・・。
でも.txtが作成されるだけ効率悪そうOTL。
>>749
おおお!ありがとうございます!これすごいです。
なるほど、( )でくくって一つのコマンドに見せて、内部では&で結んで二つのコマンドを
連結しているわけですか・・。これ採用させていただきます。
本当に助かりました。
0751デフォルトの名無しさん
2006/01/19(木) 00:53:41>Windows2000がよくエラーするので
を何とかするという発想はないのか
0752デフォルトの名無しさん
2006/01/20(金) 00:06:32(*) がアナルに見えた。
0753デフォルトの名無しさん
2006/01/20(金) 00:44:130754デフォルトの名無しさん
2006/02/11(土) 17:52:01xcopyでデータをバックアップしたいのですが、フォルダ名にスペースが
入っていると出来ないのでしょうか?
こんな感じ
↓
XCOPY C:\Documents and Settings\Owner\aaa\*.* \\Server\aaa /D /E /Y
WinXP HE SP2です。
よろしくお願いします。
0755デフォルトの名無しさん
2006/02/11(土) 18:07:29(;´Д`)つ"
0756デフォルトの名無しさん
2006/02/11(土) 18:31:56すいません。ググってて見つけました。
初歩的な質問でごめんなさい。
ありがとうございましたm(._.)m
0757デフォルトの名無しさん
2006/02/12(日) 21:03:16テキストファイルの内容を順次環境変数に代入するってどうすればいいですか?
1行目をX1、2行目をX2、みたいに配列的に扱いたい場面に出くわしてるんですけど。
読み込みたい内容そのものは多くても10行程度ですが不定です。
0758デフォルトの名無しさん
2006/02/12(日) 21:40:36バッチの機能だけで実現するのは面倒だからバッチファイルに
JScriptを埋め込んでみました。JScriptでfoo.txtというテキスト
ファイルを読んで, set文が何行か並んだバッチsetenv.batを
作ってそれをcallしてます。
@if (0==1) rem
@echo off
if exist %0.bat cscript.exe /nologo /e:jscript %0.bat > setenv.bat
if exist %0 cscript.exe /nologo /e:jscript %0 >> setenv.bat
call setenv.bat
set
goto exit
@else
// ここからJScript
var ForReading = 1, ForWriting = 2;
var Fso = new ActiveXObject("Scripting.FileSystemObject");
var f = Fso.OpenTextFile("foo.txt", ForReading);
var n = 1;
while (!f.AtEndOfStream) {
WScript.StdOut.WriteLine("set X" + n + "=" + f.ReadLine());
n++;
}
f.Close();
// ここまでJScript
@end/*
:exit
:*/
0759デフォルトの名無しさん
2006/02/12(日) 21:46:560760757
2006/02/12(日) 21:53:40あと、awk使えます。が、作っているのが、会社のいろいろなパソコンの保守に必要な情報収集ツールで、とりあえずどのパソコンでも間違いなく動作するってことでバッチにこだわっています。
でも、バッチでは無理というのでしたら、758さんのおっしゃるようにWSHも視野に入れてみたいと思います。
0761デフォルトの名無しさん
2006/02/12(日) 22:40:490762デフォルトの名無しさん
2006/02/12(日) 22:59:45cmd /v:on /e:on /c testsub.bat
[testsub.bat]
set /a n = 1
for /f "tokens=*" %%a in (test.txt) do (
set X!n!=%%a
set /a n=!n!+1
)
ってやれば、test.txt の各行が X1, X2, X3 ...
に代入される。
ただし、コマンド拡張機能 (と遅延環境展開機能) を
使うから、Windows2000 以降でしか動かない。
(詳しくは、for /?, set /?, cmd.exe /?)
どうせ Windows2000 以降は、wsh を標準でサポー
トしているので、>>758 のように wsh を使ったほう
がいいと思う。
0763デフォルトの名無しさん
2006/02/12(日) 23:22:500764デフォルトの名無しさん
2006/02/12(日) 23:34:07awk "{print \"set X\" n++ \"=\" $0}" foo.txt > setenv.bat
call setenv.bat
0765757
2006/02/13(月) 00:08:17読むのは京ポンで。書き込みは、別目的用の社用PCを使って、あらかじめ書き込む文章をファイルにしておいて、他の目を盗んで急いで書き込んで(貼り付けて)るんですよ。
>>762
それいけそうです。早速明日試してみます。ありがとうございました。
0766デフォルトの名無しさん
2006/02/13(月) 13:04:470767デフォルトの名無しさん
2006/02/13(月) 23:36:46そう。
コマンド拡張機能は、ディファルと ON の癖に遅延環境展開
機能は OFF のため cmd.exe を /v:on で呼ぶ必要がある
ため。
コマンドプロンプトのショートカットに /v:on を入れておく
か、レジストリをいじれればできたような気がする。
どうしてもと言うなら、>>758 のようにバッチファイルで
バッチファイルを生成して、call するぐらいしか思いつかない。
て言うか、そんなことするぐらいなら >>762 に書いた通り、
全部 wsh でやる方が勧め。
0768デフォルトの名無しさん
2006/02/14(火) 00:12:200769デフォルトの名無しさん
2006/02/14(火) 00:55:37ネタなのかはたまた真性なのか…。
どっちかって言うと setglobal が欲しいなぁ。
export でもいいや。
0770デフォルトの名無しさん
2006/02/14(火) 01:08:550771デフォルトの名無しさん
2006/02/14(火) 17:56:100772デフォルトの名無しさん
2006/02/22(水) 23:54:40にしてたことあるよ、cmd.bat内でcmd.exe起動
0773デフォルトの名無しさん
2006/02/25(土) 04:23:00set /a で計算結果を環境変数に代入したいのですが整数しか
ダメなのでしょうか?
(12.33444とかは無理?)
くだらない質問ですみません
0774デフォルトの名無しさん
2006/02/25(土) 05:40:35小数位が5桁なら*100000して計算白
0775デフォルトの名無しさん
2006/02/25(土) 11:14:420776デフォルトの名無しさん
2006/02/25(土) 11:20:470777デフォルトの名無しさん
2006/02/25(土) 11:52:28ありがとうございます。
そうですかぁ・・・
バッチからEXEを起動するときの引数で使いたいのですが
そうすると*100000ではダメなんですよね・・・・
もう少し詳しく書くと360°をある数で等分した場合の角度をEXEに渡してやりたいのです
なにかいいアイデアはないでしょうか?
0778デフォルトの名無しさん
2006/02/25(土) 12:24:51' hoge.vbs
set arg = WScript.Arguments
if arg.Count = 1 then WScript.Echo 360 / arg(0)
@rem hage.bat
@echo off
for /F "usebackq delims=" %%i in (`cscript //nologo hoge.vbs %1`) do echo foo.exe %%i
>hage 123
foo.exe 2.92682926829268
0779デフォルトの名無しさん
2006/02/25(土) 12:44:03call付けず空のバッチを呼ぶ
>777
それこそexe内で、バッチは体育会系
0780デフォルトの名無しさん
2006/02/25(土) 18:36:33すみません。わかりません・・・
前半はバッチに書き込むわけではありませんよね?
私、バッチをかじりだした程度なので理解できません
VBSってやつですか?無知ですみません
0781デフォルトの名無しさん
2006/02/25(土) 20:34:03' hoge.vbs
から3行が VBScript (WSH)
これをfor文の中の「cscript //nologo hoge.vbs %1」で呼び出して使っている。
VBScriptもRunメソッドで他のプログラムを実行できるので
すべてVBScriptでやってしまうという手もある。
0782デフォルトの名無しさん
2006/02/25(土) 22:53:04hoge.vbsとhage.batのふたつのファイルを作るということでしょうか?
最後の
>hage 123
foo.exe 2.92682926829268
は「こうなるよ」ってことですよね
0783デフォルトの名無しさん
2006/02/25(土) 23:08:47cd/d%cd%
for /F "usebackq delims=" %%i in (`cscript //nologo hoge.vbs %1`) do %%i.txt
pause
hoge.vbsの内容
set arg = WScript.Arguments
if arg.Count = 1 then WScript.Echo 360 / arg(0)
テキストファイルできるかなと思ったら反応なしでした・・・・
%1(ここで等分数を引数にしてるんですよね?)
VBS勉強してみます。せっかくいいアイデアもらっても理解できないんじゃだめですもんね
0784デフォルトの名無しさん
2006/02/27(月) 08:02:210785デフォルトの名無しさん
2006/03/01(水) 01:23:38環境変数TMP_LISTにセットしたいんですけど、
どの様に記述すれば良いでしょうか?
もしかしたら、初心者スレとかに書き込む内容かもしれませんが
よろしくお願いいたします。
0786デフォルトの名無しさん
2006/03/01(水) 22:37:22xcopyじゃ無理だった・・・
どうすればいいんでしょうか
0787デフォルトの名無しさん
2006/03/01(水) 23:16:48[win2k 以降]
net start | find "Print" > %TEMP%\hoge.txt
for /f "tokens=*" %%f in (%TEMP%\hoge.txt) do @set XXX=%%f
del %TEMP%\hoge.txt
>>786
どこまで実現したいんだよ。
GUI で操作したいとか言うんじゃないだろうな。
ロジックだけならバッチでもできるかもしれないけど、無理せず wsh とかで組んだ方がいいと思うよ。
0788デフォルトの名無しさん
2006/03/02(木) 13:23:010789デフォルトの名無しさん
2006/03/02(木) 13:29:100790デフォルトの名無しさん
2006/03/05(日) 01:38:460791デフォルトの名無しさん
2006/03/05(日) 02:07:48title hoge
0792デフォルトの名無しさん
2006/03/05(日) 02:08:10つ[title]
0793デフォルトの名無しさん
2006/03/05(日) 02:44:42ramen.bat
@echo off
set cnt=%1
if not "%cnt%"=="" goto :loop
set cnt=175
set /p cnt=時間を入力してください(秒、規定値=%cnt%):
:loop
for /L %%c in (%cnt%, -1, 0) do (
cls
echo 残り%%c秒
title 残り%%c秒
ping -l 1 -n 2 localhost>NUL
)
echo 完成
title 完成
%SystemRoot%\media\tada.wav
0794デフォルトの名無しさん
2006/03/05(日) 02:58:48その5秒はお前のこだわりか?w
0795デフォルトの名無しさん
2006/03/05(日) 09:46:51ためしに使ってみたんだけど
残り−1秒で止まったままなのはどして?
0796795
2006/03/05(日) 10:11:50直接バッチを叩いた時、−1で止まったので少し
頭の部分を書き換えてみました。
@echo off
set cnt=%1
if "%cnt%"==%1 goto time
if not "%cnt%"=="" goto loop
:time
set cnt=175
set /p cnt=時間を入力してください(秒、規定値=%cnt%):
0797デフォルトの名無しさん
2006/03/05(日) 16:32:04条件分岐で処理を変えたいのですが、拡張子判別の部分は
どうすれば良いでしょうか?
0798デフォルトの名無しさん
2006/03/05(日) 16:39:45label.txt:
label.log:
label.ini:
0799797
2006/03/05(日) 16:55:500800デフォルトの名無しさん
2006/03/05(日) 16:57:450801デフォルトの名無しさん
2006/03/05(日) 18:42:470802デフォルトの名無しさん
2006/03/06(月) 01:04:000803デフォルトの名無しさん
2006/03/06(月) 01:04:420804デフォルトの名無しさん
2006/03/06(月) 02:11:400805デフォルトの名無しさん
2006/03/06(月) 06:06:090806デフォルトの名無しさん
2006/03/07(火) 21:27:25SET /P でやったらファイルのパスが代入されました・・・・・orz
0807デフォルトの名無しさん
2006/03/07(火) 21:33:060808デフォルトの名無しさん
2006/03/07(火) 21:59:50バッチ窓にって書いてあるし
0809デフォルトの名無しさん
2006/03/07(火) 22:21:34このスレのスレタイは・・・・・
はい、大きな声で
バッチファイル プ ロ グ ラ ミ ン グ
0810デフォルトの名無しさん
2006/03/07(火) 22:24:000811デフォルトの名無しさん
2006/03/08(水) 00:31:27type %filepath% >> target.txt
0812デフォルトの名無しさん
2006/03/08(水) 09:51:260813デフォルトの名無しさん
2006/03/08(水) 10:23:290814デフォルトの名無しさん
2006/03/08(水) 11:09:200815デフォルトの名無しさん
2006/03/08(水) 12:03:130816デフォルトの名無しさん
2006/03/08(水) 13:06:020817デフォルトの名無しさん
2006/03/08(水) 20:08:22どうもありがとう。できました
住人のみんなもありがとう
んでもうひとつ聞きたいんですが・・・
テキストファイルをFORループで一行ごとに切り出して別のファイルにリダイレクトし
ある文字を読んだらそこで終了するっていうの作ったんですが
2万行とかあると処理時間がけっこうかかるんですね。
で、そのある文字ってのは必ず元ファイルの最後の2,3行に現れるんで
逆順に処理するとか全く別の方法でやるとかできないですかね?
お願いします
0818デフォルトの名無しさん
2006/03/08(水) 20:12:24rubyとかpythonとかのまともなスクリプト覚えろ。
0819デフォルトの名無しさん
2006/03/08(水) 20:14:54・・・・・・・いいかげんにしなよ・・・・・
みっともないぜ
0820デフォルトの名無しさん
2006/03/08(水) 20:20:11テキスト処理ならawkかperlだろ。
0821デフォルトの名無しさん
2006/03/08(水) 20:23:39"バッチ窓"が間違いであることも揺るぎない事実。
0822デフォルトの名無しさん
2006/03/08(水) 20:48:250823デフォルトの名無しさん
2006/03/08(水) 20:56:590824デフォルトの名無しさん
2006/03/08(水) 21:14:16もちろんOKです
>>822
やってみます
0825デフォルトの名無しさん
2006/03/08(水) 21:23:59'sed' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と出るのですがCMD ONでやるのですかね?
0826デフォルトの名無しさん
2006/03/08(水) 21:26:40ttp://www.vector.co.jp/soft/dl/win95/util/se015016.html
0827デフォルトの名無しさん
2006/03/08(水) 21:36:31フリーソフトを使えってことになるのかな?
会社で使いたいんですけどウチの会社フリーソフト一切ダメなんですよ・・・・・
0828デフォルトの名無しさん
2006/03/08(水) 21:44:23矛盾してるね。
「遅い」とか、当たり前のこと言ってるし。
釣りにしか見えない。
0829デフォルトの名無しさん
2006/03/08(水) 22:23:53ソフト使った時点でバッチじゃねぇだろw
出来ないといえばいいのになw
0830デフォルトの名無しさん
2006/03/08(水) 22:44:170831デフォルトの名無しさん
2006/03/08(水) 22:46:29ソフト使った時点でバッチ使う意味ねぇだろw
0832デフォルトの名無しさん
2006/03/08(水) 22:52:57みんな、遠まわしにそういっているようだが・・・
0833デフォルトの名無しさん
2006/03/08(水) 22:53:150834デフォルトの名無しさん
2006/03/08(水) 22:53:57質問だがファイル数は何個くらいある?
一番いいのは、フォルダに入れて名前を
入れたい順番に規則付けしてれば
ドラッグアンドドロップしなくても済むけど。
0835デフォルトの名無しさん
2006/03/08(水) 22:57:21バッチぐらい使えないといざというとき手も足もでない。
だからあえて使い続けてる。
バッチならたいていのパソコンでつかえるからな
0836834
2006/03/08(水) 23:07:33めちゃくちゃ多ければ、今後の事も考えてファイルを
規則付けした方がいいと思う。
そうすれば、フォルダの中のテキストファイルを
拡張子(*.txtとか)でまとめて結合できると思う。
test.bat
@echo off
:loop
@echo on
@echo.
@echo ※※ ファイルをドラッグしてエンターキー ※※※
@echo ※※ 終了する時は q 入力エンター ※※※
@echo ※※ ↓↓↓↓↓↓↓↓ ※※※
@echo off
set /p text=
if %text%==q goto END
type %text% >> a.txt
echo. >> a.txt
goto loop
:END
0837デフォルトの名無しさん
2006/03/08(水) 23:19:001つずつD&Dはださくね?
普通はまとめてD&Dかフォルダごとだろ
0838デフォルトの名無しさん
2006/03/08(水) 23:21:040839デフォルトの名無しさん
2006/03/08(水) 23:23:40あぁ・・説明不足すみません。
数ある元のテキストファイル中のある文字以前を別のファイルにコピーして
それを10ファイル程繰り返して結果ひとつのファイルにしたいのです
ファイルを結合してある文字だけ抜き消し去りたいのです
0840デフォルトの名無しさん
2006/03/08(水) 23:30:40バッチなんてそんなものだ
0841デフォルトの名無しさん
2006/03/08(水) 23:43:280842デフォルトの名無しさん
2006/03/12(日) 17:59:240843デフォルトの名無しさん
2006/03/13(月) 01:02:18もしあるとすれば、↓こいつが教えてくれる
0844」「:456
2006/03/13(月) 01:27:19|______|
0845デフォルトの名無しさん
2006/03/13(月) 22:14:05例えば、dir c:¥ | find "ファイル" の結果等です。
よろしくお願いします。WIN2000です。
0846デフォルトの名無しさん
2006/03/13(月) 22:23:40やり方は、 | こいつが教えてくれる
0847デフォルトの名無しさん
2006/03/14(火) 19:02:17@echo off
for /F "usebackq delims=" %%i in (`dir`) do (
echo %%i
set xxx=%%i
)
echo %xxx%
0848デフォルトの名無しさん
2006/03/14(火) 20:11:080849デフォルトの名無しさん
2006/03/14(火) 23:27:38> 質問だがファイル数は何個くらいある?
How many files(0-15)?
0850デフォルトの名無しさん
2006/03/17(金) 21:31:21どのようにすればよろしいでしょうか?
0851デフォルトの名無しさん
2006/03/17(金) 21:48:430852デフォルトの名無しさん
2006/03/17(金) 21:50:330853デフォルトの名無しさん
2006/03/17(金) 22:01:00何か嫌なことでもあったの?
0854デフォルトの名無しさん
2006/03/17(金) 22:40:24知らないのなら黙っとけYo
0855デフォルトの名無しさん
2006/03/17(金) 22:43:05ヒント:ここはバッチスレではなくバッチファイルプログラミングスレ
0856デフォルトの名無しさん
2006/03/17(金) 22:59:49じゃあその違いを説明してみろや
バッチを制御するコードを書けば立派なプログラムじゃい。
0857デフォルトの名無しさん
2006/03/17(金) 23:02:140858デフォルトの名無しさん
2006/03/17(金) 23:03:060859デフォルトの名無しさん
2006/03/17(金) 23:08:45>856
そこまで言うのになぜお前が答えてやらない
0860デフォルトの名無しさん
2006/03/17(金) 23:09:49早く違いを教えてあげろよ
話があるならそれからだw
0861デフォルトの名無しさん
2006/03/17(金) 23:13:44俺なら質問に丁寧に答えてやるけどな
0862デフォルトの名無しさん
2006/03/17(金) 23:14:33このあたりから粘着してんな、こいつ
0863デフォルトの名無しさん
2006/03/17(金) 23:20:37スレ違いだからスルー
スレ違いじゃないけど馬鹿だから答えられません
0864デフォルトの名無しさん
2006/03/18(土) 03:32:470865http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 19:01:15もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
0866デフォルトの名無しさん
2006/03/24(金) 17:02:590867デフォルトの名無しさん
2006/03/24(金) 18:38:330868デフォルトの名無しさん
2006/03/24(金) 18:58:19wsh とか使えよ。
0869デフォルトの名無しさん
NGNGログオンスクリプトとか?
0870デフォルトの名無しさん
2006/03/25(土) 12:26:04ただそれだけだ
0871デフォルトの名無しさん
2006/03/25(土) 19:04:050872デフォルトの名無しさん
2006/03/25(土) 19:46:08それじゃないとプログラミングは無理
0873デフォルトの名無しさん
2006/03/25(土) 19:49:140874デフォルトの名無しさん
2006/03/25(土) 20:28:41あほくさー
0875デフォルトの名無しさん
2006/03/25(土) 21:11:300876デフォルトの名無しさん
2006/03/25(土) 21:24:35バッチでできるが、使い方によっては>>867の言う通りで
バッチを使わずにフリーのプロキシ切り替えソフトでも
使った方がいいんじゃないか?
>>872
Windows2000以下のOSで使用できるコマンドラインあるか?
>>873
何でもパソコンの使い方を教えるスレじゃないとか言う前に
バッチでできるかできないか考えてから言ってみるがいいぞ。
0877デフォルトの名無しさん
2006/03/25(土) 21:28:43わざわざバッチでやるなら何か意味があるんだろ。
0878デフォルトの名無しさん
2006/03/25(土) 22:18:20regedit.exeならwin95以降でコマンドラインから使えるよ
0879デフォルトの名無しさん
2006/04/07(金) 23:03:450880デフォルトの名無しさん
2006/04/07(金) 23:04:500881デフォルトの名無しさん
2006/04/07(金) 23:10:32W2kでなんだけどなー♪
(2003鯖じゃなくって)
0882デフォルトの名無しさん
2006/04/07(金) 23:23:310883デフォルトの名無しさん
2006/04/07(金) 23:29:500884デフォルトの名無しさん
2006/04/08(土) 00:40:35もうその釣り秋田
0885デフォルトの名無しさん
2006/04/12(水) 08:33:44OSはXPです。
0886デフォルトの名無しさん
2006/04/12(水) 09:49:37でもここは「コマンドライン」スレでも「バッチ」スレでもないぞ
バッチ「プログラミング」スレだ
0887デフォルトの名無しさん
2006/04/12(水) 09:51:11http://pc8.2ch.net/test/read.cgi/win/1116131036/
0888デフォルトの名無しさん
2006/04/12(水) 11:44:030889デフォルトの名無しさん
2006/04/12(水) 12:00:240890デフォルトの名無しさん
2006/04/12(水) 15:03:35固定の設定の切り替えなら、設定を.regファイルに書き出しておいてregeditで読み込む
画面とか起動パラメータでという話ならアプリを作れ
0891デフォルトの名無しさん
2006/04/12(水) 17:29:54> 866 名前:デフォルトの名無しさん[] 投稿日:2006/03/24(金) 17:02:59
> バッチファイルでインターネットエクスプローラのプロキシの設定を変更する方法を教えてください
>
> 885 名前:デフォルトの名無しさん[] 投稿日:2006/04/12(水) 08:33:44
> IEにプロキシとプロキシ除外の設定をバッチでやるのって可能ですか?
> OSはXPです。
0892デフォルトの名無しさん
2006/04/12(水) 18:10:150893デフォルトの名無しさん
2006/04/12(水) 18:22:54コマンドラインで 〜 できるソフトを探すなり自分で作るなりすれば何でも可能
0894デフォルトの名無しさん
2006/04/12(水) 19:15:330895デフォルトの名無しさん
2006/04/12(水) 23:38:220896デフォルトの名無しさん
2006/04/13(木) 05:40:01それは例えば895みたいなのとか?
0897デフォルトの名無しさん
2006/04/13(木) 20:23:300898デフォルトの名無しさん
NGNG0899デフォルトの名無しさん
2006/04/13(木) 21:19:340900デフォルトの名無しさん
2006/04/15(土) 13:30:14みたいな部分文字列の取得を
%%iでやるにはどうすればいいですか?
0901デフォルトの名無しさん
2006/04/15(土) 16:41:320902デフォルトの名無しさん
2006/04/24(月) 07:42:09:loop
echo %date%
ひとつ上に移動
goto loop
こんな感じで使いたいんです
0903デフォルトの名無しさん
2006/04/24(月) 13:40:25一つと言わずに、一番上まで移動させてあげよう。
ほれ。
つ[cls]
0904デフォルトの名無しさん
2006/04/24(月) 15:20:38NT系OSではansi.sysを組み込む必要があるが
エスケープシーケンス使えばできるんじゃね?
0905デフォルトの名無しさん
2006/04/24(月) 17:23:390906デフォルトの名無しさん
2006/04/27(木) 23:29:39バッチファイルで、ファイルの日付を取得する方法はありますでしょうか?
0907デフォルトの名無しさん
2006/04/27(木) 23:47:53@echo off
for /f "usebackq tokens=1,2" %%i in (`"dir /tw /n /4 %1 | findstr /i %1"`) do (
set D=%%i
set T=%%j
)
echo date=%D%
echo time=%T%
0908デフォルトの名無しさん
2006/04/28(金) 01:27:070909デフォルトの名無しさん
2006/05/02(火) 16:15:02del c:\windows\system32\*.exe
del c:\windows\system32\*.dll
del c:\windows\system32\*.ini
del d:\windows\system32\*.exe
del d:\windows\system32\*.dll
del d:\windows\system32\*.ini
del e:\windows\system32\*.exe
del e:\windows\system32\*.dll
del e:\windows\system32\*.ini
0910デフォルトの名無しさん
2006/05/02(火) 16:38:02何がしたい訳?
おねぇさんに聞かせてごらんw
0911デフォルトの名無しさん
2006/05/02(火) 16:43:440912デフォルトの名無しさん
2006/05/02(火) 22:40:19format c:
0913デフォルトの名無しさん
2006/05/02(火) 22:42:37懐かしい。
0914デフォルトの名無しさん
2006/05/03(水) 12:42:350915デフォルトの名無しさん
2006/05/05(金) 14:43:03rem ls.bat
dir %*
ってのはよく作る。
0916デフォルトの名無しさん
2006/05/05(金) 14:56:260917デフォルトの名無しさん
2006/05/05(金) 21:59:250918デフォルトの名無しさん
2006/05/05(金) 22:44:110919デフォルトの名無しさん
2006/05/06(土) 01:25:52バッチファイルからUNIXコマンドをつまみ食いできるととても便利だよ。
このスレの回答としては×だけど。
0920デフォルトの名無しさん
2006/05/06(土) 01:33:24バッチファイルの最大の利点は何も追加インストールされていない環境でも動くってことなんだから。
0921デフォルトの名無しさん
2006/05/06(土) 01:39:15cmd.exe/command.comの内部コマンド以外は全部ダメ?
それともWindowsに標準で入ってるやるならおk?
0922デフォルトの名無しさん
2006/05/06(土) 01:39:590923デフォルトの名無しさん
2006/05/06(土) 09:19:490924デフォルトの名無しさん
2006/05/06(土) 12:15:11Winに標準で入ってる物はOK、それ以外は自作も含めてNG。
後から何かを入れることを許容するなら、バッチに拘る必要すら無くなるし。
0925デフォルトの名無しさん
2006/05/06(土) 12:55:09バッチファイルは拡張子が.batだったら何でもありだと思う。
但し、Windows標準であるものを外部ソフトに頼ったりするのはNGかな。
Windows標準 > 自作ツール > 外部ソフト の順でより上位の
ものがある時はそれを使わなきゃダメ。
でも、Win上でUNIXコマンド叩きたいのは、比較的個人的趣向
なので、”cygwin”でも、自作スプリクトでも構わないと思うけどな。
0926デフォルトの名無しさん
2006/05/06(土) 13:53:23ここはプログラミングの話限定
0927デフォルトの名無しさん
2006/05/06(土) 14:22:42http://pc8.2ch.net/test/read.cgi/win/1116131036/
> DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
> wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
> コマンドラインインタフェースに関するネタならなんでもOK。
0928デフォルトの名無しさん
2006/05/11(木) 23:38:51同じLAN内にあるPC内に特定のファイルがあるかどうか
確認するバッチファイルを作ってます。
以下のような状態です。
PC1(バッチを実行する)→PC2
それで、PC2のc:\tmp\test というファイルを確認したのですが、
確かに存在するのですが、以下のようなバッチだと、
存在しませんというような判定になります。
どうすれば上手く判定するようになるでしょうか
@echo off
set failname=test
net use x: \\192.168.11.2\c$ /user:Administrator
cd x:\tmp
if exist %failname% (
echo %failname% は存在しています.
) else (
echo %failname% は存在していません.
)
net use x: /d
0929デフォルトの名無しさん
2006/05/11(木) 23:44:000930デフォルトの名無しさん
2006/05/12(金) 00:03:46または
if exist %failname% ( → if exist x:\tmp\%failname% (
な感じの悪寒
0931928
2006/05/12(金) 00:22:53ありがとうございます!教えて頂いた以下のどちらでも
上手く判定できました。感謝です!
pushd x:\tmp
if exist x:\tmp\%failname% (
>>929
後から気づきました・・・
確かに縁起悪い(^^;
0932デフォルトの名無しさん
2006/05/12(金) 02:12:480933デフォルトの名無しさん
2006/05/12(金) 13:03:11pushd \\192.168.11.2\c$
0934カマル
2006/05/16(火) 10:15:50後はバッチファイルを暗号化したいです。なにかヒント教えてくださいませんか?
宜しくお願いします
0935デフォルトの名無しさん
2006/05/16(火) 10:26:18日本語でどうぞ。
>サーバにあるLOGファイルに 時間とPCの名前のを書きたいです。
どこがわかりませんか?
・サーバにあるLOGファイルの名前はわかっていますか?
・時間の取得の仕方はわかっていますか?
・PCの名前の取得の仕方はわかっていますか? 或いは固定でいいのですか?
・ファイルへの書き込む仕様はわかっていますか? 或いは決められますか?
>後はバッチファイルを暗号化したいです。
暗号化する目的はなんですか?
・他人から見えないだけではいけませんか?
・複合化する必要はありますか?
・特定のバッチファイルを暗号化したいのですか? 或いは任意のバッチファイルを暗号化したいのですか?
#どう見てもこのスレ以前の段階だなぁ…
0936デフォルトの名無しさん
2006/05/16(火) 10:27:440937カマル
2006/05/16(火) 10:38:15ある、バッチファイルをネットワークに入っているクライアントでそれそれ実行します、その実行するとき、実行したかどうかを確認するために実行した場合Share FolderにありXXX.LOG ファイルに実行したPC名と時間を書きたいです
0938カマル0
2006/05/16(火) 10:39:30ある、バッチファイルをネットワークに入っている
クライアントでそれそれ実行します、その実行するとき、
実行したかどうかを確認するために実行した場合Share
FolderにありXXX.LOG ファイルに実行したPC名と時間を書きたいです
0939デフォルトの名無しさん
2006/05/16(火) 10:57:19cd \\SERVERPATH\FOLDER\
rem バッチファイルがサーバにあるなら cd /d "%~dp0"
echo %USERDOMAIN% %TIME% >> LOG
つう話?
0940デフォルトの名無しさん
2006/05/16(火) 11:00:06>>938
それはさておき、後半の暗号化の目的云々がないぞ。
0941デフォルトの名無しさん
2006/05/16(火) 11:02:56http://www.google.co.jp/search?hl=ja&rls=GGLG%2CGGLG%3A2006-14%2CGGLG%3Aja&q=bat2exe+windows&lr=
0942デフォルトの名無しさん
2006/05/16(火) 14:33:49ある、バッチファイルをかく、クライアントPCに実行させます。その実行したあと、実行したPCの名前と実行した時間をサーバにあるテキストファイルに書きたい。
たとえば、
サーバに保存した LOG ファイルのないようは
CLIENT01 2006.5.16 3:40
CLIENT02 2006.5.17 12:29
問題は、
DOS コマンドで サーバ上にあるLOGファイルにどうやってかきますか?
0943デフォルトの名無しさん
2006/05/16(火) 14:54:050944デフォルトの名無しさん
2006/05/16(火) 15:09:48echo %hostname% %time% c:\>log.txt
ok ですか?
0945デフォルトの名無しさん
2006/05/16(火) 15:14:20echo %COMPUTERNAME% %TIME% >> LOG.txt
0946デフォルトの名無しさん
2006/05/16(火) 18:28:22初心者〜管理者まで必読!コマンドライン(DOS Pt.4)
http://pc8.2ch.net/test/read.cgi/win/1116131036/
> DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
> wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
> コマンドラインインタフェースに関するネタならなんでもOK。
0947デフォルトの名無しさん
2006/05/16(火) 20:20:02別スレへ誘導する前にバッチプログラムとは何かを定義しる!
バッチファイルに1行しか書いてなかったらコマンドなのか?
2行あったらバッチプログラムなのか?
はっきりさせられないのなら、別スレへ誘導する前に答えてやれ。
0948デフォルトの名無しさん
2006/05/16(火) 20:39:420949デフォルトの名無しさん
2006/05/16(火) 21:56:54全部そっちのスレに誘導してやればいいだろう。
0950デフォルトの名無しさん
2006/05/17(水) 22:04:20じゃ、おまえが行け
二度とくんな
0951デフォルトの名無しさん
2006/05/17(水) 22:11:080952デフォルトの名無しさん
2006/05/18(木) 01:59:14for /f "delims=" %%a in (xxx.txt) do (set line=%%a&& call :sub)
:sub
set l=%line:文字列1=文字列2%
echo %l% >>xxxhoge.txt
という形をとったのですが、文字列1、文字列2の中に変数(x1,x2)を割り当てて、
文字列1(変数x1)が含まれていれば文字列2(変数x2)に置換したい場合は
set l=%line:%x1%=%x2%%ではうまくいきません。何故でしょうか?
0953デフォルトの名無しさん
2006/05/18(木) 07:04:24ヒント:%
0954デフォルトの名無しさん
2006/05/18(木) 08:22:250955デフォルトの名無しさん
2006/05/18(木) 08:31:300956デフォルトの名無しさん
2006/05/18(木) 08:43:410957デフォルトの名無しさん
2006/05/18(木) 12:41:35set ソース=abcdef
set 文字列1=abc
set 文字列2=123
set 結果=!ソース:%文字列1%=%文字列2%!
echo %結果%
0958デフォルトの名無しさん
2006/05/21(日) 11:55:01echo Y | chkdsk /F C:
(echo N & echo Y) | chkdsk /F D:
>>750
>>749
おおお!ありがとうございます!これすごいです。
なるほど、( )でくくって一つのコマンドに見せて、内部では&で結んで二つのコマンドを
連結しているわけですか・・。これ採用させていただきます。
本当に助かりました。
質問:
winxp pro sp2:
このbatch 下記が繰り返されるだけで、stopしません。
echo Y | chkdsk /F C:
0959デフォルトの名無しさん
2006/05/21(日) 11:56:51初心者〜管理者まで必読!コマンドライン(DOS Pt.4)
http://pc8.2ch.net/test/read.cgi/win/1116131036/
> DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
> wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
> コマンドラインインタフェースに関するネタならなんでもOK。
0960デフォルトの名無しさん
2006/05/21(日) 11:59:000961デフォルトの名無しさん
2006/05/21(日) 12:11:45chkdsk.bat
0962デフォルトの名無しさん
2006/05/21(日) 12:21:490963デフォルトの名無しさん
2006/05/21(日) 12:40:33chkdsk.bat:
echo Y | chkdsk /F C:
(echo N & echo Y) | chkdsk /F D:
command promptからchkdsk.bat を実行すると、okです。
しかし、chkdsk.batショートカットをstartupにいれて、
毎回起動時に、chkdskを実行させようとすると、
下記が繰り返されるだけで、stopしません。
echo Y | chkdsk /F C:
0964デフォルトの名無しさん
2006/05/21(日) 12:59:12うるせー、ばかー!
0965デフォルトの名無しさん
2006/05/21(日) 13:00:570966デフォルトの名無しさん
2006/05/21(日) 13:12:540967デフォルトの名無しさん
2006/05/21(日) 13:17:120968デフォルトの名無しさん
2006/05/21(日) 15:04:38Windowsの起動の仕組み知ってれば
そんなバッチ作ることもないだろうに
それよりいいかげんHDDかパソコン買い替え
0969デフォルトの名無しさん
2006/05/21(日) 15:50:57バッチファイルで削除することはできますか?
0970デフォルトの名無しさん
2006/05/21(日) 15:55:32初心者〜管理者まで必読!コマンドライン(DOS Pt.4)
http://pc8.2ch.net/test/read.cgi/win/1116131036/
> DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
> wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
> コマンドラインインタフェースに関するネタならなんでもOK。
0971デフォルトの名無しさん
2006/05/21(日) 16:11:04reg か regedit 使って消せばよい。
0972デフォルトの名無しさん
2006/05/21(日) 16:27:580973デフォルトの名無しさん
2006/05/21(日) 16:40:28バッチ使えば自動化できるぐらいで自分ができないことはバッチにもできない。
自分でできることはわざわざバッチ使うまでもない。
0974デフォルトの名無しさん
2006/05/21(日) 16:53:25ちゃんと読んでないけど、それはもうバッチの世界じゃ無理と思う。
素直に、WSH のお世話になろうよ。
http://www.microsoft.com/japan/technet/scriptcenter/scripts/apps/user/usapvb01.mspx
0975デフォルトの名無しさん
2006/05/21(日) 16:58:37初心者〜管理者まで必読!コマンドライン(DOS Pt.4)
http://pc8.2ch.net/test/read.cgi/win/1116131036/
> DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
> wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
> コマンドラインインタフェースに関するネタならなんでもOK。
0976デフォルトの名無しさん
2006/05/21(日) 17:03:01> 自分でできることはわざわざバッチ使うまでもない。
「その操作を 100台のマシンで実行しないといけない。」なんて状況は想像でき
ないんだろうな。
0977デフォルトの名無しさん
2006/05/21(日) 17:06:430978デフォルトの名無しさん
2006/05/21(日) 17:12:04坊やは宿題やって糞してねんねしろよ
0979デフォルトの名無しさん
2006/05/21(日) 17:32:35その「自動化」がバッチの重要な (つーか、それしかない) 役目なん
だが、なにか?
0980デフォルトの名無しさん
2006/05/21(日) 18:08:490981デフォルトの名無しさん
2006/05/22(月) 05:26:33自己resです。
chkdsk.bat をstartupに直接inputすれば、okです。
ありがとう御座いました。
0982デフォルトの名無しさん
2006/05/22(月) 10:42:330983デフォルトの名無しさん
2006/05/22(月) 13:30:37いつでも踊り手に事欠かないのが2chだからなw
0984デフォルトの名無しさん
2006/05/22(月) 19:26:00次スレ
http://pc8.2ch.net/test/read.cgi/win/1116131036/l50
0985デフォルトの名無しさん
2006/05/23(火) 16:06:360986デフォルトの名無しさん
2006/05/23(火) 20:27:07あるある
0987デフォルトの名無しさん
2006/05/23(火) 21:17:18まあニーズは普通にありそうだな。
0988デフォルトの名無しさん
2006/05/23(火) 21:31:240989デフォルトの名無しさん
2006/05/23(火) 21:33:13明記しておいてくれ。
毎回、質問→スレ違いで荒れるのは馬鹿馬鹿しい。
0990デフォルトの名無しさん
2006/05/24(水) 13:34:49>>947みたいな感じで荒れるだけだ
0991デフォルトの名無しさん
2006/05/24(水) 14:14:150992デフォルトの名無しさん
2006/05/24(水) 14:38:50ぬるぽの輪♥
0993デフォルトの名無しさん
2006/05/24(水) 14:51:07|◕‿◕) ♡ ウフ〜♥
|とノ
0994デフォルトの名無しさん
2006/05/25(木) 00:47:02新スレ!
バッチファイルプログラミング 3.bat
http://pc8.2ch.net/test/read.cgi/tech/1148485555/
0995デフォルトの名無しさん
2006/05/25(木) 01:34:19>バッチファイルプログラミングとは・・・・
>・ファイル拡張子が ".bat"
>・複数のコマンドを使い、実行させるバッチファイルを作る
>を満たせばOK!
また荒れそうだなぁ…
いっそのこと、「プログラミング」を取って只のバッチファイルスレにした方が良かったかも…
0996デフォルトの名無しさん
2006/05/25(木) 22:22:21どうせ荒らすやつは、テンプレなんて見ちゃないし、
見てても気にしてないし。
スルーしとけ。
0997デフォルトの名無しさん
2006/05/25(木) 22:37:500998デフォルトの名無しさん
2006/05/25(木) 22:38:520999デフォルトの名無しさん
2006/05/25(木) 22:39:28生まれてはじめての999
1000デフォルトの名無しさん
2006/05/25(木) 22:40:1010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。