ユーザー必読!コマンドライン(DOS Pt.6)
レス数が1000を超えています。これ以上書き込みはできません。
0001名無し~3.EXE
2007/04/14(土) 22:52:56ID:hbxFcMHM前スレ
1 http://pc.2ch.net/win/kako/1002/10023/1002392089.html
2 http://pc5.2ch.net/win/kako/1013/10138/1013833995.html
3 http://pc8.2ch.net/test/read.cgi/win/1062775949/l50
4 http://pc8.2ch.net/test/read.cgi/win/1116131036/l50
5 http://pc11.2ch.net/test/read.cgi/win/1152544955/l50
DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
コマンドラインインタフェースに関するネタならなんでもOK。
質問も歓迎だけど、自分で調べて勉強する努力も忘れずに。
0002名無し~3.EXE
2007/04/14(土) 22:53:39ID:hbxFcMHMバッチファイルプログラミング 3.bat
http://pc11.2ch.net/test/read.cgi/tech/1148485555/l50
■★▲DOSはまだ現役! Drive.B:
http://pc11.2ch.net/test/read.cgi/os/1046875141/l50
0003名無し~3.EXE
2007/04/14(土) 22:55:18ID:hbxFcMHMと入れようとしたら、
「サブジェクトが長過ぎます」
と警告されて、スレがたてられなかったので、上記のように変更しました。
0004名無し~3.EXE
2007/04/15(日) 10:32:11ID:SIUF16m00005名無し~3.EXE
2007/04/15(日) 18:28:27ID:OzCFcZOC名無し~3.COMか名無し~3.BATにするべきだ
0006名無し~3.EXE
2007/04/15(日) 18:55:01ID:P6RjSyHQは効かないのはなぜだろ
0007名無し~3.EXE
2007/04/16(月) 05:35:16ID:QcQIt7Ekキーボードのプロパティと MS IME 2000 のプロパティを
コマンドラインから呼ぶ方法ってある?
0008名無し~3.EXE
2007/04/16(月) 09:05:09ID:YwiqOVSMIME2000は知らないがプロパティ開いた時にタスクマネージャ等で
起動プロセス名を確認したらいいんじゃないかな
0009名無し~3.EXE
2007/04/16(月) 20:38:24ID:lm+JRBwI>8のとおりキーボードのプロパティは
control.exe keyboard で、IME2000 は
IMEJPUEX.EXE で行けた。
話は変わって、前スレで XP から 2000に
TASKKILL, TASKLIST をコピーすれば使える的な
話が出てたけど、XP じゃないと使えませんって
メッセージが出て無理だったよ。
バージョン次第なのかもしれないけど一応報告。
0010名無し~3.EXE
2007/04/22(日) 17:26:15ID:gGQB4N530011名無し~3.EXE
2007/05/04(金) 03:38:10ID:DU0ceJxSfor文で` " `(二重引用符)を区切り文字にしたいのですが、
for /f "delims=^"" %%A
と書いてもうまくいきません。
他にも一重引用符や逆引用符でくくってみたのですが、結果は同じでした
Cueシートを参照したいのでどうしても二重引用符を区切り文字にしたいのですが
どうにかならないでしょうか?
0012名無し~3.EXE
2007/05/04(金) 05:44:13ID:Hk96JH7Z001311
2007/05/04(金) 07:58:10ID:DU0ceJxSwshというものの存在をはじめて知りました…勉強して出直してきます
ただCueシートから参照した文字列を、最終的にCLIアプリケーションに送りたいのですが、
Windows Script Hostというのはそういったことも可能なのでしょうか?
0014名無し~3.EXE
2007/05/04(金) 08:05:45ID:KUqa9e+Rたとえば、
set xxx=%aaa:"=,%
001611
2007/05/04(金) 08:37:14ID:DU0ceJxSやりかたが悪いのかもしれませんが、置換ではうまくいきませんでしたorz
見識を深めると思って素直にwshを勉強します。
ありがとうございました
0017名無し~3.EXE
2007/05/04(金) 16:01:49ID:SLT3oq8Pshutdown -s -t 0
をバッチファイルで実行すると、
C:\>shutdown -s -t 0
が、繰り返し表示されるだけでWindowsが終了しません。
次に、
echo a
shutdown -s -t 0
echo b
を、バッチファイルで実行すると、
C:\>echo a
a
C:\>shutdown -s -t 0
が繰り返し表示されるのみでWindowsが終了せず、またecho bまで到達して
いないように見えます。
shutdown -sをバッチファイルで実行して、Windowsを終了させるにはどうしたら
いいのでしょうか。
0018名無し~3.EXE
2007/05/04(金) 16:23:49ID:KUqa9e+R002017
2007/05/04(金) 16:42:26ID:SLT3oq8P思わず後ろを振り返っちまっただよ。
カレントディレクトリの方がPATHのディレクトリ群よりも優先されるということ
ですか?
0021名無し~3.EXE
2007/05/04(金) 19:43:35ID:EyJempdz爆笑。
0022名無し~3.EXE
2007/05/04(金) 21:43:22ID:R5kvvwgs0023名無し~3.EXE
2007/05/05(土) 15:50:54ID:kP//l2AG0024名無し~3.EXE
2007/05/07(月) 19:25:07ID:Num9bxOL0025名無し~3.EXE
2007/05/08(火) 21:33:06ID:sjfhnHyhmd con.\
ってどういう理屈でそういう結果になるの?
0026名無し~3.EXE
2007/05/09(水) 01:16:38ID:Hl8Z3A4f昔conconバグがブラクラに流用されてWindowsが落とされる問題が頻発した。
conconバグは修正されたが、Windowsには予約デバイス名を含むファイル名の
扱いに今なおバグが潜んでいる。
よって>>25の挙動も単なるバグ。
と実行もしていないのに言ってみるテスツ
0027名無し~3.EXE
2007/05/09(水) 12:01:51ID:bjubhlyIWIN2Kでレジストリの内容を読み出して環境変数に値をセットしたいのですが
"C:\Documents and Settings"のように値に空白が含まれていると
ググって拾ったバッチでは、うまく動きません。
とりあえず
REG QUERY サブキー エントリ | SED エントリで抜く > 一時ファイル
for /f "delims=," %%f in (一時ファイル) DO SET REG=%%f
で目的は果たしたのですが
for文のコマンドの中にパイプが組み込めないので
バッチが2行になり、なんとなく負けた感じがするので
一時ファイルを作成しないことを前提に
1.REG.EXE 以外は、標準コマンドもしくはマイクロソフト提供ツールを使用
または
2.フリーのツールを使用
上記の条件でバッチでレジストリの内容を環境変数に値をセットする方法ってあるのでしょうか?
0028名無し~3.EXE
2007/05/09(水) 12:26:22ID:eIs+wjw8最近のはさすがにそんなことはないのだろう。
>>27 へのレスは
「わかりません」。
0030名無し~3.EXE
2007/05/09(水) 17:12:00ID:ADeKrMMD>パイプ
SED使わずにやればいいのに
>?
つwsh
またはwmic.exe(?) ←2000で使えたっけ?
003127
2007/05/09(水) 18:13:37ID:bjubhlyIレス�dクス
>>30
>SED使わずにやればいいのに
例えば REG QUERY サブキー "SENDTO" の出力が
-ここから-----------------------
! REG.EXE VERSION 3.0
サブキー
空白 SENDTO タブ REG_SZ タブ C:\Documents and Settings.......
-ここまで-----------------------
と出てくるので C:\Documents and Settings....... を
SEDを使わずに取り込む方法のご教示をお願いします。
0032名無し~3.EXE
2007/05/09(水) 18:51:00ID:ADeKrMMDかな?
0033名無し~3.EXE
2007/05/09(水) 19:01:53ID:0CVMi5Iffor /f "skip=4 tokens=3 delims= " %%I in ('reg query 完全キー名 /v 値名') do set reg%%I
echo %reg%
endlocal
0034名無し~3.EXE
2007/05/09(水) 19:05:05ID:0CVMi5Ifset reg=%%I
に修正して。
それとdelims=の後には空白ではなくTabが入ってる。
0036名無し~3.EXE
2007/05/09(水) 19:34:54ID:0CVMi5Ifなるほど。でもファイルパスって前提があるのでは?
そういうこと言ったら、キー名に空白が入ってたらアウトってのも言える。
0037名無し~3.EXE
2007/05/09(水) 19:36:28ID:0CVMi5If0039名無し~3.EXE
2007/05/09(水) 19:58:51ID:0CVMi5Iffor /f "skip=4 tokens=2* delims= " %%I in ('reg query 完全キー名 /v "値名"') do set reg=%%J
004027
2007/05/09(水) 20:21:29ID:bjubhlyIレス�dクス
>>32
>for /f "tokens=1-2*" %%1 in ( ) do if %%1=SENDTO set reg=%%3
は
for /f "tokens=1-2*" %%1 in ( ) do if %%1==SENDTO set reg=%%3
ですよね
全部の方法で出来ました。
ご教示ありがとうございました。
0041名無し~3.EXE
2007/05/11(金) 11:16:52ID:stFG0Iol0042名無し~3.EXE
2007/05/11(金) 15:16:11ID:Fg7QQDj2jt.exeを使用して、プロパティにSystemRequired=1を指定する。
http://www.windows-world.jp/ms_support/-/18422-2.html
-- Sample.txt ----------------
!SD Sample.job
/CTJ StartDate = Today StartTime = NOW Disabled = 0 Type = Daily TypeArguments = 1
/SJ SystemRequired=1 ApplicationName = Notepad.exe WorkingDirectory = C:\ Comment = "サンプル ジョブ" Creator = "名無し~3.EXE" Priority = Normal MaxRunTime = 86400000 DeleteWhenDone = 1
/SC (コンピュータ名)\(アカウント名) (パスワード)
/SAJ Sample.job
/PJ
------------------------------
>jt @sample.txt
>jt /lj %systemroot%\tasks\sample.job /pj
0043名無し~3.EXE
2007/05/11(金) 20:20:42ID:stFG0Iolどうもありがとうございます。
やってみます。
0044名無し~3.EXE
2007/05/14(月) 00:43:43ID:XMJhZ/Pp(例えば mkdir %USERNAME% とやると %USERNAME% というフォルダが作成される etc)
0045名無し~3.EXE
2007/05/14(月) 00:51:50ID:66G3PQU8^を適当に入れてコマンドプロンプトでは変数名を一致させないようにする
mkdir %^USERNAME%
とか
バッチファイルでは%を%%でエスケープする
mkdir %%USERNAME%%
0046名無し~3.EXE
2007/05/14(月) 01:15:57ID:6p7JJnAYバッチファイル内で、たとえば、
dir /B "C:\ほげ\*"
と記述して実行したときは問題なく「C:\ほげ」内を一覧表示してくれるのですが、
その中のファイルに対して操作したいときに
for /F "skip=2" %%A IN ('dir /B "C:\ほげ\*"') do (
echo %%Aとかいろんな処理
)
とすると、「ファイルが見つかりません」と表示されます。
セットの部分だけを(dir /B "C:\hoge\*"')と書き換えると
「C:\hoge」内に対して問題なく処理できるので、
この引数以外の部分については特に問題ないと思います。
どなたかアドバイスよろしくお願いします。
004746
2007/05/14(月) 01:20:12ID:6p7JJnAYset FILEPATH=C:\ほげ\*
for /F "skip=2" %%A IN ('dir /B "C:\ほげ\*"') do .....
でも「ファイルが見つかりません」と出ます。
どうしようorz。
0048名無し~3.EXE
2007/05/14(月) 01:20:24ID:MCFCwKH0おそらく、そのパスの中にスペースが入ってるとかでは?"delims="
004946
2007/05/14(月) 01:56:09ID:6p7JJnAYdelims=を指定しないとスペースで結果が勝手に区切られてしまうのは見落としていました。
どうもありがとうございました。
ですが、あれからいろいろためしてみましたが未だに解決しておりませんorz。
実際にFILEPATHに入れた値ですが、「D:\bkuptest\ほげ\bkup_ほげ_\」です。
for /F "skip=2 delims=" %%A IN ('dir /B /O:-N "%FILEPATH%"') do (
echo %%A
)
と書いて実行したところ、「ファイルが見つかりません。」といわれて中の処理は実行されません。
また、その直前の行に「dir /B /O:-N "%FILEPATH%"」をそのままコピーして追加したところ、
この追加したdirは問題なく実行されました。
そのままコピーしてもFOR文のセットに指定するとダメなんて・・・orz。
どなたかアドバイスありましたらよろしくお願いします。
005046
2007/05/14(月) 01:57:05ID:6p7JJnAYset FILEPATH=D:\bkuptest\ほげ\bkup_ほげ_\
を直前に記述しています。
よろしくお願いします。
0051名無し~3.EXE
2007/05/14(月) 02:22:40ID:MCFCwKH0set FILEPATH=Z:\bkuptest\ほげ\bkup_ほげ_\
for /f "delims=" %%A in ('dir /B /O:-N "%FILEPATH%"') do (
echo %%A
)
これでちゃんと表示されたよ。(WindowsXP)
0052名無し~3.EXE
2007/05/14(月) 03:11:22ID:MCFCwKH0日本語1文字(2バイト)につき1バイトずつ減るようだ。
set FILEPATH=Z:\bkuptest\ほげ\bkup_ほげ_\
dir /B /O:-N "%FILEPATH%>tmp.txt
for /f "delims=" %%A in ('type tmp.txt"') do (
echo %%A
)
とするしかないのかも。
0053名無し~3.EXE
2007/05/14(月) 03:28:34ID:MCFCwKH0for /f "delims=" %%A in ('dir /B /O:-N "%FILEPATH%"1234') do (
トリッキーだが、
for /f "delims=" %%A in ('dir /B /O:-N "%FILEPATH%"^&::::::::::::::::::::::::::::') do (
とでもすれば汎用で通るようになる。
0054名無し~3.EXE
2007/05/14(月) 03:29:57ID:66G3PQU8ただしIN ('コマンド')はサブシェルで実行されるので
IN ('cmd /v:on /c dir /b "!filepath!"')
みたいに
0055名無し~3.EXE
2007/05/14(月) 03:34:38ID:66G3PQU8dir ... | for ... in ('more')
でもパイプはいろいろ難しいことがあるから使わずに済めば
それに越したことはない
0056名無し~3.EXE
2007/05/14(月) 03:49:41ID:66G3PQU8IN ('dir /b "%%filepath%%"')
みたいに
005746
2007/05/14(月) 12:39:32ID:6p7JJnAYWindows2000だったのでご指摘の問題があったようです。
%%FILEPATH%%としたところ問題なく動きました。
どうもありがとうございました。
0058名無し~3.EXE
2007/05/14(月) 21:03:27ID:eTP8kcfMhogehoge20070514hogehoge.dmpのような日付入りファイル名が
毎日作られるフォルダで、最新のファイルから3ヶ月より古いファイルを
削除するバッチファイル作成するのですが
頭の中でアルゴリズムができてるのですがいまいち実現までいきません・・
for /f "skip=93" %%F in ('dir /b /o-n') do del %%F
で約3ヶ月分以降を消すっていうのでは依頼者が納得しないそうです。
ディレクトリの中で最終更新日が一番新しい物を見つけてそれをsetで変数に
入れる方法を教えてくれませんか?
そのあとは自分でいろいろ考えてみます。
0059名無し~3.EXE
2007/05/14(月) 23:16:54ID:MCFCwKH0依頼者とか言うからには、君ソフトウェア設計者なんだろ?
じゃあそれらしくちゃんとした質問しろよ。
・前提条件として、外部プログラム(GNU等フリーソフト)を使っても構わないのか
またはJava/VBスクリプトの使用は?
・対象OSは?
・それと標準BATコマンドのみだとしても、アルゴリズムも全然できてないじゃん。
出来てたら終わってるはず。
素直なアルゴリズムの例を一つ示してやるから後は自分で調べろ。
step1: 今日の日付を求める
step2: 今日の日付をある基準日を0日とする通算日付に変換する(一般化するとユリウス日)
step3: 3ヶ月前が何日分前か求める
step4: step2からstep3を引いてターゲット日として保存する
step3: 以下をファイルの存在する限り繰り返す
step4: ファイル名から日付を取り出す
step5: 日付を通算日付に変換する
step6: ターゲット日と比較する(ループ中なので遅延環境変数展開を必要とする)
step7 より小さい日付なら削除する
日付変換サブルーチン
・日付を、年、月、日に分解する
・各月の日数 31,28,31,30,31,30,31,31,30,31,30,31
・4で割り切れる年はうるう年 2月は29日
・100で割り切れる年はうるう年ではない
・2000で割り切れる年はうるう年
・オプションで、特殊日付をサポートする(-1月とか13月とか35日とかも受け付ける)
・日数を返す
これを素直に実現してもいいし(メンテが楽)、一意の変換式としてもある。
0060名無し~3.EXE
2007/05/14(月) 23:22:12ID:MCFCwKH0・100で割り切れる年はうるう年でない
・400で割り切れる年はうるう年
・2000で割り切れる年はうるう年ではない
の間違い
0061名無し~3.EXE
2007/05/14(月) 23:26:54ID:MCFCwKH0・2000で割り切れる年はうるう年ではない
は間違いのようだ。記憶違いだったみたい。
0062名無し~3.EXE
2007/05/14(月) 23:40:16ID:MCFCwKH0%%~tI : %%Iのファイルの最終更新日
0063名無し~3.EXE
2007/05/15(火) 00:31:30ID:dFS1GUhg0064名無し~3.EXE
2007/05/15(火) 01:12:22ID:GKCxdgkdファイル名全然関係なくて更新日時だけ相手にしてりゃいいのか、ようわからんわ。
0065名無し~3.EXE
2007/05/15(火) 09:33:45ID:TTbohgLv@echo off
rem パラメタ %1: YYYYMMDD または YYYY/MM/DD 日付
rem パラメタ %2: -d -m 差分区分(-d:日数 -m:月数)
rem パラメタ %3: 差分数
rem 返り値 %YYYYMMDD%, %days% 計算後の文字列日付と通算日数
rem
rem 西暦2000月3月1日を基点に日数計算
rem 1年は3月から始まり2月で終わることとする
rem --------------------------------------------------
rem 3 4 5 6 7 8 9 10 11 12 01 02月 月号
rem 0 1 2 3 4 5 6 7 8 9 10 11月 新月号
rem 31 30 31 30 31 31 30 31 30 31 31 28
rem 0 31 61 92 122 153 184 214 245 275 306 337 年頭からの通算日
rem --------------------------------------------------
setlocal EnableDelayedExpansion
set days_table=312831303130313130313031
set YYYYMMDD=%1
set YYYYMMDD=%YYYYMMDD:/=%
set YY=%YYYYMMDD:~0,4%
set MM=%YYYYMMDD:~4,2%
set DD=%YYYYMMDD:~6%
if "%MM:~0,1%"=="0" set MM=%MM:~1%
if "%DD:~0,1%"=="0" set DD=%DD:~1%
0066名無し~3.EXE
2007/05/15(火) 09:34:46ID:TTbohgLvif "%2" equ "-d" (
call :ADtoTD %YY% %MM% %DD%
set /a days = !days! + %3
call :TDtoAD !days!
goto :end
)
if "%2" neq "-m" (
call :ADtoTD %YY% %MM% %DD%
goto :end
)
set /a Y1 = %3 / 12
set /a Y2 = %3 %% 12
set /a YY += Y1
set /a MM += Y2
if %MM% LEQ 0 set /a YY -= 1, MM += 12
if %MM% GTR 12 set /a YY += 1, MM -= 12
set /a mon = (MM - 1) * 2
set max=!days_table:~%mon%,2!
if %MM%==2 (
set /a mod4 = %YY% %% 4
set /a mod100 = %YY% %% 100
if !mod4! neq 0 goto xxx
if !mod100! equ 0 goto xxx
set /a max += 1
)
0067名無し~3.EXE
2007/05/15(火) 09:36:01ID:TTbohgLv:xxx
if %DD% GTR %max% set DD=%max%
set MM=0%MM%
set MM=%MM:~-2%
set DD=0%DD%
set DD=%DD:~-2%
set YYYYMMDD=%YY%%MM%%DD%
call :ADtoTD %YY% %MM% %DD%
:end
endlocal & set YYYYMMDD=%YYYYMMDD% & set days=%days%
echo %YYYYMMDD%
goto :eof
0068名無し~3.EXE
2007/05/15(火) 09:36:43ID:TTbohgLvrem -----------------------------
rem 西暦を通算日に変換する
rem -----------------------------
:ADtoTD
set totaldays_table= 00 31 61 92122153184214245275306337
set /a YY = YY - 2000
if %MM% LEQ 2 set /a YY -= 1
set /a MM = (MM + 9) %% 12
set /a days = YY * 365 + (YY / 4) - (YY / 400)
set /a mon = MM * 3
set /a days += !totaldays_table:~%mon%,3! + %DD% - 1
endlocal & set days=%days%
goto :eof
0069名無し~3.EXE
2007/05/15(火) 09:37:29ID:TTbohgLvrem 通算日を西暦に変換する
rem -----------------------------
:TDtoAD
set days=%1
set /a d1 = days / 146097
set /a a1 = days %% 146097
set /a d2 = a1 / 36524
set /a a2 = a1 %% 36524
if d2 equ 4 set /a d2 -= 1, a2 += 36524
set /a d3 = a2 / 1461
set /a a3 = a2 %% 1461
set /a d4 = a3 / 365
set /a a4 = a3 %% 365
if d4 equ 4 set /a d4 -= 1, a4 += 365
set /a d5 = a4 / 153
set /a a5 = a4 %% 153
set /a d6 = a5 / 61
set /a a6 = a5 %% 61
set /a d7 = a6 / 31
set /a a7 = a6 %% 31
set /a YY = 400*d1 + 100*d2 + 4*d3 + d4 + 2000
set /a MM = 5*d5 + 2*d6 + d7 + 3
set /a DD = a7 + 1
if %MM% GTR 12 set /a MM -= 12 , YY += 1
set MM=0%MM%
set MM=%MM:~-2%
set DD=0%DD%
set DD=%DD:~-2%
endlocal & set YYYYMMDD=%YY%%MM%%DD%
goto :eof
0070名無し~3.EXE
2007/05/15(火) 09:51:27ID:TTbohgLv>>59のアルゴリムは少し考えが足りなかったので、サブルーチン側で差分日まで
算出し、その日付を返すようにした。 環境変数 %YYYYMMDD%
使い方 BAT名を仮にgetdate.batとすると
2ヶ月前の日付を求める場合
getdate 20070515 -m -2
63日後の日付を求める場合
getdate 20070515 -d 63
0071名無し~3.EXE
2007/05/16(水) 12:56:13ID:7/cOdyGm0072名無し~3.EXE
2007/05/17(木) 18:11:54ID:xG9pEqHy0073名無し~3.EXE
2007/05/17(木) 18:29:25ID:818pu52B20080331 -m -1 = 20080229
20080331 -m -13 = 20070228
0074名無し~3.EXE
2007/05/17(木) 18:43:17ID:818pu52B>・前提条件として、外部プログラム(GNU等フリーソフト)を使っても構わないのか
> またはJava/VBスクリプトの使用は?
と聞いてるので、そこら辺はちゃんと分かっていて、敢てBATのみで作成したのでは?
0075名無し~3.EXE
2007/05/18(金) 12:18:21ID:N8xUsF93記述してみました。多分間違っていると思うので間違っている箇所を指摘していただけませんか?
rem フォルダ名:abc フォルダの中のファイル名:aaa.jpg bbb.jpg ccc.jpg
rem フォルダの絶対パス:c:\abc
rem bat名:aaa.bat
@echo off
set list=
for %%I in (c:\b\*) do call set list=%%list%%;%%~nI
echo %list%
pause
rem 実行結果「;aaa;bbb;ccc」
%list%がaaa、bbb、cccという文字列全てを指すという状況を作りたいです。
(違うフォルダ内のファイル名と比較して同名の物があればリネームというのをやってみたいので。)
よろしければどなたか間違いを指摘していただけませんか?
0076名無し~3.EXE
2007/05/18(金) 12:19:57ID:N8xUsF93for %%I in (c:\abc\*) do call set list=%%list%%;%%~nI
でした
007727
2007/05/18(金) 17:26:22ID:QurTryuC教えていただきたいことがあります。
SREP / 標準入力ファイルをコマンドに渡して実行 ttp://dmz.xrea.jp/dahlia/soft/index_s.html#SREP
このソフトは、DOS・95・98で動いていて重宝していたのですが、WIN2K以降で動きません。
ECHO:DIR *.* | SREP -BX を実行すると DIR *.* の動作をします。
:SETTEMP
SET TEMPBAT=%RANDOM%
IF
ECHO:DIR *.* >
007827
2007/05/18(金) 17:38:32ID:QurTryuCネタ投稿!
教えていただきたいことがあります。
SREP / 標準入力ファイルをコマンドに渡して実行 ttp://dmz.xrea.jp/dahlia/soft/index_s.html#SREP
このソフトは、DOS・95・98で動いていて重宝していたのですが、WIN2K以降で動きません。
ECHO:DIR *.* | SREP -BX を実行すると DIR *.* の動作をします。
:SETTEMP
SET TEMPCMD=%RANDOM%.CMD
IF EXIST %TMP%\%TEMP.CMD% GO TO :SETTEMP
ECHO:DIR *.* > %TMP%\%TEMP.CMD%
%TMP%\%TEMP.CMD%
でやっていますが
これを一時ファイルを作成しないで1行で実行する方法ってあるのでしょうか?
ECHO:DIR *.* の部分はいろんなパターンがあります。
008027
2007/05/18(金) 19:54:01ID:QurTryuCレス�dクス
行数が長くなって内容を省いていたので命題そのものを説明します。
A.CSV
あああ,111,222,....................................
いいい,222,333,....................................
あああ,111,333,....................................
ううう,333,444,....................................
というCSVファイルから
あああ.CSV
111,222,....................................
111,222,....................................
いいい.CSV
222,333,....................................
ううう.CSV
333,444,....................................
のように元CSVファイルの一列目の名前でファイル名を作り、二列目以降のデータを内容にするバッチを
SEDとUNIQとSORTとSREPを組み合わせて作っていましたが(ECHO:DIR *.*に当たる部分)
WIN2KでSREPが使えないための代替手段を探しています。
0082名無し~3.EXE
2007/05/18(金) 21:33:23ID:qUpsnBjqfor /f "tokens=1* delims=," %%A in ('type a.csv') do echo>>%%A.csv %%B
0083名無し~3.EXE
2007/05/18(金) 21:45:26ID:99LGC3cido echo>>%%A.csv %%B
0084名無し~3.EXE
2007/05/19(土) 12:44:30ID:wGTZ/mM4shutdown.exe -s -t 0で電源を切ることは可能なのでしょうか?
ぐぐってみたところ、WindowsXPについているshutdown.exeはWindows2000でも利用可能なようなのですが、
Windows2000で試してみたところ、権限がないと言われてしまいます。
事情により、Administratorsに入れるわけには行かないのですが、
このような場合でもコマンドで電源を切ることは可能でしょうか?
どなたかご存知の方アドバイスお願いします。
0085名無し~3.EXE
2007/05/19(土) 13:13:12ID:gV4BneKYもう結論が出てるじゃないですか。
他のものを試してみては。
Windows 2000/XP でログオフ/シャットダウン/再起動アイコンを作るには?
http://homepage2.nifty.com/winfaq/w2k/boot.html#1179
タイマー指定可能な小型軽量シャットダウンコマンド
http://www.vector.co.jp/soft/win95/util/se190882.html
お勧めのシャットダウン プログラム
http://homepage2.nifty.com/kotkaga/note/604shutdown.html
0087名無し~3.EXE
2007/05/19(土) 18:59:01ID:MEXVxhB1ショートカット詳細設定別の資格情報で実行する
タスクスケジューラ
0089名無し~3.EXE
2007/05/20(日) 04:42:27ID:dWDzVb/9削除するというバッチファイルを作ることは可能でしょうか?
もしよろしければヒントをいただけませんか?
0090名無し~3.EXE
2007/05/20(日) 05:38:46ID:aqxTfgS40091名無し~3.EXE
2007/05/21(月) 14:08:21ID:0d+ZaNGt0092名無し~3.EXE
2007/05/22(火) 23:57:15ID:DXps0jfCFOR /F %A IN (A.txt) DO FINDSTR %A B.txt
のようにAから取った文字列をB内で拾おうとしてます。
Aに書かれている1行には半角スペースが含まれてます。
その半角スペースも含めて1行をマッチング(完全一致ではない)させたいのですが、
実行してみた結果、半角スペース前の文字列だけでもマッチングしてしまい
取りたくない行を拾ってきてしまいます。
半角スペースを含む1行をマッチングさせるには
どのようにしたらよいのでしょうか?
0093名無し~3.EXE
2007/05/23(水) 00:15:21ID:SSq40r1eそのものズバリの例が示されているわけだが
0094名無し~3.EXE
2007/05/23(水) 00:25:56ID:9lvFrJAsつーかここにいるとfor病になってしまうのも頷けるが。。。
0096名無し~3.EXE
2007/05/23(水) 00:35:02ID:5wOgLhAVあー、あるある
0098名無し~3.EXE
2007/05/23(水) 00:47:57ID:nAmeHJsa"delims="
findstrの方は、/cかな
0099名無し~3.EXE
2007/05/23(水) 00:51:20ID:z/fSw5qr>>98
delimsで指定無しにすれば
デフォのスペースやタブを無効化できるということでしょうか?
0100名無し~3.EXE
2007/05/23(水) 00:52:47ID:9lvFrJAs0101名無し~3.EXE
2007/05/23(水) 00:55:13ID:z/fSw5qr言ってませんでしたが
A.txtには、一応複数行あるんです><
各行の文字列を使用するんです。
0102名無し~3.EXE
2007/05/23(水) 01:00:32ID:9lvFrJAsつーかfindstr /l /g:A.txt B.txt
0104名無し~3.EXE
2007/05/23(水) 06:39:32ID:Z0KdSFHv複数行に対応していないわけがないと思わんのか。
0105名無し~3.EXE
2007/05/24(木) 21:11:54ID:KEd+r5mO0106名無し~3.EXE
2007/05/24(木) 23:03:32ID:zlbejraP「はあ?」とは思わんよ。
解決した後に何の実にもならない文句だけ言う奴って...とは思ったけどね。
0107名無し~3.EXE
2007/05/25(金) 22:32:49ID:fAyZ4XY30108名無し~3.EXE
2007/05/26(土) 00:08:02ID:nd32zRgJ0109名無し~3.EXE
2007/05/26(土) 00:13:45ID:g8UzYY610110名無し~3.EXE
2007/05/26(土) 00:19:03ID:YMAjJ4KA0111名無し~3.EXE
2007/06/11(月) 07:47:49ID:ieH1oTGK0112名無し~3.EXE
2007/06/12(火) 18:04:25ID:Ldj+OzYg0113名無し~3.EXE
2007/06/15(金) 00:15:35ID:vhmYsLiT\hoge\ab\cd\e.txt
\hoge\fg\hi\j.csv
\hoge\kl\mn\o.exe
と結構多目にディレクトリが複数あるときに
ファイルを1つ上位に移動して、最下層のディレクトリを削除する
バッチファイルって作成可能でしょうか?
(e.txtを\hoge\ab直下に移動して、
cdディレクトリを削除するような処理です。)
ren \hoge\*\*\*.* \hoge\*\
rmdir \hoge\*\*
が出来ない様なので困ってます。
0114名無し~3.EXE
2007/06/15(金) 00:47:46ID:Ac8c+en40115名無し~3.EXE
2007/06/15(金) 02:37:09ID:yrhxNujk具体的な書き方は私にも分かりませんが
\hoge\ab\cd\e.txt ファイルのフルパスを取得
cd フルパス (これで \hoge\ab\cd\がカレントディレクトリになる)
move *.* ..\ (1個上に移動させる)
cd (とりあえずホームディレクトリにでも移動する。だってそこに居たままじゃディレクトリ削除できないもん)
rmdir /s /q フルパス (これで最下層のディレクトリが削除できたはず)
フルパスの取得は batファイルの引数に直接 e.txt等のファイルを一々指定してあげる事が出来るなら
%~dp0 で取得できるけど、多分引数で一々指定するのはダメなんだろうなぁ・・・。
ダメなら bat実行したディレクトリから下のディレクトリに向かって
1.もしディレクトリが存在するならその中に入る
2.入った先にもディレクトリが存在するならさらにその下に入る
のように再帰処理で行くしかないんじゃないかなぁ。。。大変そう。
と、ココまで書いて具体的なbatファイルを動作確認せずにココにダイレクトに書いてみる事にするw
再帰処理は無理なんで、引数で指定するタイプでいきまっ
使い方は
バッチファイル名.bat C:\hoge\ab\cd\e.txt
のように引数としてファイル名を与えてやって下さい。
そしたら
C:\hoge\ab\ に e.txtを含む全てのcd\の中のファイルを1個上のab\直下に移動し、
C:\hoge\ab\cd\ のcd\の中身が空になってれば削除します。
いや、動作確認して無いから動作するかどうか分からないけどね・・・。
次のレスで貼り付けます。
0116名無し~3.EXE
2007/06/15(金) 02:37:47ID:7qxhReqnメッセージは表示しないようになってるが、移動と削除のecho表示するように
変更した方がよいかも。
@echo off
setlocal EnableDelayedExpansion
if "%~1" equ "" (call :sub .) else call :sub "%~1"
goto :eof
:sub %1
pushd %1
set x=0
for /f "tokens=*" %%I in ('dir /ad /b /on .') do (
call :sub "%%I"
set x=1
if !y! equ 0 move /y "%%I\*.*" . >>nul & rd "%%I"
)
popd
endlocal & set y=%x%
goto :eof
0117名無し~3.EXE
2007/06/15(金) 02:38:42ID:yrhxNujkREM このプログラムは引数を1個指定する必要がある為チェック
if %1=="" (
echo 引数がありません。引数を1つ指定してください。
pause
goto EOF
)
cd %~dp1
REM このmoveの書き方自信無い
move /Y *.* ..\
REM この判定の仕方自信無い
if exist %~dp1* (
echo なぜかファイルが残っているのでディレクトリを削除できません。
goto EOF
) else (
cd
rmdir /S /Q %~dp1
)
REM 自信が無いと書いたところでバグが発生しそう。
pause
0118名無し~3.EXE
2007/06/15(金) 05:46:07ID:PyeIb4Mufor /f "delims=" %%i in ('dir /b/s/ad') do rd %%i
ファイルがねぇぞ( ゚Д゚)ゴルァ!! とか、 ディレクトリが空じゃねぇぞ( ゚Д゚)ゴルァ!!とか
どばーっとエラーでるけど、目的は達せられる。
0120名無し~3.EXE
2007/06/16(土) 00:12:08ID:0FhZKQDjつ 要件定義フェーズ
0121名無し~3.EXE
2007/06/16(土) 05:37:33ID:7bk03Zncそれでいいんじゃないの?
>>113にはどこにも最下層のファイルだけ移動とは書いていないけど…
0123名無し~3.EXE
2007/06/16(土) 14:38:01ID:7bk03Znc泥臭い・強引な方法ばかり思いつくんだが…
0124名無し~3.EXE
2007/06/16(土) 19:02:59ID:CXEmvWRnってのは強引?
0125名無し~3.EXE
2007/06/18(月) 01:45:27ID:H6wUdAfo0126名無し~3.EXE
2007/06/18(月) 02:40:53ID:YraK8n5o0127名無し~3.EXE
2007/06/21(木) 04:59:20ID:s2INtICy0128名無し~3.EXE
2007/06/21(木) 08:18:21ID:EssH3dBi0129名無しさん@Vim%Chalice
2007/06/21(木) 16:00:44ID:jQc8O4Oqcygwin+screen+ck代わりぐらいにと
stand aloneで自己完結。Cygwin無くても機能。日本語可。
xtermぐらいの表現力。screen程度には使える。ansi-colo
r理解。
bash,zsh,csh,tcsh,elisp...色々な要素ぱくっている。
lispは意味不明。超人lisperになるべし。
ソース書換て自分仕様にフルカズタマイズして
NTemacs,Meadow上で暮らそうとか思ったんだけ。
挫折気味...
0130名無しさん@Vim%Chalice
2007/06/21(木) 17:53:11ID:jQc8O4Oqansi-termはde ansi-termとかゆうマクロでフックしてたら
しい。.emacsに埋め込んでた...
ansi-termはcygwinが必要。
んで素のesheelは違うバッファで起動したら同じプロ
セス呼んでる('A`
きっとどこかには誰か書いてるだろう便利lisp
があれば割と逝けると思うんだけど。
どこかないかな...
deは独だったか。きっとどこかにあると思う。
0131名無し~3.EXE
2007/06/21(木) 22:57:58ID:jQc8O4Oqこれを好きなキーに振れば大体同じ感じで使えるかな...
0132名無し~3.EXE
2007/06/22(金) 00:04:41ID:ZAVgS6CQ0133名無し~3.EXE
2007/06/23(土) 03:10:03ID:9gQ/tesNしてる場合って、実際をTABしたい場合はどうしてるんですか?
かくいう漏れはCompletionCharにCtrl+FをアサインしてるCMD使い。
0135名無し~3.EXE
2007/06/23(土) 07:36:40ID:LpBOoalT0136名無し~3.EXE
2007/06/23(土) 14:38:32ID:V6yGWUpq0137名無し~3.EXE
2007/06/23(土) 15:02:52ID:ckZdOOmB0138名無し~3.EXE
2007/06/23(土) 19:16:48ID:LpBOoalT0139名無し~3.EXE
2007/06/25(月) 00:47:46ID:hpiSpCO4大体そういうものが必要な場合は複雑な場合が多いし、
何度もやり直す必要も出てくるので、コマンドライン直打ちじゃやってられん
0140名無し~3.EXE
2007/06/26(火) 16:01:39ID:k8sDAltMで10未満の表示を00と二桁にしたいのですが、どうやったら良いのですか?
0141名無し~3.EXE
2007/06/26(火) 17:40:50ID:ZLWahYoKfor /l %%A in (0, 1, 31) do set a=0%%A& echo !a:~-2!
0142名無し~3.EXE
2007/06/26(火) 19:01:40ID:Bg2uMH0m0143名無し~3.EXE
2007/06/26(火) 19:10:36ID:Cd9m53Itそれだと使いづらいよ
for /f やfindstrなんかで使うのに遅延環境変数を使わないけなくなる
0144名無し~3.EXE
2007/06/26(火) 19:40:42ID:WXGDVtW4つかTABが必要なら別キーにアサインするのがオススメ
0145名無し~3.EXE
2007/06/26(火) 20:59:48ID:uoA+Xcia0147名無し~3.EXE
2007/06/27(水) 05:07:31ID:Oz3Y82L1以下の構文ではうまくいかなかった理由を教えてください
やりたかったこと:10未満を00と二桁にするしてリネームする
結果:hoge_01はできるが、hoge_02〜09(になってほしいファイル)がhoge_2〜9にリネームされる
rem ここから
setlocal enabledelayedexpansion
set count=0
for /f "usebackq delims=" %%A in (`dir "%~dp1" /a-d /b`) do (
set /a count+=1
if [!count!] lss [10] (set track=0!count!) else set track=!count!
ren "%~dp1%%A" "hoge_!track!%~x1"
)
endlocal
rem ここまで
やりたかったこと:9以下を00と二桁にするしてリネームする
結果:hoge_01〜09はできるが、hoge_10(になってほしいファイル)以降も010などにリネームされる
rem ここから
setlocal enabledelayedexpansion
set count=0
for /f "usebackq delims=" %%A in (`dir "%~dp1" /a-d /b`) do (
set /a count+=1
if [!count!] leq [9] (set track=0!count!) else set track=!count!
ren "%~dp1%%A" "hoge_!track!%~x1"
)
endlocal
rem ここまで
0149名無し~3.EXE
2007/06/27(水) 06:22:22ID:Oz3Y82L1そうだったんですか!
if構文のときはいつもこの書き方でったので
これが問題だとはまったく思い至りませんでした
ありがとうございました!
0150名無し~3.EXE
2007/06/27(水) 06:47:21ID:TZPENXnsリネーム後のファイルがあらためて検索対象になることがある。
どういう場合にそうなるのかは宿題。
0151名無し~3.EXE
2007/06/27(水) 09:27:05ID:VWf9EHKN素直にWSHで作って欲しいわ
見づらくて仕方がない
0153名無し~3.EXE
2007/06/27(水) 22:11:08ID:lvppcSdl0154名無し~3.EXE
2007/06/27(水) 23:28:41ID:nP2x7iOe教えてほしいことがあるのですが、runas /user:owner /savecred cmd
と実行すると、以降PCを再起動しても資格情報をがっちり掴んで廃棄してくれません。
/savecredオプションで保存された資格情報を削除するには、どのようにすればいいでしょうか?
windows xp pro sp2
cmd.exeのdos窓から実行しました。
0155名無し~3.EXE
2007/06/27(水) 23:53:30ID:VWf9EHKN0156名無し~3.EXE
2007/06/28(木) 00:11:38ID:njxOVg+iありがとうございます。レジストリを直接編集するということですね。
コマンド自体便利だと思ったので、できればコマンドから実行できればよかったのですが。
パスワード変更をかねてキーをさがしてみます。ありがとうございました。
0158名無し~3.EXE
2007/06/28(木) 00:51:02ID:njxOVg+iこんなコマンドあったんですね。あとはキーがわかればコマンドから操作できそうです。
わざわざご指摘ありがとうございました。
0159113
2007/06/28(木) 23:03:15ID:bHfzd9Lz\hoge\
のディレクトリでcd,hi,mn等のディレクトリのファイルだけ移動して削除したかったのです。
説明不足ですいません。
一応こんな感じで動きました。
でも、フォルダ名とか長いと駄目な場合もあるようですね。
dir /xもつけた方がいいんでしょうか?
for /f "delims=" %%i in ('dir /b/ad') do (
for /f "delims=" %%j in ('dir /b/ad "%%i"') do move "%%i\%%j\*" "%%i\%%j\.."
for /f "delims=" %%j in ('dir /b/ad "%%i"') do rd "%%i\%%j"
)
0160113
2007/06/28(木) 23:11:14ID:bHfzd9Lz/b/xは一緒に出来ないようですね
0161113
2007/06/28(木) 23:56:29ID:bHfzd9Lzありがとうございました
for /f "delims=" %%I in ('dir /b/ad/on') do (
cd "%%I"
for /f "delims=" %%J in ('dir /b/ad ') do move "%%J\*" "%%J\.."
for /f "delims=" %%J in ('dir /b/ad ') do rd "%%J"
cd ..
)
0162名無し~3.EXE
2007/07/04(水) 01:42:29ID:abxJ+p1rset hoge=%0 としてもうまくいかないorz
0163名無し~3.EXE
2007/07/04(水) 02:04:17ID:XwTWde1q0164名無し~3.EXE
2007/07/04(水) 02:06:31ID:abxJ+p1rすみません、よければもう少しヒントを頂けないでしょうか?
0165名無し~3.EXE
2007/07/04(水) 02:27:36ID:9UcVbA4Z(通常はそういう意味のはずなんだけどね)
%cd%
実行しているBATファイルのパスを指してるのなら
%~dp0
0166名無し~3.EXE
2007/07/04(水) 02:35:21ID:abxJ+p1rありがとうございます。
%~dp0でいけました。
ほんと、私の質問がわかりにくくてすみません・・・。
ちなみに、こういう定数の一覧ってどこかにまとめてあるのでしょうか?
手元のプロンプト辞典にはこういうの載ってなくて・・・。
0167名無し~3.EXE
2007/07/04(水) 02:46:16ID:Zwtmh2SZcall /?
そして毎度おなじみ for /?
0168名無し~3.EXE
2007/07/04(水) 02:51:55ID:abxJ+p1rおぉ!すばらしい!!
感動しました。
そしていろいろあって奥が深いのですね。
ありがとうございました。
0169名無し~3.EXE
2007/07/04(水) 05:06:14ID:mIR/jNv30170名無し~3.EXE
2007/07/05(木) 02:28:26ID:hAzDK9l70171名無し~3.EXE
2007/07/05(木) 20:24:40ID:mJP5Jzub0172名無し~3.EXE
2007/07/06(金) 08:17:18ID:gFjF/2omの中の_restor<GUID>なんちゃら・・って言う名前のフォルダの中に降りて
その中からsnapshotフォルダに降りて RP1 〜 RP*(いくつか)まである中から
最新の更新日のフォルダに降りて、その中から_REGISTER_MACHINE_SYSTEM
っていうファイルをC:\WINDOWS\system32\config\ の中に SYSTEM と言う名前
でコピーするっていう処理をbatで実行したいのですが(もちろん普通にWindows上から
実行するとメモリが掴んでいるので不可能ですが、1CD起動のXPから実行します)
C:\System Volume Information\までは固定なので簡単に移動できるのですが
マシンによって_restor<GUID>の値が可変なのでパスを直うち出来ません。
<GUID>を取得する方法もよく分からないので
dir /A コマンドの出力結果を見て、そのフォルダに移動すると言うような処理は
出来ませんか?
その後 snapshot\配下の複数のフォルダに対して最新のフォルダがどれかを
求める処理は
SAISIN=最初のフォルダ
ループ(全部のフォルダを参照するまで) {
0173名無し~3.EXE
2007/07/06(金) 08:19:32ID:gFjF/2omSAISIN=最初のフォルダ
ループ(全部のフォルダを参照するまで) {
if(%SAISIN%の更新日 < 次のフォルダの更新日) {
SAISIN=次のフォルダ名
}
}ループ終了
こんな感じのアルゴリズムで求めて、その最新のフォルダに降りて_REGISTER_MACHINE_SYSTEM
ファイルを取ってくる処理を実行したいのですが・・・
一応自分で調べた限り フォルダの更新日は %~z1 みたいな変数で参照できるみたいです。
実現するのはBatだと厳しいですかね?
0174名無し~3.EXE
2007/07/06(金) 09:46:59ID:Q7SsQ7nuset target_drive=%systemdrive%
set latest=
pushd %target_drive%\System Volume Information
for /f "delims=" %%I in ('dir /b/ad/od _restore*') do (
pushd %%~fI
for /f %%J in ('dir /b/ad/od rp*') do set latest=%%~fJ
rem for /f %%J in ('dir /b/ad/o-d rp*') do set oldest=%%~fJ
popd
)
popd
if "%latest%" neq "" (echo %latest%) else echo *** not found ***
0175名無し~3.EXE
2007/07/06(金) 18:46:41ID:aZ88EIgFfor /f %a in ('dir /ad /b /od rp*') do set SAISIN=%a
cd "%SAISIN%"
copy _REGISTER_MACHINE_SYSTEM C:\WINDOWS\system32\config\SYSTEM
0176173
2007/07/06(金) 19:34:36ID:gFjF/2omおおお、レスありがとうございます。
貴方のおかげで目的が実現できました。感謝します。
Batファイルを編集していて気づいたのですが、貴方のアルゴリズムだと
C:\System Volume Information\_restore*
ってフォルダが複数あった場合に(今回は1個なので対した処理量の違いは無い)
最後以外のフォルダの中の最新のフォルダまで探索しにいくと思うので
無駄な処理が入っていますよね。forの二重ループでやっているからだと思うんですが
1回forでループして、ループ抜けた後でもう一回forのループで_restore*\snapshot\以下の
RPの最新を探す方が効率がいいですよねぇ?
>>175
うわ、みじかっ
っていうか cdコマンドで _restore* で入れるんですかっ!
もし_restore*で複数のフォルダが該当した場合はどうなるのだろうかと
RPがたくさんあるフォルダ内で実行したところ、どうやら最初に見つかったフォルダに
入るみたいですね。かなり簡潔ですねぇ・・・。
で、ネットで調べてもどうしても分からなかったのでお聞きしたいのですが
(for /f)の /f ってどういうオプションなのでしょうか? for /? して見てもよく分からず。
for /L だと for /L %%I in (初期値,増分,条件) と書ける事は知っているのですが・・・。
# C言語やJava言語のforとは位置が違いますよね。混乱します・・・。
0177名無し~3.EXE
2007/07/06(金) 21:47:55ID:gFjF/2om↑上記batファイルを実行すると
(の使い方が誤っています
と怒られます。どこがおかしいのでしょうか?文法レベルで構いませんので
Debugをお願いできないでしょうか? ( ) の数を数えたりしたのですが
数に間違いは無いのですが・・・・
0178名無し~3.EXE
2007/07/06(金) 22:02:52ID:Q7SsQ7nu%1が未定義だと、
if == "" (
と展開される。
if "%~1" == ""
0179名無し~3.EXE
2007/07/06(金) 23:51:11ID:gFjF/2omif "%1" == "" でも動作するのですが
"%と1"の間に ~を挟むと何が違うのでしょうか?
0180名無し~3.EXE
2007/07/07(土) 00:10:13ID:OhijueHLif ""c:\Program Files"" == ""
0181名無し~3.EXE
2007/07/07(土) 00:19:10ID:OhijueHL念のため、これは>>179のように書くとこういう弊害があるということで、
>>178はそういう場合の対処も兼ねている。
0182名無し~3.EXE
2007/07/07(土) 12:01:13ID:PdZu9Idwcall /? 読むなり echo %~1 試すなりすれば分かることだと思うが。
0183名無し~3.EXE
2007/07/07(土) 13:54:44ID:2fDZSvpN%2→"%2"
%~f1→"%~f1"
%~f2→"%~f2"
%~z1→"%~z1"
%~z2→"%~z2"
最終行に「:EOF」を追加
これでどうだ?
0184名無し~3.EXE
2007/07/07(土) 13:56:22ID:2fDZSvpN× %1→"%1"
○ %1→"%~1"
× %2→"%2"
○ %2→"%~2"
0185名無し~3.EXE
2007/07/07(土) 16:03:50ID:OhijueHLgoto /?でも読めば書いてある。
0186名無し~3.EXE
2007/07/07(土) 16:21:20ID:d6rD1byQ"%~1" って 書かないと ""変数の中身"" ってダブルクォーテーションが普通の2倍
くっついてしまって構文的におかしいわけですか・・・だから余分なダブルクォーテーションを
削除しているわけですね。なるほどです。非常に勉強になります。
すみません、質問ばかりで申し訳ないのですが
リモートのFTPサーバが生きているかどうかで処理を分けるようなことは出来ませんか?
pingを実行して、帰ってきた %errorlevel%を見て処理を分けるというのは出来るんですが
これだと pingはルータで蹴る設定だけど、FTPサーバは繋がると言う状況の時や
pingは通るけどFTPサーバが落ちているとか言う時に困るんです。
@echo off
ftp -s:ftpcmd.txt (ftpcmd.txtファイルにFTPログイン〜何もせず切断〜終了まで書いとく)
if %errorlevel% (
で処理分けをしようとしてみたのですが、FTP接続に成功しようが失敗しようが
0(真)が帰ってくる(そりゃftp接続は失敗したけどftpコマンドそのものは成功しているんだから
0が帰ってくるわな・・・) ので、判定の材料にはならないんですよ。
皆さんならどうやって判定しますか?
0188名無し~3.EXE
2007/07/07(土) 17:20:21ID:OhijueHLrem ftp -n -s:ftp_open_check.txt | find "Connected to" >nul
if %errorlevel% equ 0 echo ** open success **
0189名無し~3.EXE
2007/07/07(土) 17:36:10ID:OhijueHLftp -n -s:ftp_open_check.txt 2&>1 | find "220" >nul
0190名無し~3.EXE
2007/07/07(土) 17:46:31ID:d6rD1byQ>>187
そのせんでfindstrでやっても出来そうでした。
>>188-189
"2&>1" ←これの意味を教えて頂けませんか?
修正前のでも動作しましたので・・・。
しかしftp -nなんてあったんですね。 ftp /? してもヘルプ出ないので
ftp -s しか知りませんでした。
で、その出力結果をfindにパイプで渡すからファイルも出来ないと。
素晴らしすぎる
0191名無し~3.EXE
2007/07/07(土) 17:53:18ID:OhijueHL(要するに、両方の出力をマージしていっしょくたに標準出力に吐き出す)
ftp -?
-nは自動ログインをしない。ユーザー名とパスワードの入力不要。
open ftp-addres
close
bye
でOK
0192名無し~3.EXE
2007/07/07(土) 18:45:05ID:d6rD1byQ2>&1 って書けば 2(標準エラー) 1(標準出力)を結合して吐き出すわけですね。
で、吐き出したデータは使うんですか?どうせfindはそんなの見てないようだし
findの出力はnulの彼方にだし。
ftp -? で見て見ました。色々あるんですねぇ。全然知りませんでした。
でもとりあえず、 FTPサーバ生存確認と言いましたが、細かく言うと
FTPサーバが生存していて、かつログインに成功した時ファイルをアップロード
見たいな事をやりたいんで、ログイン処理まで書いて logged in, といった
文字列をfindにかませて判定した方がより正確な判定が出来るので
ログインまでやりますw。
皆さんはこういう情報はどうやって勉強しているのですか?
私は
http://www.ne.jp/asahi/hishidama/home/tech/windows/bat.html
ココで多くを学びました。
ネットで調べてもあまりBatって細かく解説しているサイトが無くて
やはり本格的にやる為には書籍が必要なんですかね。
0193名無し~3.EXE
2007/07/07(土) 19:06:28ID:OhijueHLset /?
if /?
for /?
call /?
goto /?
cmd /?
setlocal /?
echo /?
0194名無し~3.EXE
2007/07/07(土) 19:28:57ID:d6rD1byQヘルプだけで分かるって・・・・
すごいなぁ・・・・ハッカーですかw。
本当にどうもありがとうございました。これで今回の目的は全部達成できました・・・。
0195名無し~3.EXE
2007/07/07(土) 20:06:47ID:OhijueHLコマンドヘルプ(/?)と両方のヘルプを見比べればいいと思う。
(XPの場合)
startボタン
− ヘルプとサポート
− ツール を使ってコンピュータ情報を表示し問題を診断する
− コマンド シェルの概要
コマンドシェルからヘルプを起動したい場合
hh MS-ITS:G:\WINDOWS\Help\ntcmds.chm::/ntcmds_o.htm
hh MS-ITS:G:\WINDOWS\Help\ntcmds.chm::/redirection.htm
など。
またはヘルプサポートセンターで見たい場合
start helpctr /url ms-its:ntcmds.chm::/ntcmds_shelloverview.htm
など。
0196名無し~3.EXE
2007/07/07(土) 20:39:29ID:d6rD1byQうわー残念。Windowsを徹底的にチューニングして無駄な物、要らない物を削除
しまくっているのでヘルプファイルとか全部既に消してあるから開けない・・・・。
0197ID:2fDZSvpN
2007/07/08(日) 02:15:06ID:3Owpm7dd判ってはいるが、それが無いと何となく気持ち悪いので俺はいつも付けてる。
0198名無し~3.EXE
2007/07/08(日) 09:16:58ID:OzdlBfMwあほですか?
質問スレよく見るんでお前さんのような奴時々見かけるけど、
わけもわからず適当にファイル削除する奴を見ると毎度ながら反吐が出そうになる。
0199名無し~3.EXE
2007/07/08(日) 09:25:12ID:b18X3IE2「PCの調子が悪くて・・・」と取り繕ってるのと同じ(要はウソ)
0201名無し~3.EXE
2007/07/08(日) 13:08:03ID:XC4SQeZiDiskX Toolsっていうクリーニングソフトがあって、その中の削除項目に
Windowsのヘルプファイルってあるんですよ。
8年間パソコンを使い続けてきて、そんなヘルプファイルなんか見たこともないし
これから先も見る事は無かろう、役に立たないフリーセルやソリティア、マインスイーパ
等のデータと同価値のファイルだろうと思って消してしまってます。
あほですみません。
>>199
なるほど、、、確かにそういう風にも取られるんですね。コレは失礼しました。
>>200
その二つに違いなんかあるのか・・・・・ と言うか goto : ってコロンつけないと移動できないんじゃ・・
0202名無し~3.EXE
2007/07/08(日) 13:11:07ID:tecQhfCB0203名無し~3.EXE
2007/07/08(日) 16:51:02ID:NCTpwRJm0204名無し~3.EXE
2007/07/08(日) 18:05:49ID:IRXda/xa0205名無し~3.EXE
2007/07/08(日) 18:39:27ID:8kvqjQRq0206名無し~3.EXE
2007/07/08(日) 22:27:24ID:yX0XbVid0207名無し~3.EXE
2007/07/08(日) 23:27:27ID:27PU9C5t0208名無し~3.EXE
2007/07/09(月) 02:46:08ID:v3Zn7L3Apause > nul
goto :eof
0209名無し~3.EXE
2007/07/09(月) 17:53:53ID:avOS7hXhGUIだと「スタート→設定→ネットワークと(ry→ローカルエリア接続」の作業です。
無線LANがスタンバイする際に問題起こすのでスタンバイ入る前にネットワークから切断し
復帰後また接続すると言うようにしたいのです。
スタンバイ入ったり復帰するイベントはツールで取得できるのでその際に実行させれば行けるかなと。
0211名無し~3.EXE
2007/07/09(月) 18:37:10ID:avOS7hXh0212名無し~3.EXE
2007/07/09(月) 18:52:30ID:+C6r4Cf50213名無し~3.EXE
2007/07/09(月) 20:53:01ID:+JHLqH0V無理。windows Server 2003なら
netsh interface set interface "ローカル エリア接続" disabled
ただし、WSHでコントロールパネルの「ネットワーク接続」から「{ローカルエリア接続」
を「無効にする」を選択するようなスクリプトを組めば可能。
0217名無し~3.EXE
2007/07/10(火) 07:42:18ID:P6vaWxQyConst ssfCONTROLS = 3
Const sConPaneName = "ネットワーク接続"
Const sConnectionName = "ローカル エリア接続"
Const sDisableVerb = "無効にする(&B)"
Const sEnableVerb = "有効にする(&A)"
set shellApp = createobject("shell.application")
set oControlPanel = shellApp.Namespace(ssfCONTROLS)
set oNetConnections = nothing
for each folderitem in oControlPanel.items
if folderitem.name = sConPaneName then
set oNetConnections = folderitem.getfolder: exit for
end if
next
if oNetConnections is nothing then
wscript.quit
end if
set oLanConnection = nothing
for each folderitem in oNetConnections.items
if lcase(folderitem.name) = lcase(sConnectionName) then
set oLanConnection = folderitem: exit for
end if
next
if oLanConnection is nothing then
wscript.quit
end if
for each verb in oLanConnection.verbs
if verb.name = sDisableVerb then
verb.Doit
WScript.Sleep 2000
end if
next
0218名無し~3.EXE
2007/07/10(火) 08:12:31ID:bwIa74fKその入力結果に応じて処理をするという事は出来ないんですかね?
こういう処理はWSHですか?。
それとコマンドラインインタフェースが無いアプリケーションをコマンドラインで
(batでもWSHでもいいので)GUI操作させる事は出来ませんか?
例:FileZillaと言うFTPクライアントを立ち上げ、立ち上がった後即座に
ミラーリングアップロードを開始させ、ミラーリングアップロードが終わったら
FileZillaを正常終了させる。
等。AutoHotKeyとかUWSCとかそれ関連のアプリはあるみたいなんですが
batかWSHで実行できないかなぁと思いまして。
0219名無し~3.EXE
2007/07/10(火) 08:15:54ID:0DJ2pCRZset /p n=input:
echo %n%
0220名無し~3.EXE
2007/07/10(火) 08:40:06ID:P6vaWxQyhttp://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html
0221209
2007/07/10(火) 18:57:52ID:Pg7+75wkサンクスです。
>217を少し改造して
WScript.exe hoehoe.vbs on/off
とか何とかして実行するように登録しうまくいきました。
0222名無し~3.EXE
2007/07/10(火) 21:17:43ID:LwFxhRr6$ java -Dfoo=bar \
-classpath lib\hoge.jar \
fuga
これと同じようなことを、Windows のコマンドプロンプトや bat ファイルで出来ますか?
コマンドプロンプトでは出来なくとも(できればうれしいけど) bat ファイルの中では実現したいです。
0223名無し~3.EXE
2007/07/10(火) 21:37:04ID:aY6Hj5YD0224名無し~3.EXE
2007/07/10(火) 22:07:11ID:vI/PS3tz0225名無し~3.EXE
2007/07/10(火) 22:26:19ID:StBOT2v7echo very ^
long ^
command
0227名無し~3.EXE
2007/07/12(木) 22:25:22ID:VVU4dqVoMsgBox ("サーバ接続に失敗しました",vbYesNoCancel)
と書いて実行すると
Sub プロシージャを呼び出すときに、かっこを使うことはできません。
と怒られます。 マニュアルを調べてみると
MsgBox(prompt[, buttons][, title][, helpfile, context])
とかかれてあります。
promptが"サーバ接続に失敗しました" で、 , buttonsが vbYesNoCancelで、残りは全て
省略可能で ) で閉じる。 構文間違ってないように思うのですがなぜエラーになるんでしょうか?
0229名無し~3.EXE
2007/07/17(火) 22:10:52ID:2qlxd08lバッチファイルからHTAを起動してプルダウンメニューとボタンを表示し、
選択された項目に応じてバッチファイルの動作を変えられたらいいなぁと
考えましたが、これは実現可能でしょうか?
もし可能なら、サンプルを載せていただけると助かります。
また、不可能な場合、何か代替案があるといいのですが・・・。
0230名無し~3.EXE
2007/07/17(火) 23:54:30ID:95VZVBFb0231名無し~3.EXE
2007/07/19(木) 21:27:44ID:thElGmVj0232名無し~3.EXE
2007/07/20(金) 23:18:59ID:V2dWSSNT0233名無し~3.EXE
2007/07/22(日) 18:28:26ID:6AwCUSGD別のボリュームラベルを表示させることはできませんか?
C:SYSTEM
D:DATA
と2つのドライブがあるとします。
subst E: D:\1
subst F: D:\2
subst G: D:\3
とすると、マイコンピュータを開くと
C: SYSTEM
D: DATA
E: DATA
F: DATA
G: DATA
となってしまい、見にくくなってしまいます。対処法ありましたらお願いします。
0234名無し~3.EXE
2007/07/22(日) 22:33:17ID:1kQ2Scg2環境はWindows Server 2003です
VBScriptのSendKeysを検討しましたがMSDNに
>メモ アプリケーションに PrintScreen キー ("{PRTSC}") を送ることはできません。
と書かれており試してみましたが実際に無理でした
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wsMthSendKeys.asp
0235名無し~3.EXE
2007/07/23(月) 19:13:56ID:WByBtV4RPrintScreenを押して何をしたいのかにもよるけど
フリーソフトで適当なのを使えばいいんじゃね?
ttp://search.vector.co.jp/search?query=SendKey
0236名無し~3.EXE
2007/07/23(月) 20:06:40ID:DslKxDc9http://pc11.2ch.net/test/read.cgi/tech/1176698934/136-
0237名無し~3.EXE
2007/07/23(月) 22:30:33ID:ptbQjJRK日付をリダイレクトして、ファイルに書き込みたいのですが、
Win98の場合、dateを実行すると、新しい日付を指定してくださいと
表示され、バッチ内で実行すると、その部分で処理が止ってしまいます。
Windows98環境ではDateやTimeコマンドの結果を、どのようにして
ファイルにリダイレクトすれば良いのでしょうか。
0238名無し~3.EXE
2007/07/23(月) 22:50:33ID:2a12I5350239名無し~3.EXE
2007/07/23(月) 23:11:15ID:LD4VpkP3BUでも使ったら?
つ http://hp.vector.co.jp/authors/VA000007/bu.htm
0241名無し~3.EXE
2007/07/23(月) 23:45:46ID:YzCqJVe0俺も昔同じ事やろうとして結局Perl使ったもの。
0242名無し~3.EXE
2007/07/24(火) 00:28:47ID:OiAr7ahvエンターを標準入力する
date < enter.txt
0243名無し~3.EXE
2007/07/24(火) 00:54:25ID:zyICGXlSecho.|date
0244名無し~3.EXE
2007/07/24(火) 01:13:51ID:OiAr7ahvいやーそれも考えたけど
Win98じゃあecho.が別の結果になりそうな予感がしたので止めたわけよ
0245名無し~3.EXE
2007/07/24(火) 01:23:30ID:zyICGXlS0246名無し~3.EXE
2007/07/24(火) 01:28:49ID:OiAr7ahv外部コマンド(BATUTYとか)を使うのが良い
0247名無し~3.EXE
2007/07/24(火) 01:37:25ID:haePCbS9目的はスクリーンショット取得の効率化です
現在はプリントスクリーンを押下してペイントに貼り付け名前をつけて保存をしています
スクリプトを起動するだけで現在の画面をbmpファイルにしようと目論んでいます
ペイントの起動からファイルの保存(ファイル名は連番で空きのあるもの)までは実現しています
あとはクリップボードに画像を送る方法が足りません
社内PCにフリーソフトのインストールは禁止なのでWindows標準のソフトやスクリプトで実現したいです
よろしくお願いします
0248名無し~3.EXE
2007/07/24(火) 01:43:41ID:OiAr7ahv編集(Alt+E)−すべて選択−コピー (送信するキーで言えば、Ctrl+A、Ctrl+C)
でどう?
0249名無し~3.EXE
2007/07/24(火) 01:45:14ID:OiAr7ahv0250名無し~3.EXE
2007/07/24(火) 01:56:13ID:FTD7xDte社内でのスクリプトも禁止にしてくれればいいのに。
0251名無し~3.EXE
2007/07/24(火) 07:28:39ID:nHmUjfkYこういう会社は遠からず衰退するなw
0252名無し~3.EXE
2007/07/24(火) 09:38:47ID:hrghhaU80253名無し~3.EXE
2007/07/24(火) 13:26:06ID:ZRCldvmk0254名無し~3.EXE
2007/07/24(火) 16:51:41ID:1kH5Q7z7東京都と埼玉県という文字列があるか無いかを、
kekka.txtに書いていくバッチを作りたいのですが、
以下のようにすると、東京都までの検索は出来ますが、
埼玉県の検索で、無限ループのような実行になってしまいます。
環境は、Windows98のMS-DOSプロンプトです。
回避策をご教授頂けないでしょうか。
よろしくお願いします。
find "東京都" < temp.txt
IF ERRORLEVEL 1 GOTO NG "temp.txt"
IF ERRORLEVEL 0 GOTO OK "temp.txt"
:NG
@echo 東京都 なし >> kekka.txt
GOTO END
:OK
@echo 東京都 あり >> kekka.txt
GOTO END
:END
find "埼玉県" < temp.txt
IF ERRORLEVEL 1 GOTO NG "temp.txt"
IF ERRORLEVEL 0 GOTO OK "temp.txt"
:NG
@echo 埼玉県 なし >> kekka.txt
GOTO END
:OK
@echo 埼玉県 あり >> kekka.txt
GOTO END
:END
0255254
2007/07/24(火) 17:07:37ID:1kH5Q7z7自己解決しました
0256名無し~3.EXE
2007/07/24(火) 22:05:23ID:UeCXx0RVSet objFSO=CreateObject("Scripting.FileSystemObject")
Set objTxIn=objFSO.OpenTextFile(".\temp.txt",1)
Do Until objTxIn.AtEndOfStream
buf=objTxIn.ReadAll
Loop
objTxIn.Close
ArrResult=Array(0,0)
if instr(1,buf,"東京都")>0 then ArrResult(0)=1
if instr(1,buf,"埼玉県")>0 then ArrResult(1)=1
strResult=Cstr(ArrResult(0)) & Cstr(ArrResult(1))
Select Case strResult
Case "11" Call WriteResult("東京都あり"&vbcrlf&"埼玉県あり")
Case "10" Call WriteResult("東京都あり")
Case "01" Call WriteResult("埼玉県あり")
Case Else WScript.Echo "ないよ"
End Select
Sub WriteResult(strWord)
Set objTxOut=objFSO.OpenTextFile(".\kekka.txt",2,True)
objTxOut.WriteLine(strWord)
objTxOut.Close
End Sub
0257名無し~3.EXE
2007/07/24(火) 22:06:42ID:cEJUopRPネットワークドライブの情報と、使用しているプリンタ名の情報を
取得する事は出来ますでしょうか?
0258名無し~3.EXE
2007/07/24(火) 22:41:21ID:UeCXx0RVEnumPrinterConnections
0259257
2007/07/24(火) 22:49:55ID:cEJUopRPバッチじゃ無理ですかね
0260名無し~3.EXE
2007/07/24(火) 23:00:45ID:FTD7xDtestart /w regedit /e c:\aaaa.txt HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Printers
type c:\aaaa.txt
del c:\aaaa.txt
0261257
2007/07/25(水) 00:09:05ID:3jXjVge/バッチでレジストリのデータ取得できるんですか!
今環境無いんですが、明日試して見ます。
ありがとうございます!
0262名無し~3.EXE
2007/07/26(木) 01:04:45ID:/KjPiacHMSDNを探したけど見つかりませんでした
for /?やwindowsのヘルプでコマンド名で検索すればそのコマンドについての説明はでてくるのですが
網羅的なものや文法以外の事(例えば変数の扱いについてなど基本的なルール)が書かれている
文書が欲しいです
0263名無し~3.EXE
2007/07/26(木) 01:20:39ID:yErmTSilコマンドでレジストリ読み書きできるのはXP/2003から
98ではできない
98のDOS窓でできる事を確認するには
ヘルプにコマンドラインリファレンスがあったかも
あるいはこれを立ち読みして確認しる
http://www.gihyo.co.jp/books/syoseki.php/4-7741-0636-4
>>262
とりあえずヘルプの「コマンド ライン リファレンス」見れ
物足りなければこういうの買うか立ち読みしる
http://www.gihyo.co.jp/books/syoseki.php/4-7741-1674-2
0264名無し~3.EXE
2007/07/26(木) 01:30:53ID:gEngnIuG最近のしっかりしたサイトは知らないなぁ。@ITくらいか。
お金を出しても良いなら下手にWebで探すより書籍を買っちゃった方が早いかもね。
自分も1冊買ったけど、買って良かったと思ってる。
あと自分の場合 craftlaunch 使ってるので CMD.EXE /C %arg /? > %arg.TXT みたいな
コマンド作っちゃって、一発でコマンド名.txtが出来るようにしてる。
ちなみに変数はPATH /?かCALL /?で一通りのことは分かると思うよ。
0265名無し~3.EXE
2007/07/26(木) 01:35:36ID:gEngnIuG0266名無し~3.EXE
2007/07/26(木) 01:55:53ID:kf5FBSiR仕様は全てヘルプに書かれている。
(ある特定コマンドについてはwin2000ではコマンドヘルプの方が詳しいものも一部ある。
またどう使うか応用はサイトめぐりか本でも買え)
まあ、ヘルプファイルを不要として削除しちゃってるバカもいるけど。
一度は全部読み通してみるといい。
0268名無し~3.EXE
2007/07/26(木) 02:26:44ID:p3iWQA+4ttp://www.amazon.co.jp/dp/4816332545
0269名無し~3.EXE
2007/07/26(木) 08:12:26ID:5Vip6UWZこの時点で間違ってる
複雑な処理させたければWSHなりにしろ
0270257
2007/07/26(木) 13:22:22ID:Bs03WwTU遅くなりましたが目的の情報を取得することが出来ました。
このコマンドで他の情報も持って来れそうです
ありがとうございました
>>263
260さんの記述でレジストリのデータを読めましたよ
0271名無し~3.EXE
2007/07/26(木) 14:00:30ID:gN9jmhD8基本だが、変数として有効な文字とか変数サイズの上限とか全体の総バッファ長とか
& && | || ; , ^ とか、0< 1> 2> 1>&2 2<&1とかWSHの呼び出し方とか
コマンドヘルプじゃわからないよ
0272名無し~3.EXE
2007/07/26(木) 15:23:00ID:Bs03WwTUバッチみたいに使えるの?
0273名無し~3.EXE
2007/07/26(木) 15:50:08ID:04gKUhKK0274名無し~3.EXE
2007/07/27(金) 01:06:16ID:rXnUgSS7みたいに書いても正常に動作しないのですが、
標準出力と標準エラー出力をそれぞれ別々のファイルに保存する方法を
教えていただけませんか?両方を1つのファイルに保存するなら
cd hoge 2>&1 >> ryouhou.log
ですよね。
0275名無し~3.EXE
2007/07/27(金) 01:15:31ID:dNpld2gr0276名無し~3.EXE
2007/07/27(金) 01:19:42ID:fMDvaNVVどんな現象になるの?
cd hoge >> log\normal.log 2>> log\error.log
これでちゃんと動作したけど?
0277名無し~3.EXE
2007/07/27(金) 01:22:53ID:rXnUgSS7cdだと動作するかもしれませんが他のコマンドだとちゃんと動作してないような・・・。
copy /Y とかで試してみると多分動かないかと。。
正しい書き方を知らない物で 正当な書き方をお聞きしたいのですが・・・。
>>275さんのが正しい書き方なのですかねぇ。
この場合( ) の中が最初に評価されるから 仮になんらかの原因( normal.logファイルへの書き込み
権限が無かったり)で、コマンドの実行自体は成功しているのにnormal.logへ書き込めなかったから
エラーだと判断されて error.logにかかれたりはしないのかなぁ・・・。
いまいちこの辺よく分からない。
0278名無し~3.EXE
2007/07/27(金) 01:24:50ID:fMDvaNVVdir hoge
で試したけど問題なく動作したよ
0279名無し~3.EXE
2007/07/27(金) 01:37:52ID:rXnUgSS7マジですか・・・。 じゃあリダイレクションの問題じゃなくて
私が何か間違えているのかも。Windows版 pdumpfsを動かして検証してみたところ上手く
いかなかった物で・・・。 失礼しました。
0280名無し~3.EXE
2007/07/27(金) 01:45:37ID:/AUK6hlHこれって相対パス指定してるんだが、カレントディレクトリ配下に間違いなくlogフォルダはあるのか?
無ければ当然の結果だけど
>指定されたパスが見つかりません。
となる
0281名無し~3.EXE
2007/07/27(金) 01:48:08ID:rXnUgSS7こんな感じ。
実際には引数で渡して変数に格納して使っているので
%PRG% %MOTO% %SAKI% >> log\normal.log 2>> log\error.log
こんな感じ。
それでエラーが起きたときは error.logに書かれるのに
正常に実行できた時は normal.logに何も書かれないからおかしいなぁと思って。
0282名無し~3.EXE
2007/07/27(金) 01:48:48ID:rXnUgSS7コード中に
REM logフォルダがない場合は作成する
if not exist log\nul (
mkdir log
)
ってあるのでlogフォルダは確実にあります。
0283名無し~3.EXE
2007/07/27(金) 02:57:22ID:S6Sd4k6Bどこのコマンドを使ってる?
ググってpdumpfs-w32-1.3.zipをゲットして試したら実行しても
標準(エラー)出力に何も出力されないまことに静かなるコマンドだったんだが?
0284名無し~3.EXE
2007/07/27(金) 08:13:51ID:rXnUgSS7http://www.monochrome.jp/~katsuwo/software/pdumpfs-for-windows/
これです。
で、私の勘違いだったようで、なんだか
pdumpfs.exe C:\moto C:\saki >> normal.log 2>> error.log
で動作しているようです。なぜ勘違いしたのか未だによく分かりませんがOTL
お手数をお掛け致しました。
しかし1つ気になる事が。
pdumpfs.exe C:\moto C:\saki >> normal.log 2>> error.log
で動作したのですが
(pdumpfs.exe C:\moto C:\saki >> normal.log) 2>> error.log
こういう風に ()で囲った方がいいのでしょうか?どう書くのが慣例なのでしょう?
また、 ( )で囲った方がいいなら、その理由は? 質問の締めくくりとして
ご教示宜しくお願い致します。
0285名無し~3.EXE
2007/07/27(金) 11:30:18ID:+rjyunv50286名無し~3.EXE
2007/07/27(金) 21:28:47ID:lyQPBbWY82BE
82AD
82BD
82C1
82DC
0287名無し~3.EXE
2007/07/27(金) 21:33:47ID:BKYgm8FZ0288名無し~3.EXE
2007/07/28(土) 18:33:15ID:a/qCxIPC0289名無し~3.EXE
2007/07/28(土) 18:50:31ID:m2ZCRxis0290288
2007/07/28(土) 18:53:48ID:a/qCxIPC0291名無し~3.EXE
2007/07/30(月) 13:03:56ID:BT+WwteJWindowsXP home editionを使用してるんですが、msconfig→システム構成ユーティリティから「BOOT.INI」にあるタブの「/SAFEBOOT(F)」にチェックを入れてセーフモードを機動したんです。セーフモードコマンドプロントの画面になり、そこから通常の時に戻れません
どうすれば元に戻せますでしょうか?
0293名無し~3.EXE
2007/07/30(月) 17:01:28ID:7XlSPz/Jnotepad c:\boot.iniするなり方法は色々あるはず。
0295名無し~3.EXE
2007/07/31(火) 16:20:44ID:8GY6o1TNWindows98のMS-DOSプロンプトで質問があります。
cd C:\test
dir /B /S > C:\WINDOWS\デスクトップ\test
cd C:\test2
dir /B /S > C:\WINDOWS\デスクトップ\test2
↑のようなバッチでC:\testとC:\test2配下のディレクトリ構成を
テキストファイルとして保存したいのですが、
C:\test2というフォルダが存在しない場合、
バッチの実行結果では、dir /B /S > C:\WINDOWS\デスクトップ\testの内容を
test2のファイルとして残されてしまいます。
C:\test2というフォルダが存在しない場合、0kbのtest2ファイルとして
残す方法を御教示ください。よろしくお願いします。
0296名無し~3.EXE
2007/07/31(火) 18:43:44ID:Hu1nS5yrif exist C:\test2\nul echo.>C:\WINDOWS\デスクトップ\test2
0298名無し~3.EXE
2007/07/31(火) 19:25:23ID:uQa6Hv3dif exist "c:\test2\nul" dir "c:\test2" /b /s > test2.txt
Windows98 の dir って処理先指定できないんだっけ??
できなかったら無理だけど。
0299名無し~3.EXE
2007/07/31(火) 19:30:28ID:uQa6Hv3delse とか () とか使えたっけ?もう分からん。
使えるなら
if exist "c:\test\nul" (dir "c:\test" /b /s > test.txt) else (echo.> test.txt)
if exist "c:\test2\nul" (dir "c:\test2" /b /s > test2.txt) else (echo.> test2.txt)
使えないなら >298 に↓を追記。
if not exist "c:\test\nul" echo.> test.txt
if not exist "c:\test2\nul" echo.> test2.txt
0300名無し~3.EXE
2007/07/31(火) 19:36:10ID:Hu1nS5yrそれと else とか () は使えない。
0301名無し~3.EXE
2007/07/31(火) 20:24:25ID:1QfNp2Sl0302名無し~3.EXE
2007/07/31(火) 20:42:45ID:XA8WQJFOそれ少なくともMS-DOS(3.3/5.0/6.2)/Windows95/98/Me/NT4.0/2000/XPでは正解。
他のOSでは確認してないが。
0303名無し~3.EXE
2007/07/31(火) 20:44:51ID:ChlSZmRF0304名無し~3.EXE
2007/07/31(火) 21:11:25ID:mIH/KnHccopy nul hoge
でやってた
0305名無し~3.EXE
2007/07/31(火) 23:22:23ID:XA8WQJFOそっちは確かNT系のWindowsのみ可能だったはず。
0306名無し~3.EXE
2007/07/31(火) 23:55:09ID:IK31m5SSrem>hoge
ってのもある。
0307名無し~3.EXE
2007/08/01(水) 13:15:29ID:3O9k4hax俺の一番のお気に入りは
rem>hoge.txt
これを知ったのは20年ぐらい前のfj.os.dosあたりだったと思う。
NTだと
.>hoge.txt
ってのもある。
エラーが出るけどファイルはちゃんと作られてる。
文字数はこれが最小。
エラーが出ない最小はなんだろう?
0308名無し~3.EXE
2007/08/01(水) 22:21:01ID:9V4T7tMX98/2k/Vistaで確認。
0309名無し~3.EXE
2007/08/05(日) 16:18:47ID:Bp/DvISo0310>302,305
2007/08/05(日) 20:54:33ID:W6ka+1ndその手もあったか。XPでもできたよ。俺は>301の方法が最も無難だと思ってるが。
0311名無し~3.EXE
2007/08/06(月) 21:13:46ID:+YTckNXT20070805.txt
20070804.txt
20070803.txt
上のようなログファイルがあり、
日付が一番古いファイル(20070803.txt)を
バッチで削除したいと思ってます。
dir /B /D > file で、ファイルを古い順に
並べられるのですが、全てのファイル名が入ってしまいます。
先頭の1行目だけにファイルにすれば、FOR文で抜き出して
削除できそうだと思うのですが、何か良い方法が無いでしょうか。
環境は、Windows2000とXPです。よろしくお願いします。
0312名無し~3.EXE
2007/08/06(月) 22:55:39ID:XO1cJNnwcall :sub
del "%f%"
goto :EOF
:sub
for /F "usebackq delims=" %%i in (`dir /B /D`) do (
set f=%%~i
goto :EOF
)
0314名無し~3.EXE
2007/08/08(水) 03:46:30ID:bRJsedJbこれだけでいいんでわ…
0315名無し~3.EXE
2007/08/08(水) 23:50:03ID:d9CU6bSIset temp=おはよう
set temp2=こんにちは
set temp3=さようなら
set temp4=%temp%%temp2%%temp3%
echo %temp4%
このようなバッチを書くと結果が、
おはようこんにちはさようなら
↑のようになります。これを、
おはよう
こんにちは
さようなら
といった風に表示させたいのですが、
変数の中に改行コードを入れる事は可能でしょうか。
\n等をいれてみたのですが、そのまま表示されてしまいました。
また、もし可能だとしたら、変数には何文字くらい
代入が可能でしょうか。
0316名無し~3.EXE
2007/08/09(木) 00:23:38ID:5dR+4Z7j>変数の中に改行コードを入れる事は可能でしょうか。
set temp=おはよう
set temp2=こんにちは
set temp3=さようなら
set temp4=%temp%^
%temp2%^
%temp3%
echo !temp4!
>変数には何文字くらい代入が可能でしょうか。
XPの場合、変数1つにつき 8192バイト、
全環境変数の合計は変数名、等号を含めて 65536KBまで。
0319名無し~3.EXE
2007/09/06(木) 22:13:52ID:p7g9huyDコマンドプロンプトでヘルプを読むときに、
dir /? 等と打つと、dirのヘルプを読めますが、
全てのマニュアル内容を表示させることは出来るでしょうか?
出来れば、ひとつのファイルにリダイレクトして、
コマンドプロンプトのヘルプとして保存したいと思います。
使用OSは、XPですが98やNT/2000での表示方法も違うようでしたら
ご教授頂ければ幸いでございます。
よろしくお願いします。
0320名無し~3.EXE
2007/09/06(木) 22:24:57ID:cBR0cADsこんな感じのこと?
ファイルが長ったらしいし必要なときに必要なコマンドのヘルプだけ参照した方がいいと思うけど…
0322名無し~3.EXE
2007/09/07(金) 01:47:00ID:asFtjM75こっちだろ…
0323名無し~3.EXE
2007/09/07(金) 01:52:31ID:d+r8xArPまたは
hh ms-its:ntcmds.chm::/ntcmds.htm
0324名無し~3.EXE
2007/09/10(月) 13:18:02ID:HtOy1mDZ条件分岐はどの様にやれば宜しいのでしょうか。
具体的には、
メッセージ: ○○を実行しますか?(Y/N)
Yの時はラベルAのコマンド群をNの時はBAT終了。
ご教示、よろしくお願いいたします。
0325名無し~3.EXE
2007/09/10(月) 13:51:50ID:AyQQeB8KMD-DOS時代にはChoiceで選択できたらしい
今はそれが使えないからChoiceの代わりにこういう風にする
http://haoki.hp.infoseek.co.jp/MS-DOS/ExamplesOfBatchFiles.html
0327名無し~3.EXE
2007/09/11(火) 14:51:32ID:tSfBcypBそのままXPでも使える。
0328名無し~3.EXE
2007/09/11(火) 16:52:42ID:Coumuge00329名無し~3.EXE
2007/09/13(木) 00:30:10ID:ZL/yiW6X0330名無し~3.EXE
2007/09/16(日) 21:54:53ID:3LXuaGLVファイル名のデータをエクセル内から取得することは可能でしょうか?
例えば、B2のセルに「hoge」、C4のセルに「hage」と入っているとして、
そのエクセルファイルをバッチファイルにドラッグ&ドロップすると、
「hogehage.xls」とリネームされるようにしたいのです。
リネーム前のファイル名は不定です。
よろしくお願いします。
0331名無し~3.EXE
2007/09/16(日) 23:47:26ID:tctmZAgJ無理な気がする。WSHなら出来るかもしれないが。
エクセルファイルがあるんなら、それをテキストファイルに落として、
テキストファイルからリネームさせれば?
それならバッチでもリダイレクト出来るだろう
0332名無し~3.EXE
2007/09/17(月) 00:32:42ID:1iW1pKfDMsgBox Application.ExecuteExcel4Macro("'C:\Documents and Settings\My Documents\[Book1.xls]sheet1'!R1C1")
みたいに
0333名無し~3.EXE
2007/09/17(月) 09:34:26ID:Gub8Dds7Excelからリストを含んだVBSかなんかを出力させるようにすりゃ良いんだよ
0334名無し~3.EXE
2007/09/17(月) 09:56:58ID:u5TAhrJDエクセルからCVSにでも変換すれば何とかなるんじゃ?
ただ、ファイル名にスペースが含まれる場合などは、きちんと対策しておかないと死ぬと思うので要注意。
0335名無し~3.EXE
2007/09/17(月) 10:12:35ID:P35yenRWそのとき、移動するファイル名に-002とかを付加してmoveすることは出来ますか?
0336名無し~3.EXE
2007/09/17(月) 11:43:28ID:qFWL8DrH0337名無し~3.EXE
2007/09/17(月) 13:40:32ID:P35yenRWありがとう。やってみます。
コマンドライン初心者ですけど、頑張ります!
フィル振り分けソフトってろくなのが無いので、バッチファイルが書けるまで頑張ります!
0338名無し~3.EXE
2007/09/18(火) 01:58:17ID:gMM571jLいくつものフォルダ(数百個)に分散した大量のファイル(約50万個)を渡したいんですが
バッチファイルでファイル名を書いたtxtを勝手に参照してもらう方法は無いでしょうか。
あるいは他にもっと手っ取り早い方法はないでしょうか。
0339名無し~3.EXE
2007/09/18(火) 03:46:19ID:gdYBVbuE0340名無し~3.EXE
2007/09/18(火) 20:52:10ID:VaDU0MRPFireFoxとかインストールするときに次へ進むボタンとかあるけど
batだけで全部インストール処理できますか?
0341名無し~3.EXE
2007/09/18(火) 21:47:07ID:y2b0bLvNなければ無理。batでボタン押したりは出来ない。wsh使え。
0342340
2007/09/18(火) 22:17:18ID:VaDU0MRPありがとうございます。
ちょっと調べましたがwshで作ったコードを保存したら.vbsになりますよね。
ということは全てのwindows環境で実行することができませんよね?
できれば.exeとか.batでありませんでしょうか?
0343名無し~3.EXE
2007/09/18(火) 22:23:59ID:OeER2hXe0345名無し~3.EXE
2007/09/19(水) 01:45:03ID:fRhBg93XPt.2かPt.3の頃から進化しないつーか深化しないと言えばそれまでだけど。
けして悪口じゃなくて本心です。
0347340
2007/09/19(水) 09:45:46ID:+9iiRmg+あ、やっぱできませんでしたか。
じゃあやっぱ.batみたいな普通の環境で実行できるやつがいいな。。
wsh以外でインストーラーのボタンを押せるもの何かありますか?
0348名無し~3.EXE
2007/09/19(水) 10:34:13ID:hmqMAoL+0350名無し~3.EXE
2007/09/20(木) 11:01:44ID:1uTHvdSs0351名無し~3.EXE
2007/09/20(木) 11:52:07ID:ylAti8AR普通はvbsは実行できるはず。
0352名無し~3.EXE
2007/09/22(土) 14:17:28ID:u6hq42dcFireFoxってWin3.1で動くの?
0353名無し~3.EXE
2007/09/22(土) 14:41:01ID:K4jH93N60354名無し~3.EXE
2007/09/23(日) 00:11:23ID:0zXrh7do会社と家で同じファイルの同期をとり続けるためにFTPのコマンドを使おうとしています。
(やりとりに使うサーバはさくらのレンタルサーバです)
家ではうまく接続でき、問題なくダウンロード、アップロードできるのですが、
会社ではダウンロード、アップロードがうまくいきません。
ブラウザではプロキシの設定をしているので、プロキシの設定が必要なのかと思い、
Windows標準のFTPクライアントでは不可能っぽいので諦めていたのですが、
FFFTPでは導入してすぐにダウンロードできているのでよく原因がわかりません。
詳しい方ご教授お願いします。
0355名無し~3.EXE
2007/09/23(日) 00:29:56ID:YiMPoOFi・FTPコマンド実行時、どの段階でうまく行かなくなるのか
実際に入力しているコマンドとそれによる標準出力を列記
(FTPサーバ名やユーザ名等、個人情報はマスク)
・うまく行かない時に表示されるメッセージと挙動の詳細
まずは、以上について説明して下さい。
「うまくいかない」だけでは回答しようがないのです。
0356名無し~3.EXE
2007/09/23(日) 00:33:47ID:0zXrh7doすみません……。
今家で正確なエラーメッセージの確認はできないです。月曜に確認してきます。
ただ接続はうまくいっていて、
getとputの段階でプロンプトが落ちる、という症状でした。
ログは取っていたのでそこまでわかったのですが、エラー内容までは覚えていません。
今言えるのはここまでです。失礼しました。
0357名無し~3.EXE
2007/09/23(日) 09:46:45ID:Tq1GuzbT0358名無し~3.EXE
2007/09/23(日) 10:06:36ID:ZAaCzpBz0359名無し~3.EXE
2007/09/23(日) 12:54:59ID:oPSAXKaI0360名無し~3.EXE
2007/09/23(日) 14:14:04ID:r/hHw6Mrrenコマンドで、サブフォルダの中のファイルも一括で処理することはできますか?
ものによっては/sというスイッチをつける物もあるようですが、renではできませんよね?
0361名無し~3.EXE
2007/09/23(日) 18:38:08ID:BAQKEi+X0362名無し~3.EXE
2007/09/23(日) 18:57:58ID:/Q7UHlkY会社だとファイヤーウォールの内側なので
FTPのデータ転送コネクション確立のための外部からの接続要求は
ファイアーウォールによって弾かれ接続できない。
従って、内側から接続要求を出す必要がある。
このためにはPASV(パッシブ)モードにして内部から接続要求を出す必要がある。
が、windowsのftpサブコマンドにはpassiveが無いので
(2000までには無かった。たぶんXPやVistaにも無かろうと思う)
もっと高機能なftpクライアントが必要。
0363名無し~3.EXE
2007/09/23(日) 19:01:43ID:/Q7UHlkYサポートしてるのでアクセス可能
0364名無し~3.EXE
2007/09/24(月) 01:51:00ID:pRSpVT9A拡張子をlog→txtにするなら
FOR /F "DELIMS=" %A IN ('DIR "E:\hoge hoge\*.log"/B /S /A-D') DO REN "%A" "*.txt"
こんな感じかな
0365名無し~3.EXE
2007/09/24(月) 06:50:04ID:AiJMwWuWできました!コマンドラインも奥深いわ。めっちゃありがとう。
0366名無し~3.EXE
2007/09/24(月) 19:00:56ID:+Pu3qWa3今日会社でその結論にたどり着きました。
諦めてFFFTPでやりとりしようと思います。
家では自動化できるだけマシと思いつつ……。
0367名無し~3.EXE
2007/09/25(火) 09:21:29ID:qp05KsMzncftpを使ったほうがいいかも。
0368名無し~3.EXE
2007/09/29(土) 12:59:58ID:rhAGaWpx*A*B*と*B*A*と書く方法しか知らないので、ご教授をお願いします。
0369名無し~3.EXE
2007/09/29(土) 19:13:18ID:ONh9+IA8管理しやすくなってきたけど、Windows Server 2008ではついにエクスプローラシェルの排除まで
出来るようになるらしい。
http://www.atmarkit.co.jp/fwin2k/winsv2008/01overview/01overview_04.html
0370名無し~3.EXE
2007/09/29(土) 19:18:04ID:ONh9+IA80371名無し~3.EXE
2007/09/29(土) 23:04:46ID:QieKgrdmめっちゃ遅レス、かつ>>367もちょこっと言ってる事だけど、Win標準ftp.exeより
高機能なFTPクライアントは結構ある。
例(シェアはシラン)
ttp://www.abk.nu/~kattyo/freesoft.htm#prog_ftp
⇒使わなかったけど、if文とかつかえて面白そう
ftp-for-win32.zip
⇒UNIXの移植版 PASVが使えるけど、mget *でバグがあったような
ttp://www.geocities.jp/rich_slipper/soft/soft.html
⇒1ライナーで使えるのでバッチファイルとかに組み込みやすい。
ttp://www.hi-ho.ne.jp/babaq/basp21.html
⇒WSH等で使える。
自分もFTP操作自動化で最近悩んでたので、ついで。
0372名無し~3.EXE
2007/09/29(土) 23:16:34ID:dWv53CayAとBはそれぞれ一個ずつなのか?それとも重複してもいいのか?例 aaabbaaa.txt
また、aとbは文字通りの一文字なのか?それともwordなのか?
まあ、forとfindstrを組み合わせて(必要ならパイプでデータ受け渡し)、正規表現でヒットさせろよ
0373名無し~3.EXE
2007/09/30(日) 02:06:32ID:i+tF55N1ありがとうございます。重複してもいいです。
具体的にはファイル名に「福田康夫」と「国会」の2つを順不同で含むファイルをC:\福田康夫\国会へ移動したいのです。
名前が100人分、案件が各20件で計2000の振り分け条件で振り分けたいのですが、フリーソフトを使うとCPU使用率が100%に張り付くので
パッチ処理にトライしている次第です。
ご教授の方法でトライします。結果を報告できるようがんばります。
0374名無し~3.EXE
2007/09/30(日) 02:53:16ID:D3bkO61xdir/b | findstr 福田康夫 | findstr 国会 >tmp.txt
for /f "delims=" %%I in ('type tmp.txt') do move "%%~I" c:\福田康夫\国会
del tmp.txt
0375373
2007/09/30(日) 05:04:24ID:/1yS/Qr0今、酔っぱらっていますが、すっげー感激。
明日、素面になったらやってみます。
マジ、感激してます。ありがとう御座います。
0376名無し~3.EXE
2007/10/05(金) 08:18:44ID:ysb+mHrvそのドライブに対して、CHKDSK ドライブ: /R をかけたら
昨夜から10時間以上やって29%しか進みせん
タスクマネージャー/プロセスでchkdsk.exeが仕事をしている様子も全然なし。(0%)
1時間前には6%だったので完全には死んではいないと思うのですが…。
(6%で長時間停止->動き出す->29%でまた停止)
これはもうドライブが死亡間近と考えて新しい外付けにデータを退避させることも考えているのですが、
現在やっているCHKDSK と コマンドプロンプトを中断させるのは危険でしょうか?
0377名無し~3.EXE
2007/10/05(金) 08:42:31ID:/YK8Gma10378名無し~3.EXE
2007/11/01(木) 15:30:20ID:5dS7zZtr0379名無し~3.EXE
2007/11/04(日) 07:04:04ID:V+2wa1CIC:\>set /a 7*7
49
C:\>_
変数名書かなければ、計算出来たのか。
0380名無し~3.EXE
2007/11/05(月) 00:18:42ID:lgskxUHc49
0381名無し~3.EXE
2007/11/06(火) 16:25:05ID:+zVUig6T0382名無し~3.EXE
2007/11/06(火) 21:22:54ID:8wMnx2Ydプロンプトからなら答えが出るし
バッチからだと出ない
0383名無し~3.EXE
2007/11/07(水) 14:38:44ID:TznxkJFxドライブレターの変更ってどうやったらよいでしょうか?
ハードディスクのレターがAになってるので、Cに変えようと思ったのですが、
コマンドがわからず・・・
0384名無し~3.EXE
2007/11/07(水) 14:52:48ID:BlzrMWmfシステム的にドライブレターを変更したいのか、
どっち?
カレントディレクトリの変更ならこのスレ的だろうけど、
システム的にドライブレターを変更したいならここじゃないと思うよ
0385名無し~3.EXE
2007/11/07(水) 15:09:18ID:JFoxjGSqHDDがAってどんな環境だ。
PC-9821にWin98でも入れてんのなら、基本的に再インストールしかないと思うよ。
システムの入ったドライブは簡単には移動できないから。
0386名無し~3.EXE
2007/11/07(水) 18:04:53ID:b7Qady4y0387名無し~3.EXE
2007/11/07(水) 18:10:09ID:TznxkJFx9821す。
HDDをCにしたいって事です。
でもドライブレター変更て、コマンドではできなかったでしたっけ?
なんか、駄目くさい気がしてきました・・・
0388名無し~3.EXE
2007/11/07(水) 18:41:55ID:fWyPbxkFインスコ時、ATオプションをつけるとHDDがCになったような希ガス。
外部コマンドのSUBSTでやりくりするとか。
うろ覚えなのでゲイツにでも聞いてくれ。
0389名無し~3.EXE
2007/11/07(水) 19:05:03ID:3xhNtlCaそれでもシステム、ブート、ページングのボリュームのドライブレターは変更できないよ
0390名無し~3.EXE
2007/11/07(水) 20:43:48ID:9JvKdpgS0391名無し~3.EXE
2007/11/07(水) 22:46:47ID:TznxkJFxちょっとその方法試してみます。
なんかダメポい気もするので、駄目だったらおとなしくAで使っときます(^^
0392名無し~3.EXE
2007/11/07(水) 23:28:26ID:XEtIoW0A1FDDの場合間違ってBにアクセスするとブラックスクリーンになるんだよね〜
害はないけど。
0393名無し~3.EXE
2007/11/14(水) 01:13:59ID:iPd4DuNfファイル名が補完されて驚いたよ
なんだいLinuxに負けず劣らず便利じゃねぇか
ついでに dir の代わりに ls で
ディレクトリ内容も表示してくれるといいなぁ
0394名無し~3.EXE
2007/11/14(水) 01:25:55ID:TY8Yz81u0397名無し~3.EXE
2007/11/15(木) 01:36:03ID:wRAvcu5iありがとー
lsでディレクトリが表示されるのは非常に快適だ
わかっちゃいるんだがつい手がlsと打ってしまうからね
Powershellってのもなかなか良さそうだ
今度時間のある時に入れてみよう
0399名無し~3.EXE
2007/11/29(木) 20:34:39ID:9IgcnDtWそれを選択すると印刷ができますが、
同様の挙動をDOSコマンドから得ることはできまつか?
0400名無し~3.EXE
2007/11/29(木) 22:37:36ID:83NzChea0401名無し~3.EXE
2007/11/30(金) 04:00:36ID:tDpWdtj8http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2481299&SiteID=7
0402名無し~3.EXE
2007/11/30(金) 12:46:09ID:tDpWdtj8お探しのものはこれでつか?
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/oct04/hey1004.mspx
0403名無し~3.EXE
2007/12/02(日) 00:11:24ID:xxMGDSmd0404名無し~3.EXE
2007/12/02(日) 09:46:33ID:kErETC/K0405名無し~3.EXE
2007/12/02(日) 23:19:31ID:vAy7xVi50406名無し~3.EXE
2007/12/02(日) 23:26:41ID:Y59hieEz>バッチ プログラムまたはスクリプトとも呼ばれるバッチ ファイルを使用すると、
>簡単にルーチン作業または繰り返し作業を行うことができます。
>バッチ ファイルとは、純粋なテキスト ファイルで、1 つ以上のコマンドが含まれており、
>ファイル名拡張子として .bat または .cmd が付いています。
>コマンド プロンプトでそのファイル名を入力すると、Cmd.exe によって
>ファイルに記述されている順番でコマンドが実行されます。
>バッチ ファイルには、任意のコマンドを記述できます。for、goto、if などの特定のコマンドを使用すると、
>バッチ ファイル内のコマンドを条件に応じて実行できます。
>たとえば、if コマンドでは、条件の結果に基づいてコマンドが実行されます。
>そのほかのコマンドを使って、入出力を制御したり、ほかのバッチ ファイルを呼び出すこともできます。
>ほとんどのアプリケーションが返す標準エラー コードは、エラーが発生していない場合は 0、
>エラーが発生した場合は 1 (またはそれ以上の値) です。
>特定のエラー コードの意味を調べるには、アプリケーションのヘルプ ドキュメントを参照してください。
0407名無し~3.EXE
2007/12/03(月) 19:35:11ID:RVtK1L0R「バッチスクリプト」って。
そもそもスクリプトじゃ何のスクリプトか分からんだろ。
0408名無し~3.EXE
2007/12/03(月) 23:25:21ID:UMhrU1NK0409名無し~3.EXE
2007/12/03(月) 23:39:22ID:uge6z7Xoそれともパスの通ってるところにある全実行ファイルってこと?
0410名無し~3.EXE
2007/12/04(火) 00:39:55ID:Y8Lltu0y「ウィルスが検知された時にバッチプログラムを実行する機能」が
正常にバッチを実行しない旨、問い合わせをしたら
「EXEファイルしかサポートしてません」とホザきやがったよ。
0411名無し~3.EXE
2007/12/04(火) 00:44:09ID:z2LH0I310412名無し~3.EXE
2007/12/04(火) 00:47:38ID:K6BIfF3b「ウィルスが検知された時にバッチプログラムを実行する機能」
と銘打ってるんなら、ダメだろw動かなきゃ
0413名無し~3.EXE
2007/12/11(火) 18:01:11ID:m8423oGDcmd.exeを実行したときのコンソールウィンドウの編集モードを
デフォルトで簡易編集モードに設定する方法はないのでしょうか?
ショートカットや、同じ名称のウィンドウなら個別で設定できるのですが
そうじゃなく常に簡易編集モードにする方法が知りたいです。
参考(役に立たなかった説明)
http://support.microsoft.com/kb/282301/ja
WinXP ではコマンド プロンプトの簡易編集モードが既定で無効
0414名無し~3.EXE
2007/12/11(火) 18:18:39ID:hxLMQTTa[HKEY_CURRENT_USER\Console]
"QuickEdit"=dword:00000001
0415名無し~3.EXE
2007/12/11(火) 21:40:52ID:m8423oGDお!すばらしいです。
既にカスタマイズしたパラメータも下のキーにあるので
これで上書きすればよいですね
0416名無し~3.EXE
2007/12/14(金) 15:39:39ID:EG7UyQahhoga.txt
hoge.txt
ho'''''ge.txt
hogee.txt
ho-----gee.txt
hogo.txt
なにやら不思議なソート結果に…何これ?
0417名無し~3.EXE
2007/12/15(土) 20:32:48ID:J3SQ8eGYDOSコマンドでアプリケーションを終了したいのですが、
TASKKILLコマンドを使用して、
taskkill/im realplay.exe/f/t
とやっても、「'taskkill'は内部コマンドまたは外部コマンド、操作可能な・・・」
といったメッセージが返ってきます。
コマンドの問題箇所、もしくは他のコマンドがありましたら、
教えてくださいませ、よろしくおねがいいたします。
0418名無し~3.EXE
2007/12/15(土) 20:59:33ID:wVP0mofE0419名無し~3.EXE
2007/12/15(土) 21:07:05ID:83Egwg+hサポート ツールにkillがある
0420名無し~3.EXE
2007/12/15(土) 21:09:00ID:dfEri7hZ0421名無し~3.EXE
2007/12/15(土) 21:21:03ID:Uqxi5necサポートツールってMICROSOFTのサイトですか?
0422名無し~3.EXE
2007/12/15(土) 21:28:37ID:dfEri7hZtaskkill簡易版というのがある。
XP Professionalのtaskkillコマンドに似せた形式のコマンド。
ttp://www.vector.co.jp/soft/winnt/util/se401845.html
0423名無し~3.EXE
2007/12/15(土) 21:34:47ID:lBxshq290424名無し~3.EXE
2007/12/15(土) 22:39:05ID:5rIoihq90425名無し~3.EXE
2007/12/15(土) 23:11:01ID:L+mv8qPXなるほど、こんなのあるんですね、ありがとうございました!!
0427名無し~3.EXE
2007/12/17(月) 23:08:28ID:BFIgzHr00428名無し~3.EXE
2007/12/19(水) 20:20:25ID:AdtoV95K0429名無し~3.EXE
2007/12/26(水) 00:33:00ID:rbjdjGQz↓
\aaaa\bbbb
のような最後の\だけ取ることってどうやれば出来ますか?
0430名無し~3.EXE
2007/12/26(水) 00:47:37ID:HdyjgLd3だけどルート(C:\)の場合とかあるから、無条件にとるのは止めたほうがいいぞ。
どっちかというと逆に必ず\で終わるようにするロジックに変えたほうがいい。
if %var:~-1% neq \ (set var=%var%\)
0431名無し~3.EXE
2007/12/26(水) 18:48:14ID:Jz+7hx4Q0432名無し~3.EXE
2007/12/26(水) 19:00:57ID:low3Iayr何話したいんだろうな、向こうは
forとifのオプションの話しか出来ないような気も
0433名無し~3.EXE
2007/12/26(水) 22:59:07ID:RLSVoyeP住み分けとかじゃなく、単に捉え方の差だと思う
本来、両方で存在してても全く問題ないと思うんだが
0434名無し~3.EXE
2007/12/26(水) 23:06:03ID:low3Iayr外部コマンドに頼る、又は実用的なものはココ
文法的なこと、ロジカルな問題がアッチ、ってとらえ方であってる?
0435名無し~3.EXE
2007/12/26(水) 23:10:01ID:50mfR39P別に誘導する必要はまったく無い。
区分けも不要。
質問は各個撃破でおk
0436名無し~3.EXE
2007/12/27(木) 11:03:08ID:X9+WkMgTXPで隠しファイルを表示にしてもrecycleフォルダがありません。
レジストリから取得でもなんでもいいのですが
どうやったらいいのでしょうか。
0437名無し~3.EXE
2007/12/27(木) 13:01:44ID:2TeHSSTXttp://www.vector.co.jp/soft/win95/util/se313491.html
が参考になるんじゃね?
0438名無し~3.EXE
2007/12/27(木) 15:19:09ID:X9+WkMgTありがとうございます。
batファイルというかバッチコマンドだけというのは
無理そうですね・・・。
0439名無し~3.EXE
2007/12/27(木) 18:27:49ID:3yzeEI0b0440名無し~3.EXE
2007/12/27(木) 20:54:45ID:poBRtKPI0441名無し~3.EXE
2007/12/28(金) 01:19:39ID:f9N/29cr0442名無し~3.EXE
2007/12/28(金) 01:32:06ID:yjdMHYge0443名無し~3.EXE
2007/12/28(金) 07:44:57ID:ElkJaKCc0444名無し~3.EXE
2007/12/28(金) 10:13:04ID:70uw9AsQttp://pc11.2ch.net/test/read.cgi/tech/1197881068/
0445名無し~3.EXE
2007/12/28(金) 16:31:06ID:yjdMHYge状況知らない人に説明すると、向こうのスレには基地外が
一人いて(こっちも見てるはず?)なんでもかんでも、こっちに
誘導しようとしている。
0446名無し~3.EXE
2007/12/28(金) 21:45:28ID:LlF9YfFLできるよ
http://pc11.2ch.net/test/read.cgi/tech/1197881068/75
みたいに
0447名無し~3.EXE
2008/01/18(金) 23:20:48ID:j9d+PS7fShellNewのCommandが
%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\syncui.dll,Briefcase_Create %2!d! %1
であることから、次のようなコマンド
C:\WINDOWS\system32\rundll32.exe C:\WINDOWS\system32\syncui.dll,Briefcase_Create "D:\Tmp" ブリーフケース"
をコマンドプロンプトから入れてみましたが、メッセージなどは出ませんでしたが、
ブリーフケースは作成されませんでした。このコマンドラインをどのように修正すれ
ばいいでしょう?よろしくお願いします。
0448名無し~3.EXE
2008/01/19(土) 00:38:57ID:sSEzOzL60449名無し~3.EXE
2008/01/19(土) 08:24:46ID:/uF4QVUsやってみてくださり、ありがとうございました。いまわたしも気がつきました。
確かにデスクトップにできてました。なんで D:\Tmp にできないのか・・・・・、
どこをどう直せばいいのでしょう??
0450名無し~3.EXE
2008/01/19(土) 09:27:24ID:qyNXQNI10451名無し~3.EXE
2008/01/19(土) 09:54:47ID:/uF4QVUsおお、この 1 が必要だったんですね!わかりました。ありがとうございました!!
0452名無し~3.EXE
2008/01/20(日) 19:37:05ID:WxOVD6GN0453名無し~3.EXE
2008/01/20(日) 20:49:39ID:KKGepza4今の人はブリーフケース知らんかもな。
確かWin98辺りまではあったよ。そういう機能が。
0454名無し~3.EXE
2008/01/20(日) 21:45:54ID:/whP3Oqq0455名無し~3.EXE
2008/01/20(日) 22:27:18ID:T0Gjpk8k0456名無し~3.EXE
2008/01/20(日) 23:58:23ID:nLJrkLME0457名無し~3.EXE
2008/01/21(月) 01:01:11ID:B/YHJUBh0459名無し~3.EXE
2008/01/21(月) 02:55:37ID:Phaws+EF2000になって置かれなくなった。
今でも新規作成から作ることはできるけど、98以降は影が薄くなったのは確か。
0460名無し~3.EXE
2008/01/21(月) 08:24:29ID:Gr9XxhBx「わしは何年もつかっとるが未だにブリーフケースの使い道がワカランのじゃ」
みたいに言うジョークがあったな
探してみたけど見つからない、コピペじゃないのかな
0461名無し~3.EXE
2008/01/25(金) 00:18:26ID:8TpBX6Fiコマンドプロンプトで操作している時に、一時的に管理者としてコマンドを実行したいのですが…
0464名無し~3.EXE
2008/01/25(金) 19:52:16ID:Bm6HNp9Aありがとうございます。
でもこのコマンド、びみょ〜に使い勝手悪いなぁ…
利用して、自分好みにバッチ組んでみます。
0465名無し~3.EXE
2008/01/28(月) 18:20:29ID:a60OcUKArem @echo off
rem Filename: inFiles.bat
rem ドラッグandドロップで 特定ファイルのディレクトリ-リストを 取得する 目論見.
DIR /N %~DP1%~NX1 >%~DP1dir-%~NX1.txt
---
これを 作業中フォルダに持ち込み 使用してます.
ドロップファイルなしでも 思惑通り 作業中フォルダ(バッチ本体があるので)
フォルダ全部のリストを取れる
ショートカット"inFiles.LIK"を作成し 作業中フォルダに持ち込み
ドロップファイルなしで 使うと バッチ本体がある場所のディレクトリを
バッチ本体がある場所に 作成する.
当然といえば 当然で "そういう仕様だ" と言われれば それまでなんですが
ショートカット使用でも
バッチ本体を置いた時 と同様の 動作をする方法って ありますか?
0467名無し~3.EXE
2008/01/28(月) 18:45:32ID:saC0IqhL>ドロップファイルなしでも 思惑通り 作業中フォルダ(バッチ本体があるので)
>フォルダ全部のリストを取れる
そんなはずないけど
>ショートカット"inFiles.LIK"を作成し 作業中フォルダに持ち込み
>ドロップファイルなしで 使うと バッチ本体がある場所のディレクトリを
>バッチ本体がある場所に 作成する.
そんなはずないけど
なので
>ショートカット使用でも
>バッチ本体を置いた時 と同様の 動作をする方法って ありますか?
意味ない
0468名無し~3.EXE
2008/01/28(月) 19:01:55ID:a60OcUKA>具体的に、どんな場面で便利になるの?
ん......ン 別段 便利には なりませんねw
でも 実行ファイルの ショートカットが 本体と違う挙動を するのって 気になりません?
エラーを悪用してるから 大きなことは 云えませんがw
0469名無し~3.EXE
2008/01/28(月) 21:33:41ID:saC0IqhLそんなはずないけど
0470名無し~3.EXE
2008/01/28(月) 21:49:04ID:F8A0PSQAスクリプトを起動するバッチファイルがあります。
スクリプトはjavascriptで作ってあり、標準入力を扱いたいので、インタプリタはcscriptを使っております。
こんな、奴でつ
---------- hoge.bat start ----------
@echo off
cscript %Windir%\hogehoge.js //Nologo %1 %2 %3 %4
---------- hoge.bat end -----------
で、ですね。
これに標準入力からデータ渡すとなぜかインタプリタがwscriptに変わってしまいます。
こんな感じ。
c:>c:\windows\hoge.bat <input.txt
(このあと、hogehoge.jsがwscript経由で起動する)
原因をご存知の方いらっしゃるでしょうか。
ちなみに、この現象はwindows98の時のみ起き、windowsXPでは起こりません。
0471名無し~3.EXE
2008/01/28(月) 21:56:33ID:qpO8RM3B0472名無し~3.EXE
2008/01/28(月) 22:00:27ID:F8A0PSQAなんか、色々違ってました。スマン
---------- hoge.bat start ----------
@echo off
cscript //Nologo %Windir%\hogehoge.js %1 %2 %3 %4
---------- hoge.bat end -----------
こうだ。
そして、wscriptが起動すんじゃなくて
パラメタが渡っていないようだ。
c:>c:\windows\hoge.bat /a /b <input.txt
'/a' '/b'がhogehoge.jsに届いていない。
バッチファイルの中でechoすると渡ってる風なんだけどなぁ。
0473名無し~3.EXE
2008/01/29(火) 01:07:24ID:HWw+z0EO0474名無し~3.EXE
2008/01/29(火) 16:44:24ID:HWw+z0EO0475名無し~3.EXE
2008/01/30(水) 16:21:48ID:KYI6wfbS0476名無し~3.EXE
2008/01/30(水) 17:57:54ID:Ho6Pm+4wipconfig /renew とかの話?
無線パラメータの設定をコマンドラインでできるアダプタなんてあるのか?
0477名無し~3.EXE
2008/01/30(水) 20:01:10ID:KYI6wfbS詳しくないんで何ともなんですけど、先月無線LANでPCを使用していた時ブレーカーが落ちて、ルーターの電源が切れて無線LANが使えなくなったんです。
それで色々試せど復帰しなくて、プロバイダーのサポセンに電話したんですけど長々と待たされて、繋がると私が色々試した事を2〜3回再度させられて、結局コマンドプロンプトで一度通信をリセットする?プログラムを指示してもらって復帰したんです。
でも先週また同じトラブルがあって、またサポセンに電話するのも億劫で・・・と言う感じです。
長文すみません。
0478名無し~3.EXE
2008/01/30(水) 20:15:41ID:yq8XtZP7コマンドプロンプトのrename(ren)で
aaa123.txt
bbb123.txt
ccc123.txt
の三つのファイルを
123を変えないまま
xxx123.txt
yyy123.txt
zzz123.txt
一度で変更するにはどう打てばいいでしょうか?
0479名無し~3.EXE
2008/01/30(水) 20:50:24ID:w7DIOj030481名無し~3.EXE
2008/01/31(木) 10:58:16ID:Zu1cJ4hGわかりました、すみません
0482名無し~3.EXE
2008/01/31(木) 19:06:40ID:CwN/BF0B遅レスすまそ。
command /c で出来た。アリガトン
command.comが関係しとるとは思わなんだ。
NT系列では必要の無い操作だから
wowの仕様が微妙に違うんだな。
勉強になったよ。
0483名無し~3.EXE
2008/02/01(金) 01:45:58ID:zNm7t6Hy0485名無し~3.EXE
2008/02/07(木) 01:18:24ID:JJWunJvnそれと同名のフォルダの組が並列に入っています。
これらのファイルを、その同名のフォルダに移動するには
どうしたらよいでしょうか?
aaa.txt bbb.txt ccc.txt ..... aaa.folder bbb.folder ccc.folder.....
がありaaa.txtをaaa.folderの中へ
bbb.txtをbbb.folderの中へという感じで全て移動したいんです。
あと関係ないんですけど
mklink /Dとmklink /Jは何が違うんですか?
0486名無し~3.EXE
2008/02/07(木) 09:48:44ID:i1Y+9IDF0488名無し~3.EXE
2008/02/16(土) 15:23:13ID:bHZJ+HStでっすが困ったことにバッチファイルの中に%1を記述して、そこにD&Dしたファイルへの
絶対パスを格納しようとしてもその中に全角スペースがあると正常に動作しないのです。例えば
C:\temp\aabbcc.txt
みたいなファイルをD&Dする分には問題ないのですが
C:\temp\aa bb cc.txt
みたいなファイルをD&DするとC:\temp\aaまでが第一引数
そのあとのbbとcc.txtはそれぞれ第二、第三引数として扱われてしまうのです。
コマンドプロンプトに直接記述したときは間に全角スペースがあっても全体で一つのパスとして
扱われますし、バッチファイル内の記述するときに引数を""で囲んでも解決しませんでした。
どうすればよろしいでしょうか?
0489名無し~3.EXE
2008/02/16(土) 17:23:01ID:gHdxG/Ym0490名無し~3.EXE
2008/02/16(土) 17:41:52ID:gHdxG/YmVBSFileのドロップハンドラをbatfileに指定してやればいいよ。
0491名無し~3.EXE
2008/02/16(土) 17:45:29ID:bHZJ+HSt自分もそう思いたいところなんですが・・・
@echo off
echo %1
echo %~1
echo "%1"
pause
試しに上記の内容の.batファイルを作ってそこに前述の
C:\temp\aa bb cc.txtをD&Dしてみたところ、表示結果が
C:\temp\aa
C:\temp\aa
"C:\temp\aa"
続行するには何かキーを押してください . . .
でした、友人にもお願いして試してみてもらったところ同じ状況みたいです@XP SP2
0492名無し~3.EXE
2008/02/16(土) 18:29:02ID:bHZJ+HSt入れ違いになってしまいましたが、ありがとうございます。
これは一種のバグ・・・でいいんでしょうか?
問題は自分がVBSのことが全くわからないことですね orz
0493名無し~3.EXE
2008/02/16(土) 19:00:54ID:gHdxG/YmVBSはかんけーねー
VBSFileのドロップハンドラを借用するだけ
あるいは、回避策
c:\tempをc:\temp folderにすれば?
0494名無し~3.EXE
2008/02/16(土) 19:58:43ID:gHdxG/Ymcmd.exeの引数分離の障害仕様だね
0495名無し~3.EXE
2008/02/16(土) 20:13:55ID:bHZJ+HStどうもありがとうございます。ドロップパンドラはググっても理解できません
でしたが、これで踏ん切りがついたので回避策を使うことにします。
仕様か、なんて全てを包み込むような包容力のある言葉なんd(ry
0496名無し~3.EXE
2008/02/28(木) 23:52:46ID:hFNRGAEXウラワザとかありませんか?
0497名無し~3.EXE
2008/02/29(金) 00:32:17ID:le6aVPk+0498名無し~3.EXE
2008/02/29(金) 00:41:18ID:fnZx8Tum具体的にどのセキュリティ強化が原因で使えなくなってるかわかりますか?
「指が滑った時」対策だったら泣ける。
0499名無し~3.EXE
2008/02/29(金) 01:41:43ID:MYE211050500名無し~3.EXE
2008/03/01(土) 21:32:02ID:2GYI1cgaネットワークの修復をするとつながるようになるので、
>>217を参考に以下の修復バッチファイルを作ったのですが、
これをファイル出力させずに行うことはできますか?
---IP_recovery.bat-----------------------
ping 192.168.11.1 -n 1 > C:\b.txt
for /f "SKIP=3" %%A in (C:\b.txt) do if %%A NEQ Destination (echo %%A) else (
shut
ping localhost -n 5
connect
ping localhost -n 15
ipconfig /release
ipconfig /renew
arp -d *
nbtstat -R
nbtstat -RR
ipconfig /flushdns
ipconfig /registerdns)
del C:\b.txt
--------------------------------------
0501名無し~3.EXE
2008/03/01(土) 21:32:41ID:2GYI1cgaPinging 192.168.11.1 with 32 bytes of data:
Destination host unreachable.
Ping statistics for 192.168.11.1:
Packets: Sent = 5, Received = 0, Lost = 5 (100% loss),
--------------------------------------
0502名無し~3.EXE
2008/03/01(土) 21:52:32ID:INNPJ5X60503名無し~3.EXE
2008/03/01(土) 23:48:41ID:kJ7OZr7A0504500
2008/03/02(日) 01:54:27ID:W3Xs2/Nf思ったように動かすことができました。
ありがとうございます。
情報を元にネットで調べて、上2行を以下に変えたら動作がすっきりしました。
ping 192.168.11.1 -n 1 | find "Destination host unreachable"
IF ERRORLEVEL 1 GOTO eine
IF ERRORLEVEL 0 GOTO Nutteloos
0505名無し~3.EXE
2008/03/03(月) 22:32:53ID:uMn3e7q3set n=1
set a%n%=5
とするとa1という変数に5を代入できますよね?
でもif文でa%n%と値を比較しようとすると上手くいきません
ifで比較する前に
set /a hikaku=a%n%
とやって
if %hikaku%==5 echo sex
これは通るのですが
何か馬鹿っぽいですが他によい方法はありませんか?
/iオプションを試してみてもうまくいきません…
0506名無し~3.EXE
2008/03/03(月) 23:03:40ID:criNZiK50507名無し~3.EXE
2008/03/04(火) 00:32:51ID:JYsrlTMe理屈はよくわからないですが大括弧小括弧みたいなイメージでいいんですか
とりあえずバッチでオセロ作るのを目標にがんばっています
0508名無し~3.EXE
2008/03/04(火) 00:36:48ID:Xq8J3uel0509名無し~3.EXE
2008/03/04(火) 00:39:21ID:VMDLSFIe> 大括弧小括弧みたいなイメージ
全然違う。
即時展開される変数は、バッチファイルを読み込んだ時点で置換されてるので
実行時は変数ではなく定数になっている。
0510名無し~3.EXE
2008/03/04(火) 00:57:01ID:JYsrlTMeたとえばA%n%という抽象的な変数に
具体的にn=1,2,3…
と繰り返し値を与えて
A1,A2,A3…という変数は作れるし
それぞれに値もセットできます。遅延設定なしで。
なのでバッチを読み込んだ時点で云々というのは腑に落ちないんですが。
0511名無し~3.EXE
2008/03/04(火) 01:03:31ID:/r2l60M6だから自己書き換え型のbatも作れる。
0512名無し~3.EXE
2008/03/04(火) 04:36:25ID:Xq8J3uelif A%n%==6 echo six
てできるか?
0513名無し~3.EXE
2008/03/04(火) 10:52:48ID:oHAbhod6http://upload.wikimedia.org/wikipedia/commons/7/76/P103-2000Yen-%282000%29_front.jpg
画像が表示されたら右クリック、Iを押す→Pを押す
0514名無し~3.EXE
2008/03/04(火) 17:21:53ID:JYzbQmWK0515名無し~3.EXE
2008/03/04(火) 17:44:24ID:r5xViyTY0517名無し~3.EXE
2008/03/05(水) 04:23:16ID:OmO7J7IAコピー機やオフセット印刷機はプロテクトがあって出来ないらしいけど。
0518名無し~3.EXE
2008/03/08(土) 13:02:22ID:t1Hf5BsjPAUSEで押したキーを変数にセットするような。
0519名無し~3.EXE
2008/03/08(土) 13:31:31ID:ghC3PRgD0520名無し~3.EXE
2008/03/08(土) 15:53:09ID:qQq+YK5uset にオプションあったのかあ。勉強になりました。
0521名無し~3.EXE
2008/03/08(土) 18:00:16ID:t1Hf5Bsjset /p オプションは当然ながら使い倒しているわけですが
毎回エンター押さないといけないじゃないですか?
PAUSEはエンター押さなくても先に進むから
PAUSEで(なくても良いが)押したキーを取得する方法があるのかなってことです
でもなさげですね
0522名無し~3.EXE
2008/03/08(土) 18:37:48ID:TBGhFK6F0524名無し~3.EXE
2008/03/12(水) 20:36:34ID:ea+zIKS9set wao=wa o
if %wao%==%wao% echo wao
って設定するとスペースが邪魔をしてエラーになりますが
この手のエラーを出さないための方針としては
何が一番良いんでしょうか。
スペースを""ではさむと回避できるのですが
根本的な解決になっていないような気がして…
0527名無し~3.EXE
2008/03/13(木) 00:17:06ID:0XIdaW4Cif "%wao%"=="%wao%" echo wao
0528名無し~3.EXE
2008/03/13(木) 00:24:53ID:eYgnqYL9ありがとうございます…
これでまた頑張れます
0529名無し~3.EXE
2008/03/13(木) 02:09:43ID:xekHwBEIset wao=wa o
if !wao!==!wao! echo wao
0530名無し~3.EXE
2008/03/14(金) 21:41:09ID:Fj5KIEt7ECHO HOGE | XSET.BAT で%XSET%にHOGEが入るような。
もしくはそういう補助ツールってあります?ぐぐっても見つからんかった。
結構よくやる処理なので、手軽に使えるようにコマンド化できればな、と。
0531名無し~3.EXE
2008/03/14(金) 22:12:27ID:k/rPIO780532名無し~3.EXE
2008/03/14(金) 23:00:50ID:Fj5KIEt7ありがとう。
試しにCMD.EXEからECHO HOGE | XSET.BATをやってみたところ
SET XSET=HOGEは実行されるけど、バッチから戻ってくるときに
%XSET%の内容が消去(初期化?)されちゃってるみたいで
ECHO %XSET%しても%XSET%と表示される。
単にSET=HOGEとだけ書いたバッチをCMD.EXE上から実行した場合は
戻ってきても保持されてるんだけど。
なんでだ??
よう分からん…。
0533名無し~3.EXE
2008/03/14(金) 23:15:53ID:k/rPIO780534名無し~3.EXE
2008/03/14(金) 23:24:24ID:k/rPIO780535名無し~3.EXE
2008/03/14(金) 23:42:36ID:Fj5KIEt7つまりバッチで>530を実現するのは無理ってことですか?
>534
530が出来ればバッチの中でそれやらなくても良いのにな
ってのがスタートだったので。
0536名無し~3.EXE
2008/03/15(土) 03:52:41ID:1v13GlODそれは子プロセスで実行される
0537名無し~3.EXE
2008/03/15(土) 19:03:43ID:/rgREz5R指定ディレクトリ以下から条件に合致したファイル名を選び出し、それを
環境変数にセットするという方法まではわかりました。
例)
for /f "delims=" %%A in ('dir /b "C:\temp\test AAC PID * DELAY *ms.aac"') do (
set aac_audio_source="C:\temp\%%A"
)
これを一歩進めて、ディレクトリから選び出したファイル名の中のさらに
一部分の文字列だけを選び出して環境変数にセットしたいのです。
具体的には上記の例のうち二番目のワイルドカード、msの直前にくる文字列です。
この部分はDGIndexという動画関係ソフトによって出力されたファイルのうち、音声のファイルが
映像に対してどれだけの遅延をしているかを示しているものなのですが
当然DGIndexの処理が完了するまでこの値はわかりません。
(それなりに時間がかかるのでバッチの最初の段階で処理させ、その後上記のディレクトリ検索を行う)
実際に出力されたファイルの当該箇所には三桁以下の半角英数が書かれています、加えて
その数字の前には"-"(マイナス半角)がついているケースとそうでないケースがあります。
例) -254 112
ただし半角二桁の数字は見たことがあるのですが、半角一桁や逆に半角四桁以上
が実際にファイルに書き加えられることがあるのかは未確認のためわかりません。
こうのような操作はバッチファイルで完結することは可能でしょうか?
0538名無し~3.EXE
2008/03/15(土) 19:13:01ID:/rgREz5Rそれによって出力されるのが上で例に挙げたファイル名の"test AAC PID * DELAY *ms.aac"です。
つまり"AAC PID * DELAY *ms.aac"の部分がDGIndexによって元のファイル名に追加される
部分であり、ここはワイルドカードで代替している箇所を除けば固定です。
0539名無し~3.EXE
2008/03/15(土) 20:29:29ID:1v13GlOD0540名無し~3.EXE
2008/03/17(月) 19:17:48ID:4TC48wem"delims="とは区切りなしで「test AAC PID * DELAY *ms.aac」全部を%Aに入れることを意味する。
バラバラで入れたければ区切り文字を設定してトークンで必要なものだけ取り出す。
for /? をちゃんと読むべし。
0541名無し~3.EXE
2008/03/20(木) 01:44:51ID:ZfuqeoxK>>539-540
目を通してみたのですが、delims=で扱えるのは単一の文字だけですよね。
文字列が扱えるのであればDELAY とms.aacを指定してtoken=2とかに
してやればよさそうですが、なにぶんファイル名が変動するのでそうもいかないようです。
じゃぁsetの方で制御しようと考えた場合、DELAY とms.aacの間の文字数が
固定であれば%PATH:~-10%のような後ろから文字数をカウントしていって
抜き出し、さらにもう一度その抜き出した文字列を%PATH:~0,4%のように頭から
カウントして抜きだせばいいのですが、前述のようにこの抜き出したい文字列は
場合によって多少文字数が変動します。
理想を言えば、「"DELAY "と"ms.aac"の間に挟まれた文字列」という条件で
抜き出せるのが一番いいのですけれども・・・
0543名無し~3.EXE
2008/03/20(木) 02:59:37ID:TH4V7lbY0544名無し~3.EXE
2008/03/20(木) 05:21:26ID:N1GwNiEt*(-を含む数字,桁数変動)を抜き出して環境変数にsetしたい。
0545名無し~3.EXE
2008/03/20(木) 05:26:18ID:N1GwNiEt0546名無し~3.EXE
2008/03/20(木) 08:46:33ID:YOGH1HJm0547名無し~3.EXE
2008/03/20(木) 09:28:52ID:sC923knp>537で"test AAC PID * DELAY *ms.aac"は既に
%aac_audio_source%に取得できてるわけだから
set aac_audio_source=%aac_audio_source:*DELAY =%
set aac_audio_source=%aac_audio_source:ms.aac=%
とかやって削ること考えた方が良いんじゃないかな。
これもtestがDELAY を含んでたらアウトだけど。
0548名無し~3.EXE
2008/03/20(木) 10:16:11ID:YOGH1HJm0549名無し~3.EXE
2008/03/20(木) 13:38:49ID:TH4V7lbY0550名無し~3.EXE
2008/03/20(木) 20:02:59ID:ZfuqeoxK>>547氏の方法は良さそうですね。testの部分は実際の運用では録画の
番組名になるのでWin上でファイル名に使える文字は何でも入る可能性が
ありますが、DELAYが番組名に使われることはまず無いので問題ないんでしょう。
自分も*に入るのが4文字以下だと仮定して
set aac_audio_source=%aac_audio_source:~-14%
としたあと"tokens=2 delims=m "という方法も考えましたが>>547の方が明らかにスマートでした
>>548-549
もうバッチで一千行以上書いてしまったので今更後には引けないというw
0551名無し~3.EXE
2008/03/20(木) 20:07:48ID:TH4V7lbY逆だな。バッチで一千行以上も書くようなら、やめたほうがいいな。
0552名無し~3.EXE
2008/03/20(木) 21:27:38ID:YOGH1HJm…さすがにそれはないか?
数百にはなりそうだが。
0553名無し~3.EXE
2008/03/21(金) 01:36:37ID:undob5I3書き続けてるくらいだからバッチでも数百行にできるんじゃねーの?w
0554名無し~3.EXE
2008/03/21(金) 01:38:20ID:AMlsUloI0555名無し~3.EXE
2008/03/21(金) 03:56:18ID:shXKIS+x0556名無し~3.EXE
2008/03/21(金) 14:08:15ID:1ACbc417って何千行にもなりそうな
0557名無し~3.EXE
2008/03/22(土) 01:00:18ID:gZSy0T3O0558名無し~3.EXE
2008/03/24(月) 02:50:55ID:P1cfgm/y例
bash # rm -f `cat /var/tmp/delete_files.txt` --> delete_filesに記載されているfileをまとめて削除。
いや、別にこれは例えでなんで特に意味がありませんが、
やりたいことは、二つ目の(``に囲まれた)cmdの戻り値を、一つ目のコマンドに引数として渡したいです。
0559名無し~3.EXE
2008/03/24(月) 02:52:27ID:8aWQMqjf0560名無し~3.EXE
2008/03/24(月) 03:02:58ID:PDxz0orZfor /?
過去ログに山ほど例が載ってる。
0561名無し~3.EXE
2008/03/24(月) 04:01:30ID:P1cfgm/yありがとうございます。一応希望のことはできました。
戻り値が一つでも、FORループ使わないといけないんですね。
話は変わりますが、cmd.exeで、Unixのシグナル `kill 〜`に相当するcmdは、
’taskkill’以外には無いんでしょうか?
ググってみたり、msnってみたりしたんですが、「Win32APIはシグナルを提供してない」
みたいな記述を見つけたんですが・・・。
それでも、サービスに登録されているbackgrundなサーバーアプリを
net stop 〜 で終了シグナルを送ってるんで、できそうなんですが・・。
0562名無し~3.EXE
2008/03/24(月) 07:10:08ID:L0lX/0q/情報小出しにするなよ。WMIでも使っとけ。
0563名無し~3.EXE
2008/03/24(月) 14:21:07ID:WUdOBBSC以下のどちらもやりましたがまったく何も起こりませんでした。
Homeでは利用出来ないコマンドなんでしょうか?
start ×××.exe
start "C:\Program Files\×××\×××.exe"
0564名無し~3.EXE
2008/03/24(月) 14:53:08ID:WUdOBBSCEXEファイルのあるフォルダ内にバッチファイルを置いてクリックすると起動します。
でもデスクトップに置いてクリックするとダメなようです。
一つだけでなく複数のEXEファイルを起動したいのですが、どのように書けば良いのでしょうか?
0566名無し~3.EXE
2008/03/24(月) 15:10:02ID:mqeigdTH前者は、カレントディレクトリかパスの通ったディレクトリに×××.exeが無いと動かない。
後者はタイトルと認識されてしまうので
start "" "C:\〜\×××.exe"
と書いた方が良さげ。
0567名無し~3.EXE
2008/03/24(月) 15:10:06ID:qluytLNu0568563
2008/03/24(月) 18:27:25ID:GUB5eIlQうまく起動しました。
本当にありがとうございました。
やっぱこっちで聞いたのは正解でした。m(_ _)m
0569名無し~3.EXE
2008/03/25(火) 00:39:16ID:XIhyPtz1それ、向こうの普通の住人に軽く失礼だよ。
0571名無し~3.EXE
2008/03/25(火) 11:42:47ID:ivCYVsqO0572名無し~3.EXE
2008/03/25(火) 11:44:47ID:GVezYnPGなんでもかんでもここに誘導しようとするのな
0574名無し~3.EXE
2008/03/25(火) 19:01:19ID:+d3VDJbpバッチ以外の話は一切誘導しないのに、バッチの話が始まると
必ず、パソコンの使い方はWin板のコマンドスレへ、と誘導する。
0576名無し~3.EXE
2008/03/28(金) 12:02:59ID:lhYUJs3e2000でも同じかな…
0577名無し~3.EXE
2008/03/28(金) 20:48:29ID:+6KAMnBDDesktop Heap Monitorを使用しようとしたのですが、インストールには成功しても
以下のようにドライバを読み込めなかったりなど行き詰ってしまいました…
どうすれば解決できるのかどうかよろしくお願いいたします…
ttp://sund1.sakura.ne.jp/uploader/source/up21168.jpg
ttp://sund1.sakura.ne.jp/uploader/source/up21169.jpg
ttp://sund1.sakura.ne.jp/uploader/source/up21170.jpg
0578名無し~3.EXE
2008/03/29(土) 01:08:36ID:cjLqnGDe0579名無し~3.EXE
2008/03/29(土) 02:13:39ID:DDcV0gzf”関連付け”されたファイルなら、それこそ「何でも」実行できる。
たとえば、txt ファイルはメモ帳や他のエディタに関連付けされてるから、
下記のコードも問題なく実行できる。
------------
call unko.txt
------------
さらに、↓でもOK。
------------
unko.txt
------------
0580名無し~3.EXE
2008/03/29(土) 02:32:04ID:cjLqnGDexxxで実行できるものはほぼcall xxxで実行できる
0581名無し~3.EXE
2008/03/29(土) 17:57:31ID:e7BCQMf+むしろ cmd /c と等価と考えればいいのかな。
start は cmd /k ですか。
0582名無し~3.EXE
2008/03/29(土) 18:04:25ID:cjLqnGDe所詮にてるところもあればちがうところもある
0583名無し~3.EXE
2008/03/29(土) 18:20:32ID:e7BCQMf+明らかに違うのは、 cmd /c だと当然のように cmd.exe がもう一つ
実行されることですね。これは環境変数に影響しますね。
ほかにも違いはあるのかな。
0584名無し~3.EXE
2008/03/29(土) 18:27:52ID:cjLqnGDecmd/c notepad.exe
だけみれば
call≒start
cmd/c≒start/w
になるし意味ないだろ?
0585名無し~3.EXE
2008/03/29(土) 18:51:15ID:e7BCQMf+確かに「等価」なんて書くのは乱暴でした。
hoge.cmd がある環境と hoge.exe がある環境があって、
これを呼び出すバッチを両方の環境で共通にしたいと
思っていたのですが、call dir とか何気なく実行して
みたら思いがけず結果がでてきて>>576を書きました。
幸いexeはコンソールアプリケーションだったのでcallで
バッチもexeも実行できそうなんですが、そうでなかったら
やっぱり切り分けする必要がありそうですね。
いろいろ知識が増えました。ありがとうございます。
0586名無し~3.EXE
2008/04/04(金) 16:11:15ID:c0lFiKIy(↓サンプル)
FOR %i IN (*.txt) DO @echo %i
で.txtをひらい出そうとすると
test.txt
testtest.txt
test.txttest ←
test.txttxt ←
test.txtAAAAAA ←
余分なものもひらってしまいます
*.txt*やってるわけじゃないのにコマンドプロンプトはどういう理屈で上のものをひらうでしょうか
.txtで終わってるテキストだけ正しく抽出するにはどうやったら
出来たら上のFORをベースに改良する方法でお願いします
現在FORで組んでしまってるので根本的に別方法はまずいので
0587名無し~3.EXE
2008/04/04(金) 16:31:21ID:O5RX4LBM0588名無し~3.EXE
2008/04/04(金) 18:42:54ID:HotDOmeE今気づいたけど dir も同じよくわからん仕様
dir *.txt → 586の全部
dir *.txtt → 該当無し
dir *.txttxt → test.txttxt
dir *.tx → 該当無し
拡張子が3文字の時に限り後に何が付いていても全部表示する謎仕様。
さらに、*.txt* だと名前順だが、 *.txt だとベースは名前順だがtxt以降に
文字があるファイルはエントリ順になる超謎仕様。
さすがMS。
0589名無し~3.EXE
2008/04/04(金) 18:49:16ID:O5RX4LBMdir /x してみ
0590名無し~3.EXE
2008/04/04(金) 19:14:07ID:c0lFiKIy出来ました
こういう仕様になってるのには何か深い理由がありそうですね。
こういう事情を知らずに各種ソフトの.iniファイルを別のものに一時交換するときに
.iniAAAAA とかを多用しているので困っていました
どうもありがとうございました
0591590
2008/04/04(金) 19:43:54ID:c0lFiKIy*.txtAAAとかあればそれも全部混ざってコピーされてしまう
なんで気がつかなかったんだろう。反省しろよ俺
無知は恐ろしいと実感反省した4月4日をMyコマンド記念日としよう
par1よりこれも全部アウト
「888 名前:名無し~3.EXE 投稿日:02/01/20(日) 13:05
>>884
@echo off
for %%i in (*.txt) do type %%i >> new.txt
これをバッチファイルとして保存してダブルクリックしろ。
全てのテキストファイルが連結されて、
new.txtというファイルが作られる。
889 名前:名無し~3.EXE 投稿日:02/01/20(日) 13:21
それだけなら copy *.txt new.txt でいいでしょ。」
たぶん中上級者の方々には既知の話だったんでしょうね
スレ汚しスマソ
0592名無し~3.EXE
2008/04/04(金) 20:15:21ID:7OrQUO4uつーか10年くらい前でもよかった。
0593名無し~3.EXE
2008/04/05(土) 07:25:56ID:16jOobyH0594名無し~3.EXE
2008/04/05(土) 19:16:07ID:oeBKfFDa--------------------------------------uniq.bat
echo off
set prev=
if not exist "%1" goto error
for /f "tokens=* delims=" %%L in ( %1 ) do call :sub %%L
goto exit
:sub
if not "%prev%"=="%*" set prev=%*&&echo %*
goto :EOF
:error
echo.
echo 表示したいファイル名を指定してください。
echo [例] uniq.bat file.txt
echo.
:exit
空白改行等には対応してないとのこと
これは画面上に表示するだけなのでファイルに出力するために
echo %* の後に>>new.txtとかつけてもエラーが出ます
newファイルに出力するためにはどうしたらいいでしょうか?
検索したサイトはなぜかサイトを開くたびにスクリプト警報が出まくるので
2chブラウザでもリンクさせないようにしましたのでご了解ください
www.fpcu.jp/dosvcmd/bbs/log/unixdoswindows/3−0062.html
0595名無し~3.EXE
2008/04/05(土) 19:19:45ID:oeBKfFDanewファイル出力だけが必要で、画面表示は必要ないということです
&&echo %*を&&(echo %*)>>new.txtとかに変えても全部エラーでした
0596名無し~3.EXE
2008/04/05(土) 20:21:46ID:opCsAdvJ0597名無し~3.EXE
2008/04/06(日) 13:45:44ID:+PcLNC77でしょ。
ところで、画面への出力とファイルへの出力を同時にやる方法は無いのかな?
内部で交互に出力しなきゃダメ?
0598名無し~3.EXE
2008/04/06(日) 16:21:31ID:nlrXvzZ0>でしょ。
はて、なんか違ってるのかな?
>ところで、画面への出力とファイルへの出力を同時にやる方法は無いのかな?
あるけど?
0599名無し~3.EXE
2008/04/06(日) 18:07:00ID:wqKcgo9M> はて、なんか違ってるのかな?
> あるけど?
無知蒙昧の煽り厨かよ。
役立つ情報を書けないんなら書くなヴォケ!
0602名無し~3.EXE
2008/04/06(日) 18:49:15ID:ejmUfes1これをデュアルコアで作動するように戻すには数値は何を入れれば良いのでしょうか?
0603名無し~3.EXE
2008/04/06(日) 18:52:10ID:ejmUfes1クアッドコアの数値もお願いします
0604名無し~3.EXE
2008/04/06(日) 18:55:56ID:nlrXvzZ0>>uniq.bat file.txt>new.txt
>>でしょ。
>はて、なんか違ってるのかな?
のほうは?
0605名無し~3.EXE
2008/04/06(日) 18:58:08ID:+PcLNC77単なる煽りなのか?
:error 以降の出力を得たいだけだったら別にfile.txtは要らんけどな。
そんな池沼レスする気だったの?
0606名無し~3.EXE
2008/04/06(日) 19:06:41ID:c2QC8Myi0607名無し~3.EXE
2008/04/06(日) 19:10:36ID:+PcLNC77やりたいことはmencoderの画面出力をそのままログファイルにも残したいってことなんだけど。
stdoutをそのままファイルにリダイレクトしてしまうとエンコード中の進行度が見れない。
0608名無し~3.EXE
2008/04/06(日) 19:12:59ID:nlrXvzZ00609名無し~3.EXE
2008/04/06(日) 19:25:04ID:c2QC8Myitee.exe T 字型二股ソケット でググれば、たぶんできると思う。
が、俺はやったこと無いが興味はあるので、成功したら、やりかたと結果を書いてくれ
0610名無し~3.EXE
2008/04/06(日) 19:35:33ID:+PcLNC77ありがとう。
あんまり使ってないけどcygwinは入れてたんだった。数種類のコマンドしか使ったこと無かったから
存在を知らんかったorz
tee.exe あったよw
0611名無し~3.EXE
2008/04/06(日) 19:51:04ID:+PcLNC77mencoder 色々オプション | tee -a log.txt
これで画面出力と同じものをファイルにゲットできた。
厳密にはちょっと違うけど、それは元々わかってた問題だからOK。
どこかの口だけさんと違って感謝!
0612名無し~3.EXE
2008/04/06(日) 19:58:49ID:nlrXvzZ00613名無し~3.EXE
2008/04/06(日) 20:22:49ID:+PcLNC770614名無し~3.EXE
2008/04/06(日) 22:12:32ID:MGkgFDSO0615名無し~3.EXE
2008/04/06(日) 22:17:42ID:MGkgFDSO失礼しました
0616名無し~3.EXE
2008/04/12(土) 14:20:05ID:psbvetMj0617名無し~3.EXE
2008/04/12(土) 21:34:37ID:8rjR8tpP解像度かアスペクト比で処理を分岐させたい場合
どのように書けばよいでしょうか?
0618名無し~3.EXE
2008/04/12(土) 21:55:12ID:frEZV/rR0619617
2008/04/12(土) 22:10:27ID:8rjR8tpPもう少し具体的な回答をお願いします。
例えば解像度が1280x720の場合
echo LanczosResize(428,320)>> %avsfile%
解像度が960x720の場合
echo LanczosResize(480,270)>> %avsfile%
と処理を分岐させたい時
どのように書けばよいでしょうか?
0620名無し~3.EXE
2008/04/12(土) 22:14:42ID:bsDmcclx0621名無し~3.EXE
2008/04/12(土) 22:16:01ID:6vn8GrILいやもしそういったツールがあるなら俺も是非欲しいが
0622名無し~3.EXE
2008/04/12(土) 22:40:15ID:8rjR8tpPクリップボードに解像度情報などを送るソフトはあります。
ttp://kurohane.net/seisanbutu.phtml
にある真空波動研SuperLite
です。
2行目に解像度などがクリップボードに送られるので
それを分岐処理に使いたいです。
0623名無し~3.EXE
2008/04/12(土) 22:47:17ID:bsDmcclxいやもしそういったツールがあるなら俺も是非欲しいが
0624名無し~3.EXE
2008/04/12(土) 22:58:29ID:L9AzdWZJcliputilなり何なりを経由してforででも
行解析すれば取得は可能じゃない?
真空波動研は使ってないからコマンドラインから
操作できるか知らないけど。
0625617
2008/04/12(土) 23:09:06ID:8rjR8tpP真空波動研はコマンドラインから使えるのですが
行解析はどのように行えばよいでしょうか?
クリップボードには
[cap20071129090938.avi]
1920x1080 24Bit Motion JPEG(MJPG) 29.97fps 53943f 124553.95kb/s
PCM 48.00kHz 16Bit 2ch 1536.00kb/s
[RIFF(AVI2.0)] 00:29:59.898 (1799.898sec) / 28,368,765,952Bytes
真空波動研SuperLite 080308 / DLL 080308
のようなデータが送られるので
1920/1080が1.7より大きいか小さいかで分岐処理を書きたいのですが
どのように書けばよいでしょうか?
0626名無し~3.EXE
2008/04/12(土) 23:53:40ID:ma+dusF0そこから必要行を抜き出して分岐判断させれ
0627617
2008/04/13(日) 00:16:33ID:pAruhQL3625のように2行目に
1920x1080 24Bit Motion JPEG(MJPG) 29.97fps 53943f 124553.95kb/s
と書かれたテキストファイルから1920/1080の計算結果を得るには
どのように書けばよいのでしょうか?
0628名無し~3.EXE
2008/04/13(日) 00:42:52ID:2Fn25r/4find /?
findstr /?
if /?
set /?
辺りかな?
0629617
2008/04/13(日) 01:30:00ID:pAruhQL3ttp://www.tsg.ne.jp/GANA/S/cliputil/
にあるクリップボードのテキストをDOSで扱うためのツールを使って
for /f "skip=1 tokens=1,2 delims=x " %%A in ('C:\Plugin\cliputil.exe -paste') do
で1920と1080を取り出せそうなのですが
ここから先がわかりません。
どのように書けばよいでしょうか?
0630名無し~3.EXE
2008/04/13(日) 10:21:35ID:q3/8LHKx0631617
2008/04/13(日) 18:25:52ID:pAruhQL3perlに頼ると負けた気分になるけど
今日中には終わらせたかったので。
0632名無し~3.EXE
2008/04/13(日) 19:43:28ID:QXIVF9vj0633名無し~3.EXE
2008/04/13(日) 20:40:16ID:U2MS+S2gつか、バッチでどうしてもやらざるを得ない理由がなければ、
Perlのほうが断然便利だよ。
バッチは、OSのVersionによって解釈の意味が変わったり、
コマンド直打ちとバッチ内で記述する書式が違っていたりと、
とにかくクセがありすぎる。
パズルを組み立てて楽しむ程度の心の余裕がないとムリ。
即効性と実用度で言えばPerlが断然勝利。
さいごに、参考にPerlで解決した方法を書いてもらえれば、
スレ的に有益になるだろう。
0634名無し~3.EXE
2008/04/13(日) 21:19:04ID:bRCjXHsW簡単に作れますよね、これを
アルファベットで連文字作りたいときはどうやったらいいでしょう
aaaaaa〜zzzzz
シロートがリファレンス読んで何とか2文字バージョンまでは作ったけど
FOR %i IN (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) DO @(FOR %j IN (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) DO @echo %i%j)
1)6文字バジョーンはどうやったらいいでしょうか?
2)それと実際に使うとは全出力ではなくbaaaaa〜czzzzzまで出力とかしたいので
フレキシブルな出力変更可能なやり方で
1)2)を満たすもの。でも2)が困難だったら1)だけでも
どなたかお願いします
0635631
2008/04/14(月) 01:48:28ID:OkNafE+vじゃぁ解決した方法だけをば
バッチ処理でfileリストと真空波動研の結果リストをファイルに保存
perlに処理を移して626さんのとおりの処理をさせて
エンコバッチファイルをperlに書き出させてそれをcall
以上です。
0636名無し~3.EXE
2008/04/22(火) 11:20:21ID:/OOwZtgRファイルをコピーしたいのですが、可能でしょうか?
エクスプローラからの操作であれば、\\10. 1. 2. 30\ のように入力してUSER/PASSWORDを
入力すれば、ドライブレターを使うことなくファイルがコピーできますが、この操作がしたいのです。
0637名無し~3.EXE
2008/04/22(火) 11:27:10ID:Zu/QpkUZnet use \\host\path PASSWORD /user:USERNAME
copy ほげほげ
net use \\host\path /delete
とか。
0638636
2008/04/22(火) 11:46:48ID:fvGqunE0即レスありがとうございます。
ドライブ名無しで試してエラーが出たので、net use はダメかと思っていたのですが、
レス通りだとできました。自分で試した構文が間違っていたようです。ありがとうございました!
0639名無し~3.EXE
2008/04/23(水) 14:50:16ID:P+H+JVhcまた、中断されている処理があるかどうか確認する事は出来ますか?
よろしくお願いします。
0640名無し~3.EXE
2008/04/23(水) 15:11:36ID:aJ9ihgZR0641名無し~3.EXE
2008/04/23(水) 23:38:12ID:wxDe1tZY0642名無し~3.EXE
2008/04/24(木) 01:46:00ID:PjPeKbCJ0643名無し~3.EXE
2008/04/24(木) 02:25:29ID:/KwaoZJn0644639
2008/04/24(木) 08:29:44ID:OFIsBZW/ありがとうございます。 教えて頂いた通りに「Y」を押すことで無事終了することが出来ました !
いあ…すみません 中断してたのはバッチじゃなかったです…
もう少し調べてくるっス
0645名無し~3.EXE
2008/04/24(木) 20:31:24ID:s1mKrdXj0646名無し~3.EXE
2008/04/26(土) 06:53:32ID:S2f4sNFX試しにこんな感じで事前の予備実験してみて上手くいったので
(わざと割り切れない数字でやってみた例)
@echo off
for /L %%k in (10485763,1048575,104857513) do (
set /a NN=%%k/1048576
echo=約!NN!MB
)
Pause
上と同じ set /a NN=%%k/1048576 を使って、コレをやってみたら
全然だめなんです。「32ビットなんたら」が出たり
エラーが出ないときは計算結果が間違ってたり
@echo off
for /F "tokens=1-3 delims= " %%i in ('fsutil volume diskfree c:') do (
set /a NN=%%k/1048576
echo=%%i%%j約!NN!MB
)
Pause
エラーメッセ−ジ"数値は 32 ビットで表記される数値です"
をGoogleで検索してもヒット無しで得られる情報ゼロ
0647名無し~3.EXE
2008/04/26(土) 09:16:13ID:+HXIEmBQ0649名無し~3.EXE
2008/04/26(土) 10:30:49ID:noTmo+SZ( ) のブロック内での変数の扱われ方ですね。
if 1==1 (
set xxx=hoge
echo %xxx%
)
のようなとき、%xxx%はブロックに入る前の値しか参照できないようですね。
で646をよくみたら… ほんとにそれ動いたのって感じですね…
0651名無し~3.EXE
2008/04/26(土) 11:05:58ID:noTmo+SZすんません、理解しました。。。
set hoge=aaa && echo %hoge%
みたいなのが思った通りに動いてくれなかったのもこれなんだなぁ
0652646
2008/04/26(土) 12:00:02ID:dIylg/Sfどうも。直し方が分からないし変な横槍入ってめんどくさいので割り算は諦めて
バイト値の下6桁を削って簡易表示でやることにしました
約!NN:~0,-7!MB
でわみなさんgood-by
0653名無し~3.EXE
2008/04/27(日) 01:37:19ID:xz87xW1tグループ化機能と誤認して構文エラーになってしまいます。
echo文全体を () や '' で括ったり、( と ) の前にそれぞれ^を加えてもダメでした。
何か手はありませんか?
0655名無し~3.EXE
2008/04/27(日) 10:00:16ID:0TiqPju+0657名無し~3.EXE
2008/04/27(日) 16:34:30ID:xz87xW1tありがとうございます、( ) がechoの文中で完結してる場合は必要ないけれども
複数のコマンドにまたがるようにして ( ) が使われてる場合 ^ が必要みたいですね。
ところでif文中のechoは表示できる文字数に制限があるみたいで(半角英数120文字程度?)
そのechoの内容をファイルにリダイレクトしようとしても途中までしか書き込めませんでした。
今回に限って言えば、if文からgotoで抜け出し、そっちにechoを書いて
リダイレクトする判断は結果としては正しかったようです ^ ^;
0658名無し~3.EXE
2008/04/27(日) 18:58:17ID:ec2ADBWt> ところでif文中のechoは表示できる文字数に制限があるみたいで(半角英数120文字程度?)
@echo off
if 1==1 (
echo aaa
echo bbb
echo (ccc^)
echo ddd
) else (
echo eee
)
if 1==1 (
echo fff
echo 12345678911234567892…中略300文字…1234567890
echo 12345678911234567892…中略300文字…1234567890> tmp.txt
)
全く問題なし。
0659名無し~3.EXE
2008/05/10(土) 00:41:56ID:jOW3pjRB---test.bat---
if "%1"=="" goto Error
set var=%1
echo %var%
perl aaa.pl %1
goto End
:Error
echo 引数を入れて下さい...
:End
echo 終了します...
---終わり---
の内容な.batを書いたんですが、これを > test.bat 01 02
として実行させると、perl aaa.pl には "01"のみ引数として渡されます。(ここまではわかります。)
で、実はこの aaa.pl に複数の引数(場合によっては10個以上)を渡したいです。(しかも実行するごとに引数の内容が変わります)
そこで、
> test.bat "01 02" として実行させると、’02""=="" の使い方が誤っています。’と怒られます。
> test.bat "01 aa bb" とすると、’aa の使い方が・・・’とやはり怒られて、実行できません。
これは、if "%1"=="" の部分で、%1が展開されて if ""01 02""=="" goto・・・ と、構文エラーになってしまうためかと思われます。
そこで、if %1=="" としてやると、一応ifの部分はパス出来ますが、perl aaa.pl "01 02"となってしまい、
aaa.pl側からは一つの引数として扱われます。(perl側からは、複数の引数として渡したい)
さらにこの場合だと、
> test.bat と引数なしで実行した場合は ’goto の使い方が誤っています。’ と言われてしまいます。
今度もやはり if %1=="" が、 if =="" goto・・・ と展開されてしまい、構文エラーになってしまいます。
0660659
2008/05/10(土) 00:42:27ID:jOW3pjRB> test.bat "01 02 AA BB CC ・・・" (引数の数は可変。10個以上の場合もあり)
と、コマンドラインから実行して、
perl aaa.pl 01 02 AA BB CC ・・・ (.batの引数からダブルクオートを省いたものをそのまま.plに渡す)
とゆうことがしたいです。
さらに > test.bat と、引数なしで実行されてしまった場合は、:Errorのブロックを実行して警告を出力させたいです。
もうひとつついでに言いますと、
goto Errorで飛んだ先の :Errorブロックのみを実行させたいんですが、
上のスクリプトだと、その下の:Endブロックも実行されてしまい、
引数を入れて下さい...
終了します...
と出力されてしまいます。
:Endの前に exit を書き足すと、コマンドプロンプト自体が終了してしまいます。これもどうにかしたいです。
0661名無し~3.EXE
2008/05/10(土) 00:51:01ID:2oG4P/Duバッチは、代替がない環境で仕方なく使うものだと俺は理解しているが
0662659,660
2008/05/10(土) 01:02:51ID:jOW3pjRBええ、実は目的の動作はPerlだけですでに出来上がってるんですが、ふとbatでやってみようと思って、
昨日一日かけて色々ググッてみたり、いくつかスクリプト書いたりしたんですが、
どうしても出来なくて、ヒジョーにクヤシイ!!って思った次第です。
で、こちらの達人方にご指導いただければと思いまして・・。
0663名無し~3.EXE
2008/05/10(土) 01:21:23ID:eXbatmiNgoto :eof
0665名無し~3.EXE
2008/05/16(金) 22:13:06ID:k4qTlZ8jrd /s
だと、フォルダごと消える。
複数あるのでバッチ処理したいが、何かよい方法は無いですか?
0666名無し~3.EXE
2008/05/16(金) 22:19:39ID:V84Krwcaでどですか
0667名無し~3.EXE
2008/05/17(土) 07:37:18ID:Tfmv5vbbmd フォルダ
まぁタイムスタンプが変わってしまうけどな
0668名無し~3.EXE
2008/05/17(土) 17:15:03ID:948oFaXdrd /s .
0669名無し~3.EXE
2008/05/17(土) 23:39:45ID:PBIKhabT普通にfor文でやると頭に0がつかないので複数のfor文を組み合わせて実行しています。
ただ桁数が増えるとforと変数が多くなってわかりにくくなってしまします。
もうすこしいい方法はないでしょうか?
0670名無し~3.EXE
2008/05/18(日) 00:15:50ID:9CUWfmLK0671名無し~3.EXE
2008/05/18(日) 00:29:22ID:Ox8jPhTXsetlocal enabledelayedexpansion
set args=
set temp=
for /L %%i in (0, 1, 12) do (
set temp=00000000%%i
set args=!args! !temp:~-4!
)
echo args=%args%
pause
0672名無し~3.EXE
2008/05/18(日) 00:45:56ID:Ox8jPhTX0673名無し~3.EXE
2008/05/18(日) 01:37:13ID:sec9T0KN0674名無し~3.EXE
2008/05/18(日) 01:43:47ID:FcpR8lz9ありがとうございます。できました。
setと環境変数の勉強がたりなかったようなので勉強しなおそうと思います。
0675名無し~3.EXE
2008/05/18(日) 10:34:31ID:TvxyqS1+作成した下のbatファイルをdos窓からコマンド入力して
正常動作は確認できたんですが
windows xp で ファイル右クリックから呼び出すように
(SendToに置いて呼び出す)するとif文が一切判断されず
そこで終了してしまいます。
実行時のDOSの種類が違うんでしょうか?
--
:start
コマンド処理 %1
shift
IF "%1"=="" GOTO :eof
goto start
--
0676名無し~3.EXE
2008/05/18(日) 10:55:34ID:paRoTs6Cどうでもいいけど、コマンドの大文字小文字は
統一したほうがいいよ
0678名無し~3.EXE
2008/05/18(日) 14:16:17ID:L+mLCnGS0680675
2008/05/18(日) 19:43:39ID:TvxyqS1+>>677 の方法で処理できました。
if を大文字にしていたのは 試行錯誤の残骸で
shift の位置は確かに適切ではないですね
ありがとうございました >> all
0681名無し~3.EXE
2008/05/18(日) 20:49:26ID:a9xwvrWigoto start
↓
set x=%1
IF not defined x GOTO :eof
goto start
0682名無し~3.EXE
2008/05/19(月) 08:20:58ID:nvSZDr4K%~1は二重引用符「"」を取ったもの。
%1に「"abc"」という文字列が入っていた場合、
if "%1"=="" goto :eof → if ""abc""=="" goto :eof
""=="" なので常に goto :eof を実行。
0683名無し~3.EXE
2008/05/19(月) 13:26:33ID:EjVEkl8fif ""abc""=="" goto :eof
を
if ""abc""=="" echo true
ってやってみな
たぶん
if ""a c""=="" goto :eof
でエラーになってるんだろ
バッチファイルの関連付けを
cmd /k "%1" %*
に変えて実行結果を確認しろ
0684名無し~3.EXE
2008/05/22(木) 22:06:39ID:Vl7E04+CバッチでIPアドレスの設定は可能でしょうか?
あとディスク使用量を出すコマンドはあるでしょうか?
よろしくです
0685名無し~3.EXE
2008/05/23(金) 07:17:56ID:PYuFRnphnetsh interface ip set address name="ローカル エリア接続" source=static addr=192.168.1.1 mask=255.255.255.0
netsh interface ip set address name="ローカル エリア接続" gateway=192.168.1.254 gwmetric=0
netsh interface ip set dns name="ローカル エリア接続" source=static addr=192.168.1.253 register=PRIMARY
0686名無し~3.EXE
2008/05/23(金) 10:07:11ID:ZLhGN8vH空きとドライブの全容量が出るからそこから逆算すれば。
0687名無し~3.EXE
2008/05/23(金) 19:00:56ID:HPZlYjUP0688名無し~3.EXE
2008/05/25(日) 14:35:32ID:o3W/fKZ/世代管理は例えば今日からで言えば20080525.mdb 〜 20080601.mdbまで一週間分保持するものとし6/2になれば5/25日のバックアップファイルは消され一番古いものが5/26日となります。
また同一日付でこのバッチが起動された場合は同じ日付のバックアップの保存先のmdbファイルが新しい方の日付で更新される仕組みを考えております。
これをどうしてもコマンドプロンプトのbatファイルにて作成したいのですが、ベテランの方ご教授していただけますか?
以前このような世代管理を行っていた方はいたのですが、現状その方に聞ける事情ではなくインターネットで調べてもうまいような検索結果がヒットしません。
どなたかご教授の程お願い致します。
0689名無し~3.EXE
2008/05/25(日) 14:59:19ID:QPVRGIlk日付をつけるとややこしくなりそうだし、どうせ消すのなら
backup_mon.bat
copy xxxx.mdb backup_mon.mdb
みたいなのを1週間分つくって、
タスクマネージャで起動かけるとかじゃだめ?
これだと古いのは勝手に消えるし。
0690689
2008/05/25(日) 15:03:40ID:QPVRGIlk○ タスクスケジューラ
orz
0691名無し~3.EXE
2008/05/25(日) 15:44:38ID:wEJGvu771,2332,311133,444,555,66666,1行目成功
1,2,1111,33333333333333333,2行目成功
22444222,1111,333,444,5,6,7,3行目成功
以下略
最後尾が何番目のトークンかは不定
最後尾の前に並ぶ文字列に規則性無し
上のTXTファイルから
1行目成功
2行目成功
3行目成功
以下略
と取り出すもの
○行成功というは仮に書いてるだけでこの文字列にも規則性は無し
検索したらniftyのフォーラムで同様の質問している人がいたが解答に出会えないまま
このバッチファイルは考え方としてどんなものがあるでしょうか?
アイデアだけでも歓迎
ヒントをくれたらバッチファイルはしこしこ組みまする
0692名無し~3.EXE
2008/05/25(日) 16:21:12ID:zbkosXn7各行の後ろの何文字かを取り出して、
,をスペースに変換して、
一番最後のワードを結果とするのはどうですかね。
0693名無し~3.EXE
2008/05/25(日) 18:25:46ID:k5O0hNsJfor %%I in (%%L) do set str=%%I
call echo %%str%%
)
0695名無し~3.EXE
2008/05/26(月) 12:03:03ID:2uqHEmAT0696名無し~3.EXE
2008/05/26(月) 13:45:51ID:SfOkgupvいろいろ手順を踏めばできないこともないが、
適当な外部ツールを起動させるだけのバッチを作ったほうが手間的に得
0697名無し~3.EXE
2008/05/26(月) 13:56:06ID:NdJLY4Hfつttp://www.vector.co.jp/soft/dl/win95/util/se310819.html
0699名無し~3.EXE
2008/05/27(火) 19:59:09ID:/w3vmy7X"s/'//g" | more
という引数を渡すと "s/'//g" のみが引数として渡り
結果がページ毎に止まって出力されます。しかし
"s/'/\"/g" | more
という引数を渡すと "s/'/\"/g" と "|" と "more" の3つが引数として渡ってしまいます。
後者2つをそれぞれパイプ、moreとして扱って貰うにはどうしたら良いのでしょうか?
0700名無し~3.EXE
2008/05/27(火) 20:15:01ID:/w3vmy7Xどれもやはり | more が引数として取られてしまいました。
>gawk "BEGIN{ for(i in ARGV) print ARGV[i]; }" "s/'/\"/g" | more
gawk
s/'/"/g
|
more
>perl -e "print join' ',@ARGV" "s/'/\"/g" | more
s/'/"/g | more
>ruby -e "p ARGV" "s/'/\"/g" | more
["s/'/\"/g", "|", "more"]
0701名無し~3.EXE
2008/05/27(火) 22:24:26ID:24yESl2I0702名無し~3.EXE
2008/05/27(火) 22:43:51ID:/w3vmy7X>perl -e "print join',',@ARGV" "s/'/^"/g" | more
s/'/^/g | more
| more までが全て1つの引数として扱われてしまいました。
0703名無し~3.EXE
2008/05/27(火) 22:48:28ID:hncFSdKH0704名無し~3.EXE
2008/05/28(水) 11:01:30ID:ae35Ovs8path %path%;c:\bin やdoskey等を打ち込んだ状態にしたいのですが、どうすればできますか?
0705名無し~3.EXE
2008/05/28(水) 13:49:11ID:PlLgl/L00706名無し~3.EXE
2008/05/28(水) 14:16:28ID:lcT2TWdz0707名無し~3.EXE
2008/05/28(水) 14:23:02ID:lcT2TWdz\x22
0709名無し~3.EXE
2008/05/28(水) 21:52:55ID:bRtNuYLOこういうことでしょうか?
>( perl -e "print join',',@ARGV" "s/'/^"/g" ) | more
More?
More?
More?
More?
>( perl -e "print join',',@ARGV" "s/'/\"/g" ) | more
More?
More?
More?
More?
More? が終わりません…。
>707
>perl -e "print @ARGV" "\x22"\042"" | more
\x22\042
すみません、よく分からないです…。
どなたか、ダブルクォートを引数として渡して
パイプ以降はちゃんとパイプとして認識されるような書き方を知らないでしょうか…。
0710名無し~3.EXE
2008/05/28(水) 22:20:25ID:wRMFx7lgこの用途に適したコマンドまたはツールはないでしょうか。
ファイルのハッシュを計算する際、フルにスキャンすると時間がかかるので、
個体認識さえできればよい、という前提で探していますが、
CUIツールは見つからず、ヘルプいただけると助かります。
0711名無し~3.EXE
2008/05/29(木) 01:18:04ID:JW1TfnJumore hoge
del hoge
goto :eof
:hoge
perl -e "print join',',@ARGV" "s/'/^"/g"
0712名無し~3.EXE
2008/05/29(木) 02:05:00ID:EjL5v9Jiテキストファイルをリモートサーバ上にコピーするバッチcollect.batと、
それをschtasksを使ってAdmin権限で実行するプレバッチについて。
配布して実行した結果、プレバッチ内のschtasks処理がされずに
失敗したものがほとんどで、成功したものは配布対象の1割程度
でした。バッチを作成した環境やテスト環境では成功していました。
プレバッチでは
set LOGFILE=D:\LOG\collect.log
echo [%TIME:~0,8% start] >> %LOGFILE%
schtasks /create /u:administrator /p:**** /tn collect
/tr D:\collect.bat /sc once /start %TIME:~0,5% >>%LOGFILE%
schtasks /run /tn collect >> %LOGFILE%
echo [%TIME:~0,8% end] >> %LOGFILE%
こんな感じにしていますが、なぜかschtasksコマンドの結果が
collect.logには何も残っていません。
プレバッチの実行はこのログからも確実にされていることが
分かっています。
Task Schedulerサービスは実行されていますが、サービス未起動
でもschtasksが返すメッセージが残るはずなので不思議です。
成功した環境と失敗した環境との違いも、今の所はわかりません。
環境はWindowsXP Pro SP2です。
schtasksが正常に実行されないのはなぜでしょうか?
0713名無し~3.EXE
2008/05/29(木) 11:03:38ID:kmN2kcgkdd でいいんじゃないかな
http://genluck.blog78.fc2.com/blog-entry-2.html
cygwinとかgnuwin32とかにもあると思う。
0714名無し~3.EXE
2008/05/29(木) 13:15:02ID:vznSjYc6schtasksのエラーのメッセージは標準エラー出力に出るんじゃね?
schtasks 〜 >> %LOGFILE% 2>&1
0715名無し~3.EXE
2008/05/29(木) 21:38:50ID:wqEdMWdFありがとうございます。おかげさまで、かなり高速で処理できました。
まさかWindows環境で、あの便利なDDが使えるとは・・・
/of にHDDのデバイス名を割り当てたら死んでしまうので、
バッチで作る際は、その点だけ要注意ですね。
0716名無し~3.EXE
2008/05/30(金) 20:58:00ID:fOxd9QQmう〜ん、バッチファイルの話では無いのでこちらで聞いていたのですが
…とりあえず、色々考えてみます。ありがとうございました。
0718名無し~3.EXE
2008/05/31(土) 01:06:58ID:zEJ6JTHT" 開始引用符は終了引用符までのすべての文字をただの文字として扱う
^ 引用符中でなければ次の文字が持っている機能をエスケープする
したがって s/'/^"/g となる。プログラムに "s/'/"/g" を渡したいのなら ^"s/'/^"/g^"
となる。
ただしプログラム側が " に対して特別な処理をしていてcmd.exeが渡した引数と異なる値
になるかもしれない。
VC++ 2003ではs/'/^"/gはプログラム側でGetCommandLine()するとs/'/"/gだったが、
argv[1]はs/'//gになった。
s/'/^"""/g|moreはGetCommandLine()ではs/'/"""/gとなりargv[1]はs/'/"/gになった。
コンパイラやプログラム側の処理でどうなるかはわからないが、たぶん正解は
s/'/^"""/g|more
0719名無し~3.EXE
2008/05/31(土) 12:55:23ID:LVZHNqTn0720名無し~3.EXE
2008/05/31(土) 17:28:29ID:W5p9QjDe#include <stdio.h>
#include <string.h>
#include <windows.h>
int main(int argc,char **argv)
{
char *p;
int i;
p = GetCommandLine();
if ( p == NULL ) {
exit(1);
}
printf("GetCommandLine=[%s]\n",p);
for ( i = 0 ; i < argc ; i++ ) {
printf("argv[%d]=[%s]\n",i,argv[i]);
}
return 0;
}
>argecho s/" "'/\^"/g arg2 |more
GetCommandLine=[argecho s/" "'/\"/g arg2 ]
argv[0]=[argecho]
argv[1]=[s/ '/"/g]
argv[2]=[arg2]
>argecho \^"s/" "'/\^"/g\^" arg2 |more
GetCommandLine=[argecho \"s/" "'/\"/g\" arg2 ]
argv[0]=[argecho]
argv[1]=["s/ '/"/g"]
argv[2]=[arg2]
(VC++ 2003の)ランタイムルーチンがコマンドラインをargv[]に分解するときに \ は " をエスケープする意味があるのでこうなった。
フリーのコンパイラ(Visual C++ 2005 Express Edition, Borland C++ Compiler 5.5など)をインストールして追試してみてくれ。
0721名無し~3.EXE
2008/05/31(土) 22:11:49ID:Uj21DRlSVisual C++ 2005 Express Edition と MinGW の gcc は同じ結果で
Borland c++ 5.5 だけ結果が違ってた。
Windows では、コマンドラインを解釈するのはランタイムライブラリ。
コナパイラが変われば解釈も変わる。
同じ Visual C++ でも将来のバージョンで変わるかもしれない。
コンパイラに依存するような書き方をするのは不安だよね。
危ない橋をわたるより、もっと確実な方法を取ったほうがいいよ。
0722名無し~3.EXE
2008/05/31(土) 22:20:32ID:1exRLpNU@echo off
echo %%*=[%*]
echo %%0=[%0]
echo %%1=[%1]
echo %%2=[%2]
Vistaのcmd.exe
C:\>arg s/" "'/\^"/g arg2 |more
%*=[s/" "'/\"/g arg2]
%0=[arg]
%1=[s/" "'/\"/g arg2]
%2=[]
C:\>arg \^"s/" "'/\^"/g\^" arg2 |more
%*=[\"s/" "'/\"/g\" arg2]
%0=[arg]
%1=[\"s/"]
%2=["'/\"/g\" arg2]
0723名無し~3.EXE
2008/05/31(土) 22:36:47ID:1exRLpNUとても素直です。
C:\>ARG s/" "'/\^"/g arg2 |more
%*=[*]
%0=[ARG]
%1=[s/"]
%2=["'/\^"/g]
%3=[arg2]
C:\>ARG \^"s/" "'/\^"/g\^" arg2 |more
%*=[*]
%0=[ARG]
%1=[\^"s/"]
%2=["'/\^"/g\^"]
%3=[arg2]
C:\>VER
MS-DOS Version 5.00.500
0724名無し~3.EXE
2008/06/01(日) 00:09:57ID:GAaQjz3F>718-723 の説明で完全に理解しました。
私の勘違いはどうやらいくつかあったようで
・\をcmdが処理していると思っていた
(cmd的にはただの文字であり、アプリ側で処理していた)
・引用符は空白の入った引数を括るためのものだと思っていた
(空白に限らず、"以外全ての文字をただの文字として扱わせるものだった)
・引用符は1つの引数全体を括るものだと思っていた
(引数の途中から途中を括ることができる)
・引用符中であろうと ^ はエスケープとして機能するハズだと思っていた
(引用符は空白を括るだけでなく ^ すらも文字列化してしまう)
>702 は""の中に ^ があった為、エスケープされず
次の"で引用符としての効果が終了、
/gの後が2つめの引用符の開始になってしまったのですね。
0725名無し~3.EXE
2008/06/01(日) 11:12:36ID:dypgy/G+>ついでにVistaのcommand.com (dosonly)
>とても素直です。
ナイーブなまんま。 日本に来て英語喋り続けるんだYO!
0726名無し~3.EXE
2008/06/01(日) 22:21:54ID:Sj5PJvNrすごい低俗な質問なんですが
ren(rename)がうまくいきませぬ
たとえばデスクトップにあるテストって名前のフォルダの名称を変更する場合
C:\Documents and Settings\****\デスクトップ>ren テスト テスト1
こういうやり方をしてうまくいかないのは
やっぱりがおかしいんでしょうか○....rz
0727名無し~3.EXE
2008/06/01(日) 22:29:59ID:Sj5PJvNrやっぱり頭がおかしいんだといいたかった・・・(´・ω・`)
0730名無し~3.EXE
2008/06/01(日) 23:41:55ID:Sj5PJvNr>>728
いえ開いてなんていないですが・・
これであってるんですか
同見ても無反応・・・
で、renってファイルがデスクトップに作成されちまいやす
0731名無し~3.EXE
2008/06/01(日) 23:58:36ID:3OfuHUqFまさか「デスクトップ>ren テスト テスト1」を打ってる?
デスクトップにcdして、それから「ren テスト テスト1」だぞ
0732名無し~3.EXE
2008/06/02(月) 00:04:46ID:D3dgcEjP ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
↑これは「プロンプト」と言って、入力しなくていい。
ren テスト テスト1
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
↑あなたが入力するのは、コレ!
つまり、
C:\Documents and Settings\****\デスクトップ>ren テスト テスト1
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ここだけ入力するとこ
0733名無し~3.EXE
2008/06/02(月) 00:06:34ID:Sj5PJvNrcd<C:\Documents and Settings\Akihiko\デスクトップ
ren テスト テスト1
こういうことでしたか無知ですいません
ググりまくったんですが
どこ見てもコマンドの説明とかあるんですが構成とかまったくなくて○..rz
ばかですいまそん
ほんとはファイルの名前だけ入れ替えとかやりたかったんですが
これだけのことにこんな手間取るなんて・・・
諦めて半年くらいROMってきます
ありがとうorz
0734733
2008/06/02(月) 00:08:33ID:Cid0TIPtouch!
レスがついてる!
親切にありがとう
一番大事なとこが抜けてたんですね
バッチファイルが作りたかったんですorz
ほんと素人すぎてすいまでした
0735名無し~3.EXE
2008/06/02(月) 00:14:22ID:Cid0TIPt頭がパンクしました○rz
0736名無し~3.EXE
2008/06/02(月) 00:30:58ID:1WXTzPCh0737名無し~3.EXE
2008/06/02(月) 13:54:20ID:3tN2UbSe0739名無し~3.EXE
2008/06/03(火) 18:08:38ID:7j2Uu5Ce0740名無し~3.EXE
2008/06/04(水) 15:09:56ID:E/mtZnYt具体的にいうと、XP homeでstartからのバッチでシングルスレッドのx264(とavisynth)を
よっつ同時起動して1つ終了するたびに1つ起動するようにしたいです
イメージとしては
start /min 000.bat
start /min 001.bat
start /min 002.bat
start /min 003.bat
:ここで条件判定
start /min 004.bat
:ここでも条件判定
start /min 005.bat
:ここでも...
start /min 006.bat
...
みたいな感じでやりたいです
/wait付けて4分割で良さそうですが、それぞれ計算量(計算時間?)は違うはずなので非効率的です
個々のバッチの最後に条件判定の種を仕込む方法もあると思いますが、もちろん同時に終了する可能性もあるので、それぞれのバッチでうまく同期?する必要が有ります
その辺も考慮した方法をお願いします。
0741名無し~3.EXE
2008/06/04(水) 15:16:49ID:MFKCUv/N特に問題無いよ。
0742名無し~3.EXE
2008/06/04(水) 15:26:33ID:E/mtZnYtオレに出来る範囲だとomp使ってexe作る位しか思いつかなかったから、試しに聞いてみた
どうぞよろしく〜
0743名無し~3.EXE
2008/06/04(水) 15:30:47ID:znlAZcWV0744名無し~3.EXE
2008/06/04(水) 15:41:12ID:E/mtZnYt正規表現がどうかしたの?とかおもったけどww
調べてみたら割と簡単に出来そうで助かりました
ありがとうございましたノシ
0745名無し~3.EXE
2008/06/04(水) 15:46:52ID:E/mtZnYtX ありがとうございましたノシ
O ありがとうございましたm(_ _)m
0746名無し~3.EXE
2008/06/04(水) 16:03:08ID:mGvFQhiJBATじゃなくて、AutoHotkeyやwshを使ったほうが確実だよ。起動したバッチの
PIDを監視して、それが消滅したら次のタスクへ、なんてのも数行でできる。
AutoHotkeyの例
Loop,100
{
cmd=やりたいこと%A_Index%.bat
runwait %cmd%,,Hide,pid
if errorlevel<>0
msgbox,エラーでたよ。PID=%pid% errorlevel=%errorlevel% つづけたいならOK押せ
}
「A_Index」は、ループ内で回った回数のこと。ループのたびに数値が1ずつ
上がっていくから、やりたいこと1.bat→やりたいこと2.bat→やりたいこと3.bat
・・・やりたいこと100.bat→END
と、順番に処理してくれる。
hideは、ウインドウを一切表示させない意味。pidは実行した際のpidが入る。
実行後、errorlevelが0以外なら、なんらかのエラーが出てるはずだから
そのときだけbeepを鳴らしたり、ダイアログを出すとかも可能。
エンコ用途なら、ダイアログを10秒以上放置したら自動で次の処理とかもできる。
このスレでも何度か出てるけど、いまどきBATをつかうのは
単独で起動させるプログラムにオプションを与えるための整理役と、
緊急時や、社内ポリシーの制限で「仕方なく」使うようなもの。
わかりにくくて制限だらけのBATをパズルのように使いこなすよりも、
もっと簡単に操作可能な方法を組み合わせたほうが効率的だよ。
0747名無し~3.EXE
2008/06/04(水) 17:57:35ID:B4CJCE84「質問された事をコマンドライン以外でやろうとしたらどうなるか?」スレになってしまう
ここは「それでも時代遅れのコマンドラインでなんとかやろうとしたらどうなるか?」と追求したり、それを質問をするスレだわ
コマンドラインが時代遅れである事は聞いてる人の側でもむしろ前提
746方式だと、これから誰かが何か聞いてくるたびに、質問されても無い別のスクリプトを教えるつもりなのか?
お勉強発表会は否定しないがその該当スレでやるか?ソフ板の総合質問系のスレでやるヨロシ
0748名無し~3.EXE
2008/06/04(水) 18:18:50ID:mGvFQhiJあーごめん。言葉足らずだった。
質問者が
>mp使ってexe作る位しか思いつかなかったから
ということだから、質問者のやりたいことだけを手っ取り早く
実現するなら、全部バッチでやるよりも簡単な方法があるよ、という話
0749名無し~3.EXE
2008/06/04(水) 21:49:55ID:7+YNsR+NファイルをD&Dしたときにそれをコピーしてある名前にする
っていう単純なバッチが作りたいんですが
全角スペースを含む日本語ファイル名だとうまく動きません
いい解決方法ないでしょうか
@echo off
cd /d "%~dp0"
copy "%~1" temp.txt
echo Finish.
pause
0751名無し~3.EXE
2008/06/05(木) 09:36:57ID:lU41qR+3ありがとうございました
いろいろぐぐったんですがいい方法も見つからなかったので
スペースは手作業で消すことにします
0752名無し~3.EXE
2008/06/05(木) 09:50:21ID:wBw/Rao8if defined x (copy "%*" temp.txt) else copy %1 temp.txt
0753名無し~3.EXE
2008/06/05(木) 10:27:50ID:lU41qR+3あーなるほど
分離してしまうならつなげろってことですか
気付きませんでしたorz
ありがとうございました
0754名無し~3.EXE
2008/06/05(木) 18:41:34ID:wBw/Rao8set /a n=0
for /f "delims=" %%I in (list.txt) do call :run %%I
goto :eof
:run
for /f "skip=3 delims=" %%J in ('dir /b executing.*') do (
sleep 5
goto :run
)
set /a n+=1
type nul >executing.%n%
start cmd /c " %1 & del executing.%n%"
goto :eof
0755名無し~3.EXE
2008/06/05(木) 22:03:49ID:pkF1J8Bp手作業はしんどいので、自動化しようと思いここにたどり着きました。
リネームはDOSプロンプトで出来ることが分かりました。
画像はWindows標準のPaintで縮小していましたが、DOSで同様の処理が出来ますでしょうか?
ただし、他のソフトをインストールできない環境です。標準のソフトとofficeしか入っていません。
0756名無し~3.EXE
2008/06/05(木) 23:52:02ID:BS+WRxseimagemagick使う。
インストールできないというのが実行ファイルを外部から持ってくるのも不可という場合は不可能と言うべきか?
厳密には不可能じゃないけど…
0757名無し~3.EXE
2008/06/05(木) 23:52:10ID:2RA2pd/j660 名無し~3.EXE sage 2008/05/29(木) 20:36:57 ID:0+d669Zv
net sendコマンドとmsgコマンドは何が違うのでしょうか?
Messenger serviceを有効にしてnet sendは機能
するのですが、msgコマンドは/server:で対象を指定しても
"エラー [5]:アクセスが拒否されました。"となってしまいます。
対象を*にするとローカルには表示されます。
0758755
2008/06/06(金) 05:15:08ID:eZBPSYq8imagemagickは外部から持ってくることになるため、避けたいです。
厳密には不可能でないという方法をアドバイス頂けないでしょうか?
0759名無し~3.EXE
2008/06/06(金) 12:52:46ID:TZUSZeSd0760名無し~3.EXE
2008/06/06(金) 18:20:54ID:b+c7iV0lバイト雇え
0761名無し~3.EXE
2008/06/07(土) 08:17:30ID:9kLf9UVX作りたいのですが、環境変数に空きディスク容量(ファイルのデータ)を
セットする方法が分かりません。
今考えている手順は、
dirの出力をファイルに落として、空き容量の文字列を抽出し、
それを環境変数にセットしてIF文で判定するというものです。
ちなみに、空き容量文字列の抽出は、
別のScript言語で作るしかないのでしょうか?
よろしくお願います。
0762名無し~3.EXE
2008/06/07(土) 08:17:58ID:9kLf9UVX作りたいのですが、環境変数に空きディスク容量(ファイルのデータ)を
セットする方法が分かりません。
今考えている手順は、
dirの出力をファイルに落として、空き容量の文字列を抽出し、
それを環境変数にセットしてIF文で判定するというものです。
ちなみに、空き容量文字列の抽出は、
別のScript言語で作るしかないのでしょうか?
よろしくお願いします。
0763名無し~3.EXE
2008/06/07(土) 13:40:11ID:Ep8IequYfor /f使え
詳しくはfor/?
>空き容量文字列の抽出は
findかfindstr使え
詳しくはfind/?かfindstr/?
0764762
2008/06/07(土) 14:41:58ID:9kLf9UVXレスありがとうございます。
制御変数へのセット(IF文での判定)はどうすれば良いのでしょうか?
ここが一番悩みなんですが・・・
0765名無し~3.EXE
2008/06/07(土) 14:50:39ID:6Y503noJ右クリックして、プロパティから互換性タブを開いて設定すると思います。
この作業をコマンドラインから行いたいのですが、どなたか方法をご存知ありませんか。
0766名無し~3.EXE
2008/06/07(土) 16:51:57ID:Ep8IequYfor /f使え
詳しくはfor/?
0767名無し~3.EXE
2008/06/07(土) 18:08:56ID:616T7vii部外者だが、知ってるなら具体的に**オプション使えばできる、とか書いてよ。
そんなオウム返しみたいなレス、スレが汚れるだけだからいらんよ
0768名無し~3.EXE
2008/06/07(土) 18:22:09ID:EguiI6zR0769762
2008/06/07(土) 21:23:09ID:9kLf9UVXレスありがとうございます。
for /fしか、ないということですね。
0770名無し~3.EXE
2008/06/07(土) 22:56:00ID:Ep8IequYhttp://pc11.2ch.net/test/read.cgi/win/1176558776/
で^Fしてfor /fを検索すればいくらでも見つかるよ
0771762
2008/06/08(日) 11:22:44ID:1NIPO+wfif文で、数字が小さいと正しく比較されますが、
数字が大きくなると正しく比較されません。
例えば 1000 leq 800は、偽ですが、
100000000000 leq 80000000000は、真になります。
どうすれば良いのでしょうか?
0772名無し~3.EXE
2008/06/08(日) 11:26:09ID:yG6GqC1Bset /?
0773762
2008/06/08(日) 14:02:03ID:1NIPO+wfレスありがとうございます。
なんとか出来ましたm(_ _)m
0774名無し~3.EXE
2008/06/08(日) 19:37:43ID:kTIPTXheset a=b=c
echo %a:==d%
==d%
の使い方が誤っています。
echo %a:^==d%
b=c
0775名無し~3.EXE
2008/06/08(日) 22:08:48ID:/UhiE58uちゃんとできてるじゃないの。何が問題なの?
0776名無し~3.EXE
2008/06/08(日) 23:25:48ID:xSF5tFgW774がaの値がb=cとか錯覚しやすい変な例を上げてるせいだが
set a==
で
echo %a:==置%
echo %a:^==置%
どのやりかたでもダメだったと言いたいのだと思う
答えはシラネw
0777名無し~3.EXE
2008/06/09(月) 01:25:45ID:ChRGygE7画像をUSBメモリで持ち帰ってフォトショップのマクロでやる
exeの持ち込みはダメなのにbatはいいってのがよくわからん管理状況だな
せめてOfficeとか入ってないの?VBA使えばそれこそなんでもできるよ
0779名無し~3.EXE
2008/06/09(月) 03:03:11ID:ChRGygE70780名無し~3.EXE
2008/06/13(金) 08:48:10ID:jt91+Q1n設定したのですが、うまく実行されません。
OSはVistaで、タスクスケジューラで状態を見ますと、
「起動中」になっていますが、
バッチ処理の中で、処理が始まると表示するように
記述しているechoメッセージが表示されません。
原因と対策を教えて下さい。
よろしくお願いします。
0781名無し~3.EXE
2008/06/13(金) 11:21:22ID:z034p4t+0782780
2008/06/13(金) 19:38:13ID:jt91+Q1nレスありがとうございます。
設定等は以下の通りです。よろしくお願いします。
1.タスクスケジューラの
[全般]→[ユーザがログオンしているかどうかにかかわらず実行する]
をチェック
[トリガ]→[タスクの開始]を[ログオン時]
→[特定のユーザ/グループ]をチェック
[操作]→[プログラムの開始]
バッチファイルのパス名、ファイル名指定
2.バッチファイルの内容は
@echo off
echo テスト
:
です。
あと、関係があるかどうか分かりませんが、
[コントロールパネル]の[タスクのスケジュール]の盾マークがついてます。
0783名無し~3.EXE
2008/06/13(金) 21:55:16ID:eSs07QtP0784名無し~3.EXE
2008/06/14(土) 14:16:39ID:2LQf8VmFWmic.exeというのが使えそうなのですが、使い方がいまいち分かりません。
わかるから、教えてください。
0785780
2008/06/14(土) 17:07:22ID:pWOjAg5Fレスありがとうございます。
「echo テスト」の次をpauseにしてますので、
気づかないうちに終わったということはありません。
0786名無し~3.EXE
2008/06/14(土) 19:12:47ID:gykffnVRそもそもログイン前に実行したコマンドラインの内容って
ログイン後に表示されるの?
出かけてるから試せないけど、ファイルつくるようなバッチだったら
どんな動きしてる?
0787786
2008/06/14(土) 19:15:56ID:HScNwkhv0788名無し~3.EXE
2008/06/14(土) 20:43:48ID:ZCY+j6Izうごいてないのか。
うごいてるのに目に見えないだけなのか。
問題の切り分けをしろ。
ECHO %DATE% %TIME% うんこヤロー>>UNKO.log
0789名無し~3.EXE
2008/06/14(土) 22:05:03ID:HQrnnlE5>「起動中」になっていますが、
の原因は
>「echo テスト」の次をpauseにしてますので、
0790780
2008/06/15(日) 16:48:01ID:HulyKHruECHO %DATE% %TIME% うんこヤロー >>…を
echo テストの前に入れてみましたが、
ファイルには何も書かれていません。
要求時に実行をチェックして、[操作]→[実行]すると、
タスクスケジューラの状態は実行中に変わりますが、
やはり、ファイルには何も書かれていません。
よろしくお願いします。
0792名無し~3.EXE
2008/06/15(日) 19:23:45ID:JgbyKUVJ出力先に、ちゃんと絶対パスとドライブ名は入れてる?
書けないと言っておきながら、tempディレクトリとかに
しっかり書き込まれて、気づかない事例はよくある
0793790
2008/06/16(月) 16:12:54ID:jtToNX4Pレスありがとうございます。
コマンドラインで実行しても、バッチファイルをダブルクリックしても
正しく実行されます(ファイルに日付等が出力され、次のechoコマンドの
メッセージが表示され、「続行するには何かキーを押してください・・・」
が表示されます(pause))。
echo、pauseコマンドが処理されているのにメッセージ表示等が
正しく行われていないのか、そもそも処理されていないのかを
切り分けるためにファイル出力コマンドを入れています。
ファイルに書き込まれていることに気付かないだけで、
ファイル出力コマンドの処理が正常に行われていて、
次の「echo テスト」「pause」コマンドが正しく処理されない
というのは考えにくいのではないでしょうか。
ちなみに、タスクスケジューラでのバッチファイルのパス指定は
次のようになっていますが、問題はないでしょうか
C:Users\アカウント名\バッチファイル名
0794名無し~3.EXE
2008/06/16(月) 16:41:46ID:qoH3tLVW0795名無し~3.EXE
2008/06/16(月) 21:06:26ID:TXDKiHGf0796名無し~3.EXE
2008/06/16(月) 21:15:01ID:dK6gjggpVistaで実行してるようですけど
リダイレクト先はどこにしてますか?
権限をどう設定してるか分からないけど
C:\Users以下はUACの影響を受けたはずなので
その位置に書かれるか保証できないかも
Dドライブあたりにディレクトリ切ってみて
そこで試してみたらどんな結果になります?
0797796
2008/06/16(月) 22:40:05ID:dK6gjggpせっかくなので試してみました。(Vista-Ultimate x64)
こんなバッチをタスクスケジューラに登録。
echo | cd >> D:\test\aa.txt
echo %date% %time% >> test.txt
echo %date% %time% >> C:\Users\AcctName\test.txt
echo %date% %time% >> D:\test\test.txt
Dドライブにtestディレクトリを切って再ログイン。
C:\Users\AcctName\ にはファイルは見あたらず
D:\test内のほうは
C:\Windows\system32
2008/06/16 22:24:59.01
の2行が生成。
別ディレクトリを絶対パス指定しないとダメですね。
(C:\Windows\system32にもファイルなし)
それからログイン時のタスクで実行したタスクは
ログイン後のデスクトップ上に表示されない模様。
Pauseは意味ないみたい。
0798名無し~3.EXE
2008/06/17(火) 02:07:19ID:zYoM/dJA0799790
2008/06/17(火) 13:58:01ID:zwWahSznレスありがとうございます。
ファイルが作成されない原因は分かりました。
ところで、本来やりたい「デスクトップへechoメッセージを
表示してpauseで待つ」という処理が、
ログイン時タスクで出来ないとすると、どうすれば良いのでしょうか?
ログイン直後に自動起動してデスクトップへメッセージを表示して
キー入力を待つという処理はコマンドラインではできないのでしょうか?
0800名無し~3.EXE
2008/06/17(火) 14:26:27ID:xgz+vgOu0801名無し~3.EXE
2008/06/17(火) 16:35:18ID:zYoM/dJA0802名無し~3.EXE
2008/06/17(火) 17:46:07ID:1+L0u5+wあるフォルダの画像ファイルのうち特定の物だけその日の日付+01.jpgのような二桁の連番にrenameしたいと思っています。1-9までは良いのですが10以降は三桁になってしまいどう対処すればいいのか判りません。よろしくお願いします。
@echo off
set /a N=1
:LOOP
for %%A in (abc*.jpg) do rename %%A %date:/=%0%N%.jpg > nul
if "%N%"=="99" (goto EXIT)
set /a N=N+1
goto LOOP
:EXIT
0803名無し~3.EXE
2008/06/18(水) 04:30:39ID:Xiqhpdl5原因を説明せーよ。
> ログイン時タスクで出来ないとすると、どうすれば良いのでしょうか?
スタートアップ入れればいいじゃん。
0804名無し~3.EXE
2008/06/18(水) 10:13:29ID:NUy0S7AOzshのように候補を次々に表示していくシェルがあれば教えて下さい。
こんな感じでできればいいなと思う例
環境変数path内に、「testcommand01.exe」、「testcommand02.exe」がある場合
testと打ち込み TABを1回打つと、testcommand01.exeが表示され、
もう一度TABを打つとtestcommand02.exeが表示されるような感じ。
0805804
2008/06/18(水) 10:19:18ID:NUy0S7AO0806790
2008/06/18(水) 19:57:52ID:kUYKhkJkレスありがとうございます。
表現が不適切でした。原因は理解できていません。
C:\Users\アカウント名の直下にバッチファイル等を置くと
ファイルに出力されないが、D:\等のドライブ名の直下に置くと
ファイルが出力される事が分かったという事です。
あと、スタートアップ時でも、現象は同じで、
echoメッセージはデスクトップには出力されません。
ログイン時に表示されないのは、OSの不具合なんでしょうか?
(ログイン後ダブルクリックで起動したら、表示されますので)
0808名無し~3.EXE
2008/06/18(水) 21:28:03ID:xcv3f3Vrまずは切り分けしてみては?
スタートアップでもダメらしいですが
遅延時間を設定してデスクトップ表示後に
実行してみたり、時間指定で動かすと
どんな挙動かを観てみてはどうでしょう
0809名無し~3.EXE
2008/06/18(水) 21:53:26ID:tm0Mfzl7俺『バッテリーかな?ライトは点く?』
女『昨日はちゃんと動いたんだけど…』
俺『バッテリーかどうか知りたいんだけどライトは点く?』
女『今日は○○まで行かなきゃならないから車を使えないと…』
俺『んでライトは点く?』
女『前に乗ってた車ではこんな事無かったのに…』
俺『ライトは点く?点かない?』
女『○時に約束だからまだ時間はあるけど…』
俺『死ね』
↓
女『ECHOが出力されないの…』
俺『パスかな?絶対パスは点けてる?』
女『スタートアップ後はちゃんと動いたんだけど…』
俺『パスかどうか知りたいんだけどパスは点けてる?』
女『今日はpingしたいからECHOを使えないと…』
俺『んでパスは点けてる?』
女『前に使ってたPCではこんな事無かったのに…』
俺『パスは点けてる?点けてない?』
女『pauseで待つ約束までまだ時間はあるけど…OSの不具合なのかな?』
俺『死ね』
0810名無し~3.EXE
2008/06/18(水) 22:46:26ID:kDIrIy9i別ファイルにリダイレクトするって、コマンドプロンプトで
出来ますか?
0811810
2008/06/18(水) 22:49:13ID:kDIrIy9i出来ればNT4にも対応してると嬉しいです
0812名無し~3.EXE
2008/06/19(木) 00:20:42ID:o/4A0OYu0813名無し~3.EXE
2008/06/19(木) 00:32:47ID:yke/11qL0816名無し~3.EXE
2008/06/19(木) 01:58:58ID:lAQJD2cScscript //Nologo //E:JScript "%~f0" %*
goto :EOF
@end
var FSO = new ActiveXObject("Scripting.FileSystemObject");
var ForAppending = 8;
var CreateIfNotExist = true;
var OverWriteIfAlreadyExist = true;
function write_file(filename, text, append_mode) {
var file_stream;
if(append_mode) file_stream = FSO.OpenTextFile(filename, ForAppending, CreateIfNotExist);
else file_stream = FSO.CreateTextFile(filename, OverWriteIfAlreadyExist);
file_stream.Write(text);
file_stream.Close();
}
function main(args) {
var append_mode = false;
var i = 0;
if(args[0]=="-a") {
append_mode = true;
i = 1;
}
var text = WScript.StdIn.ReadAll();
WScript.StdOut.Write(text);
for(; i<args.length; i++) {
var filename = args[i];
write_file(filename, text, append_mode);
}
}
var args = new Array();
for(var e=new Enumerator(WScript.Arguments); !e.atEnd(); e.moveNext()) args[args.length] = e.item();
main(args);
0817名無し~3.EXE
2008/06/19(木) 03:12:35ID:Qc85WdgrEVENTQUERY調べていたのですが・・・
イベントログ取りたいサーバーが、Windows NT Server および Windows 2000 Serverなので使えないみたいでした。。。
その他のフィルタリングもできたらありがたいですが、できなければその後加工します。
ヒントだけでもかまいませんので よろしくお願いいたします。
0818802
2008/06/19(木) 08:08:58ID:+4JJC5K4なぜかうまく反映されなかったのが書き直したらうまくいきました。
お騒がせしました。
0819名無し~3.EXE
2008/06/19(木) 10:44:22ID:IU2H2q9l前スレ833あたりでしてたよ。NT4に対応しているかは微妙。
あと、head.exeとtail.exeを持ってくれば楽にできる。
0821名無し~3.EXE
2008/06/20(金) 13:43:58ID:Tro/Oyn20822名無し~3.EXE
2008/06/20(金) 21:44:21ID:NAkOQzpa出来るはずなんだが…。
>816は標準出力と、引数に指定したファイルに書き出すコードだぞ?
標準出力をリダイレクトしたら表示されないかも知れんが…。
0823名無し~3.EXE
2008/06/21(土) 01:32:25ID:LKJW76Gj0824名無し~3.EXE
2008/06/21(土) 14:52:10ID:k6N4oqjE816って
dir *.* | tee.bat log.txt
みたいな使い方するもんだよね?
ちゃんと継続的に画面出力をログに出力してくれてるが…
進行度みたいな同じ行で更新されるタイプの出力を画面表示と同じように出力できるものってないかな。
これはtee.exeでも同じなんだけど、
1%
2%
3%
…
100%
みたいに更新される毎に改行されてしまうんだな。
0825名無し~3.EXE
2008/06/21(土) 16:03:44ID:zfiUXgMkhogeが終了するまで画面に出て来ないだろ?
0827824
2008/06/21(土) 18:23:16ID:k6N4oqjE今までtee.exeを使ってた場所を816ので書き換えてやってみたつもりだったんだが
ちゃんと書き換わってなかった。tee.exeの動作を816の奴の動作と勘違いしていた。
書き換えたらダメだった。使えん。
>>826
進行度を出力してるのは自分が作ったバッチじゃなくて別の実行ファイルなんだ。
だからタイトルに進行度を表示するってわけにはいかない。
コマンドライン型のアンチウィルスとか、アーカイバのログを取ろうとしてるんだ。
今は一旦冗長なログを出力してからいらないところを削除したりしてる。
0828名無し~3.EXE
2008/06/21(土) 19:53:34ID:zfiUXgMk0829名無し~3.EXE
2008/06/23(月) 13:15:13ID:0z5/ZZHnちょっと書き換えれば可能だが…やってみようかな。
0830名無し~3.EXE
2008/06/23(月) 14:05:37ID:0z5/ZZHn@if(0)==(0) echo off
cscript //Nologo //E:JScript "%~f0" %*
goto :EOF
@end
Array.prototype.shift = function() {
var r = this[0];
for(var i=1; i<this.length; i++)
this[i-1] = this[i];
this.length--;
return r;
}
var FSO = new ActiveXObject("Scripting.FileSystemObject");
var args = new Array();
for(var e = new Enumerator(WScript.Arguments); !e.atEnd(); e.moveNext())
args[args.length] = e.item();
var append_mode = false;
if(args[0]=="-a") {
append_mode = true;
args.shift();
}
var files = new Array();
while(args.length > 0)
files[files.length] = (append_mode ? FSO.OpenTextFile(args.shift(),8,true)
: FSO.CreateTextFile(args.shift(),true));
while(!WScript.StdIn.AtEndOfStream) {
var c = WScript.StdIn.Read(1);
WScript.StdOut.Write(c);
for(var i=0; i<files.length; i++) files[i].Write(c);
}
for(var i=0; i<files.length; i++)
files[i].Close();
0831名無し~3.EXE
2008/06/23(月) 14:31:26ID:rv6IXUVVwshの行間で何をやってるかわからないので、解説頼む
0832名無し~3.EXE
2008/06/23(月) 14:47:47ID:0z5/ZZHn0833名無し~3.EXE
2008/06/23(月) 20:53:55ID:EzLG1D0gCUI上で
複数のコマンドを同時に宣言する時って&っすよね?
at 21:00 /interactive /every:M,T,W,Th,F "C:\TV.exe"&sutdown -s -t 10
みたいな感じで
0834名無し~3.EXE
2008/06/23(月) 21:04:03ID:wbGXdlDD条件付き処理記号を使うと、同じプロンプトから複数のコマンドを実行して、コマンドの実行結果に基づいてコマンドを実行できます。
アンパサンド (&) は、単一のコマンド ライン上で複数のコマンドを区切ります。
かっこは、複数のコマンドをグループ化します。
セミコロン ( ; ) またはカンマ ( , ) は、コマンド パラメータを区切ります。
キャレット (^) を使うと、コマンド記号をテキストとして使用できます (その記号の特殊な意味は無視されます)。
二重のアンパサンド (&&) を使うと、この記号の後に続くコマンドは、記号の前のコマンドが成功した場合にだけ実行されます。
二重のパイプ (||) を使うと、この記号の後に続くコマンドは、記号の前のコマンドが失敗した場合にだけ実行されます。
0835名無し~3.EXE
2008/06/23(月) 21:33:01ID:EzLG1D0g0836名無し~3.EXE
2008/06/23(月) 21:36:29ID:FTwpBN7+素朴な疑問なんだけど、
Arrayクラスが元からもってるshiftメソッドをわざわざ定義しなおしたり、
せっかくEnumerator作ってるのにいったん配列に入れなおしたりしてるの
は何故?
0837名無し~3.EXE
2008/06/23(月) 21:39:41ID:EzLG1D0gshutdown -t 10
とかは使えるのはわかるんですが
例えば、cd \を10秒後に行うとかってできるんですかね?
0842名無し~3.EXE
2008/06/23(月) 23:53:35ID:iWmWdG24clock.aviを再生して終わるのを待つ
0843名無し~3.EXE
2008/06/24(火) 02:32:30ID:pW0iI2Ae> sleep /?
Usage: sleep time-to-sleep-in-seconds
sleep [-m] time-to-sleep-in-milliseconds
sleep [-c] commited-memory ratio (1%-100%)
rktools.exeでタダで配布されているmicrosoft公式サイト
0844名無し~3.EXE
2008/06/24(火) 03:10:57ID:SZVTbtHo0845名無し~3.EXE
2008/06/24(火) 03:38:54ID:pW0iI2Ae行間補完しろアホ
こんな糞スレにキチガイ粘着がいるとは思わなかった
今後このスレでは二度と教えないから
Sleep.exeはrktools.exeでタダで配布されている。microsoft公式サイトで
0846名無し~3.EXE
2008/06/24(火) 03:45:54ID:pW0iI2Ae必要なキーワードはすべて網羅されてるからそれでわからなかったら人辞めろ
わかってるのに揚げ足取りやってるなら、クズ人間
0847名無し~3.EXE
2008/06/24(火) 04:00:37ID:dCCpwkqH0848名無し~3.EXE
2008/06/24(火) 06:40:47ID:rR1+Tu8K前者は古いバージョン用。今のバージョンなら要らん。
後者は単に俺が Enumerator 苦手なだけw 是非書き直してくれ
0849名無し~3.EXE
2008/06/24(火) 12:32:47ID:unYk+kQr--- sleep.vbs ---
WScript.Sleep WScript.Arguments(0)*1000
---------------
C> cscript //nologo sleep.vbs 10&cd \
0850名無し~3.EXE
2008/06/24(火) 14:06:46ID:SZVTbtHoこのスレの住人ならsleep.exeなんてあえて指摘されるまでもないでしょう。
それより本当に大丈夫ですか?
頭。
0851名無し~3.EXE
2008/06/24(火) 23:39:56ID:p7Sm4rkZ0852名無し~3.EXE
2008/06/24(火) 23:47:18ID:DPjkb0o1start /b bbb.exe
start /b ccc.exe
という風に同時にコマンドを起動したあと、
すべてが終了するのを待って
eee.exe
を実行したいんですけど
どうすればいいですか?
unixだったらwaitで待てるんだけど
0855名無し~3.EXE
2008/06/25(水) 01:42:30ID:6hXZ5y2y/wait のことだったらこの場合使えないと思いますが・・
>>853
754を参考にしてみようとおもうんだけど
start /b コマンド の前後にexecutingファイルの作成と削除を入れたいんですが、
start /b type nul > executing.1 & command1 & del executing.1
という風に書いても、DOSの場合は、順番に実行されるわけではないんですか?
0856名無し~3.EXE
2008/06/25(水) 12:14:25ID:o+wlXfey0857名無し~3.EXE
2008/06/25(水) 15:11:52ID:Kh4xTa8p0858名無し~3.EXE
2008/06/25(水) 16:57:52ID:pX/hdHEzSet a = WshShell.Exec("notepad.exe a.txt")
Set b = WshShell.Exec("notepad.exe b.txt")
Set c = WshShell.Exec("notepad.exe c.txt")
Do While a.Status = 0 Or b.Status = 0 Or c.Status = 0
WScript.Sleep 1000
Loop
Set d = WshShell.Exec("msg * うんこ")
0859名無し~3.EXE
2008/06/25(水) 17:38:22ID:pX/hdHEzstart /B copy nul executing.1 ^& notepad ^& del executing.1
start /B copy nul executing.2 ^& notepad ^& del executing.2
start /B copy nul executing.3 ^& notepad ^& del executing.3
:1
cscript //nologo sleep.vbs 1
if exist executing.1 goto 1
if exist executing.2 goto 1
if exist executing.3 goto 1
msg * うんこ
・・・ sleep だけは、バッチじゃ無理。どっかから探してくるか、>>849 使う
0860名無し~3.EXE
2008/06/25(水) 19:56:59ID:/gx/69idそのディレクトリ内にそのbatかvbsファイルないとできないじゃん
0861名無し~3.EXE
2008/06/25(水) 19:58:40ID:3V52NKTC0862名無し~3.EXE
2008/06/25(水) 21:27:48ID:Kh4xTa8p0863名無し~3.EXE
2008/06/25(水) 22:34:08ID:pX/hdHEz頭は生きてるうちに使うもの。
echo WScript.Sleep WScript.Arguments(0)*1000>sleep.vbs
0865名無し~3.EXE
2008/06/25(水) 22:55:12ID:+Awhs3oR>>859
ほんとありがとうございます。
sleepはvbsでごまかすようにして、コマンド群は一括で定義できるように
以下のように改造してみました。
しかしcalcがないと怒られて終わってしまいます。何が悪いんでしょう??
@echo off
set com=( calc notepad )
for /f %%I in %com% do start /B copy nul executing.%%I ^& %%I ^& del executing.%%I
:1
set /a wtime=1*1000
echo WScript.Sleep %wtime% > tmp.vbs
cscript //NoLogo tmp.vbs
if exist executing.* goto 1
del tmp.vbs
echo END
0866名無し~3.EXE
2008/06/26(木) 00:05:55ID:bEvl4gH40867名無し~3.EXE
2008/06/26(木) 00:43:51ID:rFcP4Uj1a_1.txt
a_2.txt
a_3.txt
a_4.txt
を
b_1.txt
b_2.txt
b_3.txt
b_4.txt
にリネームしたいんだけど、
for でちょちょっとできないでしょうか
0868名無し~3.EXE
2008/06/26(木) 01:20:04ID:ak00y0pl0869名無し~3.EXE
2008/07/01(火) 01:23:41ID:06PZ+BPoコマンドの標準出力を変数にセットするにはどうすればいいですか?
ちなみに
aaaa
というプロセスがいるかを確認するために
tasklist | find "aaaaa"
の結果を変数にぶちこんで、その変数がNULLかどうかで判定しようと考えています。
0870名無し~3.EXE
2008/07/01(火) 02:03:30ID:TyLpt1NPfor %%I in (unko.txt) do if %%~zI == 0 echo ぬるぽ
0871名無し~3.EXE
2008/07/01(火) 10:10:45ID:GuapWfI5for /F "tokens=1 delims= " %%i in ('tasklist.exe') do if "%%i"=="aaaaa.exe" (echo=aaaaa.exeを見つけた)
0872名無し~3.EXE
2008/07/01(火) 13:03:00ID:NO9OOEqz0873名無し~3.EXE
2008/07/02(水) 00:45:21ID:3rsfgc1I0874名無し~3.EXE
2008/07/02(水) 00:52:12ID:yIB7/qFoそういう風にやるなら、
for /f %%i in ('tasklist /fi "imagename eq aaaaa.exe" /nh') do @echo %%iを見つけた
までやった方がいいかな
0875名無し~3.EXE
2008/07/02(水) 17:21:27ID:OMuiQSzS0876名無し~3.EXE
2008/07/02(水) 21:09:37ID:HUBiufFoLANケーブルが抜けている状態だと正常に変更できません。
もろもろの事情でLANケーブルが抜けている状態でも変更できるように
したいのですが、どうすればよいでしょうか?
0877名無し~3.EXE
2008/07/03(木) 06:48:55ID:S7B7seB5Windows で TCP/IP のメディア検出機能を無効にする方法
ttp://support.microsoft.com/kb/239924/ja
試してはいないんだが、多分このあたり
0878名無し~3.EXE
2008/07/03(木) 08:48:56ID:9ohMIDqz実は俺もXPhomeだから長らくTasklist.exeが無かったがネットでもらって来た
http://www.computerhope.com/download/winxp.htm
マイクロソフトのどこかでも落とせるらしいがそのURLは知らない
(こう書けば誰かが貼るかな)
あそこのダウンロードサイトは迷路のようになっていて、ビルゲイツ会長でさえブチ切れさせる場所だから
なるべく近寄らないようにしている
http://www.technobahn.com/cgi-bin/news/read2?f=200806270311&page=2
0879名無し~3.EXE
2008/07/03(木) 11:47:27ID:KH9cTY/t0880名無し~3.EXE
2008/07/03(木) 18:25:54ID:m7fH+sfP0881876
2008/07/03(木) 22:22:33ID:JNY6wKZ3試してみたところ変更できました。
できればレジストリをいじらずに変更できるようにしたいんですが、
可能でしょうか。(レジストリをいじることに抵抗があるもので・・・)
0884877
2008/07/04(金) 06:21:02ID:Egjxu5mxMSがオフィシャルなサイトでレジストリをいじれと言ってるわけなんで、
他の手はないものと思われ。
もしGUIとかがあったとしても、いずれにせよ内部的にはレジストリの
同じエントリが変更されるんだろうし。
複数台で変更するのが面倒とか自分以外の人間にやらせるのが不安とかなら、
.regファイルを作るのが正解な気が。
0885名無し~3.EXE
2008/07/05(土) 00:18:46ID:XqKTTUMO0886名無し~3.EXE
2008/07/05(土) 00:54:45ID:EUfbIAK/| ∠ / \ \ | / ̄ ̄/ ̄ ̄
| \ / / / | \ /
\_/ α/ / | /
0887名無し~3.EXE
2008/07/05(土) 01:05:41ID:C3DX+t/z0888名無し~3.EXE
2008/07/05(土) 02:06:07ID:KsoT05Ul| |
\_/
|
/  ̄  ̄ \
/ _ノ ヽ、_ \
/ o゚|⌒| |⌒|゚o \ / / / | _|_ ― // ̄7l l _|_
| | (__人__). | | _/| _/| / | | ― / \/ | ―――
\ | `|⌒|´ | / | | / | 丿 _/ / 丿
/ ̄ |川!| ̄|川i| ̄\
0889名無し~3.EXE
2008/07/05(土) 13:58:04ID:4ebRKxUnひたすらこのスレへ誘導する奴
0890名無し~3.EXE
2008/07/05(土) 15:49:45ID:puWbXOXI0891名無し~3.EXE
2008/07/07(月) 08:55:17ID:WBvdDtox0892名無し~3.EXE
2008/07/07(月) 12:57:56ID:qBTBgohG0893名無し~3.EXE
2008/07/08(火) 20:20:58ID:cRMgCh3I0894名無し~3.EXE
2008/07/10(木) 01:11:41ID:QngBkBT/例えば、バッチを作成していて
上のコマンドの命令を行えなかった場合、エラーを表示したいのですが
例で
di
if errorlevel 1 echo a
てやるとaって表示されるのですが
これをエラーの場合は、a,エラーでない場合は、dirを実行したい
と記述するにはどうしたらいいですか?
0895名無し~3.EXE
2008/07/10(木) 05:42:57ID:3Yg2z5Jp0896名無し~3.EXE
2008/07/10(木) 15:33:43ID:X3fvq8uU0898名無し~3.EXE
2008/07/10(木) 22:05:26ID:13vKihBB0899名無し~3.EXE
2008/07/11(金) 00:16:03ID:Vdv4UCdi0900名無し~3.EXE
2008/07/11(金) 01:26:51ID:RkW4GqgNDEL の前に IF EXIST するか、
DEL の後に IF EXIST するか、
樹海で祝ってやるか、
どれかだな。
0901名無し~3.EXE
2008/07/11(金) 14:10:09ID:lw6JvueFif errorlevel 1 echo error!
0902名無し~3.EXE
2008/07/11(金) 18:21:23ID:NOWkZyK+それが終わったら次も同じって感じにするのはどうやったらいいでしょうか。
0903902
2008/07/11(金) 18:33:00ID:NOWkZyK+cd カレントパス(batファイルのある場所)
program -i カレントパスと指定文字列を足したファイル名
って感じです。
0905名無し~3.EXE
2008/07/12(土) 04:18:41ID:yD5Tkok7program -i %CD%\指定文字列
0906名無し~3.EXE
2008/07/12(土) 23:58:16ID:swkv5Ihd0907名無し~3.EXE
2008/07/13(日) 02:39:59ID:rp/1UDNc0908名無し~3.EXE
2008/07/13(日) 03:04:48ID:ueztd13P0909名無し~3.EXE
2008/07/13(日) 03:06:30ID:3wulhBBH0910名無し~3.EXE
2008/07/13(日) 07:31:09ID:mmwPdUKGNative Win32 ports of some GNU utilities
ダウンロードは ttp://sourceforge.net/projects/unxutils
解説は ttp://unxutils.sourceforge.net/
0911名無し~3.EXE
2008/07/14(月) 13:57:41ID:oDYeyaeV0912名無し~3.EXE
2008/07/14(月) 19:43:37ID:n25RoDk2デフォルトのコマンドのみで可能ですか?
0913名無し~3.EXE
2008/07/14(月) 20:51:29ID:WHXSuf0b0914名無し~3.EXE
2008/07/15(火) 00:13:59ID:xfeqMLQj0915名無し~3.EXE
2008/07/15(火) 00:22:15ID:qYFgCPso0916名無し~3.EXE
2008/07/15(火) 00:45:59ID:IxC+30HX0917名無し~3.EXE
2008/07/15(火) 01:24:43ID:qYFgCPso0918名無し~3.EXE
2008/07/15(火) 07:20:21ID:4ChMkuSX起動してすぐ ? 打ってEnterで
一応一通りの使い方は解るはずだぞ
0919名無し~3.EXE
2008/07/15(火) 19:37:07ID:cCtJmu610920名無し~3.EXE
2008/07/15(火) 21:08:10ID:xfeqMLQj0921名無し~3.EXE
2008/07/16(水) 01:44:51ID:pxO0gOcj0922名無し~3.EXE
2008/07/16(水) 02:12:07ID:u0dIEc5Ssetlocal
set count=0
:loop
set flag=0
set /a count=count+1
set /a y=(count/3)*3
if /i %y% equ %count% set flag=1
echo %count% | find "3" >nul && set flag=1
if %count% geq 40 set flag=2
if /i %flag% equ 1 (
echo %count%^G
) else (
echo %count%
)
if /i %flag% equ 2 goto :end
sleep 1
goto :loop
:end
endlocal
0923名無し~3.EXE
2008/07/16(水) 03:24:31ID:+miDdALN元々使う理由は無いけどVistaでは本気で使えなくなったな
0925名無し~3.EXE
2008/07/16(水) 16:47:45ID:CHcrAZte0926名無し~3.EXE
2008/07/16(水) 19:16:34ID:50WktuQw0927名無し~3.EXE
2008/07/16(水) 22:09:57ID:Syxd9oxK>素直に「できません」と、なぜ言えない?決して恥ずかしい事では無いんだぞ。
話しは少しずれるが、edlinやeditが本気で使えなくなったこと(日本語が使えない)を恥ずかしがる感性をMSが持ち合わせていたならばと思ってしまう。
0928名無し~3.EXE
2008/07/16(水) 22:40:22ID:3tFT2zCk0929名無し~3.EXE
2008/07/16(水) 23:11:31ID:/0LA4MwYftpを簡単にするにはどんな書き方がありますか?
0930名無し~3.EXE
2008/07/16(水) 23:43:01ID:m92DBgjOFTPコマンドの自動化について言ってるのであれば、
FTP スクリプチ
で検索して下さい。
それ以外である場合、回答できるAAAクラスのエスパーがこのスレにはいないと思われるので、
どうしたいのか詳細を書いて下さい。
0931名無し~3.EXE
2008/07/17(木) 00:20:26ID:s7qUL6sJ0932名無し~3.EXE
2008/07/17(木) 00:49:55ID:avMHCYlH0933名無し~3.EXE
2008/07/18(金) 01:19:22ID:nPyhhALCどのくらい大変そうですか?
0934名無し~3.EXE
2008/07/18(金) 01:50:22ID:XFnK5WyOedlin %*
0936名無し~3.EXE
2008/07/23(水) 15:49:22ID:tOjBlxX+WEBサーバー(IIS)にパスワードがかかっていて。
wget --user=(ユーザ名) --password=(パスワード) http://.......
でとってきてくれる。
ここまではいいのですが、ユーザ名にスペースが使われていて
wget --user=A BC --password=pass とやると
区切り文字はスペースだからユーザ名は"A"と判別してしまう。
区切り文字をカンマ","にすれば
wget,--user=A BC,--password=pass,http://.....
とやってコマンドが通るような気がする。
http://(ユーザ名):(パスワード)@www.
ともかけるので
http://A BC:pass@www
とやってみたが、区切り文字がスペースなのでエラーになってします。
どなたかお知恵を拝借願えないでしょうか。
0937名無し~3.EXE
2008/07/23(水) 16:15:43ID:2vNzDCb60938名無し~3.EXE
2008/07/23(水) 16:43:57ID:CMWfKaqy"--user=A BC"
--user="A BC"
"を'にした、
A^ BC
A\ BC
A%20BC
だめだった
0939名無し~3.EXE
2008/07/23(水) 18:54:02ID:0Y5OUEnX0940名無し~3.EXE
2008/07/25(金) 00:00:00ID:cCrHmHxMうちは--user"A BC"でいけてるが。
0941名無し~3.EXE
2008/07/27(日) 20:57:41ID:dtq3XkleC:\>cd D:\hoge\hogeで通じるんじゃないでしょうか?
0942名無し~3.EXE
2008/07/27(日) 21:20:35ID:X4TwxPeeドライブ毎にカレントディレクトリの情報を持ってるから、とでも言えば良いのかな。
そもそも、カレントドライブ変更とカレントディレクトリ変更は本来別の操作。
カレントドライブの変更は
d:
と打てばDドライブへ。
c:
と打てばCドライブへ。
カレントディレクトリの変更は、ご存じの cd コマンド。
確か cd に /d オプションが付いたのは途中のバージョンからだったような。
/d は「ドライブを跨ぐ」というより「ドライブ変更とカレントディレクトリの変更を同時にやる」って感じ。
0943名無し~3.EXE
2008/07/27(日) 23:51:39ID:SRtDFAr7たとえば現在のカレントが(←って変な文章だが)C:\ だったとして、
CD A:\
COPY A.TXT B.TXT
とやっても、コピーされるのは C:\A.TXT であって、
決して A:\A.TXT では無い。
マイクロソフトはそのウンコさ加減に気づいたから、/D オプションを追加したんだろよ。
PUSHD ははじめからドライブまたぎなんだし。
0944名無し~3.EXE
2008/07/28(月) 00:34:35ID:GG94rwXwそのファイルをフォルダ000に作ってからフォルダ111を削除する、ということをwinRARを使って作ってみました。
cd /d "D:\000\111\" && "C:\Program Files\WinRAR\WinRAR.exe" a "..\111.zip" && cd ..\ && rmdir /s /q "111\"
この一文をコピペしてbatファイルを作って動かすと正常に動作するけれど、コマンドプロンプトを起動して貼り付けて
実行すると、winRARがエラーを出して処理が中断してフォルダ111下のファイルが消えてしまいます。
どうもwinRAR圧縮中に圧縮対象のファイルが削除されているようです。
&&で各コマンドを繋げているのに、なぜこうなるのですか。
batファイルとコマンドプロンプトの挙動の違いを教えてください。
0945名無し~3.EXE
2008/07/28(月) 01:23:44ID:+5Fl+5Tmなにかエラーメッセージのようなものは表示されないの?
0946944
2008/07/28(月) 01:31:07ID:GG94rwXwwinRAR診断メッセージ 追加するファイルがありません。
コマンドプロンプト プロセスはファイルにアクセスできません。別のプロセスが使用中です
この時点でフォルダ111下のファイルは無くなってます。zipも作成されていません。
0947名無し~3.EXE
2008/07/28(月) 01:37:19ID:+5Fl+5Tmcd /d "D:\000\111\" && start /w "C:\Program Files\WinRAR\WinRAR.exe" a "..\111.zip" && cd ..\ && rmdir /s /q "111\"
こっちは手元に WinRAR が無いから実際に試せない。自分で試してみてね。
(WinRAR と DEL がマルチタスクで同時に動いてるのかもしれない)
0948名無し~3.EXE
2008/07/28(月) 04:06:42ID:lvsdyRXCSTART "" /W "C:\Program Files\WinRAR\WinRAR.exe"の方が無難な感じ。
0949名無し~3.EXE
2008/07/28(月) 22:44:13ID:Flw63PURDosのコマンドラインで、Unix系より優れていると言える所ってありますか?
0950名無し~3.EXE
2008/07/28(月) 22:49:37ID:EkjbpQg30952名無し~3.EXE
2008/07/28(月) 23:54:52ID:gS9ca/Z8ホンモノのMS-DOS時代はDOSアプリが結構あったからまだ良いんだけど
コマンドプロンプトになってからは、利点あんまり無いな。
そもそも、GUIであるWindowsに取って付けたようなアプリケーションだし。
Unix系はコマンドないと手が届かない部分が結構あるからこそ、充実してるとも言えなくもない。
0953名無し~3.EXE
2008/07/29(火) 00:02:49ID:UhTEv5gPコマンドに慣れて無い人は窓を使えばいい。
無理してコマンド使うこたぁねぇよ。
0954名無し~3.EXE
2008/07/29(火) 00:04:07ID:UhTEv5gPWindowsの窓アプリで、Unix系より優れていると言える所ってありますか?
0955名無し~3.EXE
2008/07/29(火) 00:13:06ID:HMBDDzG4まだ、かもしれないけどね。
0956名無し~3.EXE
2008/07/29(火) 01:54:15ID:CkAA5d8W最大のメリットは現状のトップシェアOSであるWindowsで標準で使える
ってことだと思う。
0957名無し~3.EXE
2008/07/29(火) 12:51:26ID:luJdVJDk0958名無し~3.EXE
2008/07/29(火) 19:27:14ID:dTIjqH8+NTメインになってDOSは確かに使わない時代になったとおもうよ。けど
唯物論はこのOS飽和時代に全く意味は無いだろ?好きなのを適宜習得すればいいの
>>954はWINDOWS板にわざわざやってきてごくろうさんね。何を考えてるんだろうな。
0959名無し~3.EXE
2008/07/29(火) 19:31:59ID:3B2nZuAV0960名無し~3.EXE
2008/07/29(火) 19:48:24ID:s013n4jE0963名無し~3.EXE
2008/07/29(火) 23:21:52ID:luJdVJDk0964名無し~3.EXE
2008/07/31(木) 01:33:03ID:7MvSvBebtera termみたいのでつなげないの?
自分にtelnet以外で
0965名無し~3.EXE
2008/07/31(木) 01:36:22ID:oJH/78M30967名無し~3.EXE
2008/07/31(木) 06:48:12ID:tRdZkavPDosプロンプトで、ファイルの更新日時やアクセス時刻を変更出来るコマンドはありませんか?
(いわゆる、Unixでいうところのtouchや、utime関数に相当するものです。)
一応ぐぐってみたのですが、それを実現するフリーのファイラーソフトとかはあるようなんですが、
コマンドプロンプト(またはbatファイル)のみで(何も追加インストール等せずに)実現することは出来ないでしょうか?
copyやxcopyでは、元のファイルのタイムスタンプを保持してしまいます。
ちなみにOSはXP-sp2です。
0968名無し~3.EXE
2008/07/31(木) 10:56:39ID:CZC3VFh2自分はNircmd使ってる。(他にも実現できるToolあると思うけど)
標準cmdではコマンド無いんじゃないか?
0970名無し~3.EXE
2008/07/31(木) 12:37:44ID:Z+lCCPZ/ありがとうございます。ちょっと調べてみます。
>>969
うおおお、そんな手があったとは・・・・。
そういえば自分も、Unix環境でなら、0byteのファイル作成したり、
圧縮済みのlogファイルを切り詰める時に、cp /dev/null /path/to/file とかやったことがあります。
0971名無し~3.EXE
2008/07/31(木) 16:58:05ID:pqUdStB6COPY NUL C:\path\to\file
でいいんじゃない?
0972名無し~3.EXE
2008/07/31(木) 19:18:57ID:pmbkfmD50973名無し~3.EXE
2008/08/01(金) 02:02:32ID:cUFqKgt+1A01.bmp , 1A02.bmp , 1A03.bmp … にならないのはどうして? ren は文字数が増えるとダメなのかな?
C:\picture>dir /b
A01.bmp
A02.bmp
A03.bmp
C:\picture>ren A0?.bmp 1A0?.bmp
重複するファイル名が存在するか、またはファイルが
見つかりませんでした。
重複するファイル名が存在するか、またはファイルが
見つかりませんでした。
C:\picture>dir /b
1A0.bmp
A02.bmp
A03.bmp
0974名無し~3.EXE
2008/08/01(金) 05:25:26ID:AzeG6fL30975名無し~3.EXE
2008/08/01(金) 07:24:39ID:KkABB+VGfor %i in (A0?.bmp) do ren %i 1%i
0977名無し~3.EXE
2008/08/02(土) 16:32:02ID:lHCG365Nでも一行に大量に記述すると動かなくなってしまいました
これを回避するためにはどうすればいいんでしょうか
複数行を一行として動かす方法などありましたら教えてください
【成功】
COPY /B "0001"+"0002"+"0003"+"0004"+"0005"+"0006" 〜〜 +"0050" "temp.zip"
【失敗】
COPY /B "0001"+"0002"+"0003"+"0004"+"0005"+"0006" 〜〜 +"9999" "temp.zip"
0978名無し~3.EXE
2008/08/02(土) 16:43:39ID:jABhh63UCOPY /B "temp.zip"+"0002" "temp.zip"
〜〜
COPY /B "temp.zip"+"9999" "temp.zip"
0980名無し~3.EXE
2008/08/02(土) 17:08:46ID:elSen6IZ0981名無し~3.EXE
2008/08/02(土) 20:59:50ID:lHCG365N0982名無し~3.EXE
2008/08/02(土) 23:16:35ID:2oS7zYXlcopy /b * ..\all.zip
0983名無し~3.EXE
2008/08/03(日) 02:46:10ID:87Ih2WMQ0984名無し~3.EXE
2008/08/03(日) 02:50:21ID:87Ih2WMQ0985名無し~3.EXE
2008/08/03(日) 03:05:42ID:87Ih2WMQ0986名無し~3.EXE
2008/08/03(日) 12:00:57ID:87Ih2WMQ0987名無し~3.EXE
2008/08/03(日) 12:23:56ID:87Ih2WMQ0988名無し~3.EXE
2008/08/03(日) 12:29:16ID:87Ih2WMQ0989名無し~3.EXE
2008/08/03(日) 12:30:22ID:87Ih2WMQ0990名無し~3.EXE
2008/08/03(日) 12:34:54ID:87Ih2WMQ0991名無し~3.EXE
2008/08/03(日) 12:41:59ID:87Ih2WMQ0992名無し~3.EXE
2008/08/03(日) 12:43:04ID:uyRUdrj/0993名無し~3.EXE
2008/08/03(日) 12:48:22ID:87Ih2WMQ0994名無し~3.EXE
2008/08/03(日) 12:50:53ID:87Ih2WMQ0995名無し~3.EXE
2008/08/03(日) 12:52:45ID:87Ih2WMQ0996名無し~3.EXE
2008/08/03(日) 13:06:12ID:87Ih2WMQやめます。
0997名無し~3.EXE
2008/08/03(日) 13:25:54ID:LQkUy7Y50998名無し~3.EXE
2008/08/03(日) 13:38:42ID:Ni7TLdDUお前が勃てろよ
0999名無し~3.EXE
2008/08/03(日) 13:40:29ID:LQkUy7Y51000名無し~3.EXE
2008/08/03(日) 13:40:50ID:LQkUy7Y5初心者〜管理者まで必読!コマンドライン(DOS Pt.7)
http://pc11.2ch.net/test/read.cgi/win/1217738171/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。