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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。

※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %8 【.bat】
http://toro.2ch.net/test/read.cgi/tech/1315844420/

【.cmd】 バッチファイルスクリプト %7 【.bat】
http://hibari.2ch.net/test/read.cgi/tech/1298873550/
【.cmd】 バッチファイルスクリプト %6 【.bat】
http://hibari.2ch.net/test/read.cgi/tech/1277465356/
【.cmd】 バッチファイルスクリプト %5 【.bat】
http://pc12.2ch.net/test/read.cgi/tech/1242268171/
【.cmd】 バッチファイルスクリプト %4 【.bat】
http://pc12.2ch.net/test/read.cgi/tech/1229955189/
【.cmd】 バッチファイルスクリプト %3 【.bat】
http://pc11.2ch.net/test/read.cgi/tech/1217860043/
【.cmd】 バッチファイルスクリプト %2 【.bat】
http://pc12.2ch.net/test/read.cgi/tech/1197881068/
【.cmd】 バッチファイルスクリプト %1 【.bat】
http://pc11.2ch.net/test/read.cgi/tech/1178281991/
2デフォルトの名無しさん:2012/04/21(土) 22:42:13.45
>>1
3デフォルトの名無しさん:2012/04/21(土) 22:45:04.45
>すれ立て間違えたw
ほらみろ
4デフォルトの名無しさん:2012/04/21(土) 22:46:15.83
バッチファイル処理を強化する
ライブラリを作ろう。
5デフォルトの名無しさん:2012/04/21(土) 23:35:46.52
これ以上駄作ふやすなよ
6デフォルトの名無しさん:2012/04/22(日) 12:01:47.42
@echo >>1
7デフォルトの名無しさん:2012/04/22(日) 13:22:07.65
>>6
初心者乙

@echo ^>^>1乙
8デフォルトの名無しさん:2012/04/22(日) 13:52:39.88
>dir
2012/04/22 12:01:47 21 1乙

9デフォルトの名無しさん:2012/04/26(木) 20:25:04.13
for /d %%i in (c:\*) do if XXX (exec1 "%%~i") else (exec2 "%%~2")
でXXXの条件が%%iがsで終わっていたらというのにしたいんですがどうすればいいですか?

c:\windows, c:\usersなどはexec1
それ以外ならexec2に分岐したいのです
10デフォルトの名無しさん:2012/04/26(木) 22:01:31.72
一度何かの変数に入れるしかないな
11デフォルトの名無しさん:2012/04/26(木) 22:22:55.38
findstrをかませるんだな
12デフォルトの名無しさん:2012/04/26(木) 23:30:31.05
for /d %%i in (c:\*) do (
set s="%%~i"
call :sub "%%~i"
)
exit
:sub
if "%s:~-2%=="s" (exec1 "%~1") else (exec2 "%~1")
exit /b
13デフォルトの名無しさん:2012/04/27(金) 13:48:36.22
for /d %%i in (c:\*) do (echo %%i)|findstr /e "s" && (exec1 "%%~i") || (exec2 "%%~2")
14デフォルトの名無しさん:2012/04/27(金) 22:03:54.88
俺様の力作バッチを皆に恵んであげよう

pushd X:\エロ画像 || goto :eof

rem カレントディレクトリのファイルをMD5ハッシュ値にリネーム 要md5sum
for %%i in (*) do for /f "usebackq delims= " %%j in (`md5sum "%%~i"`) do ren "%%~i" "@%%j%%~xi"

rem 16個のサブフォルダに振り分け
for %%i in (0 1 2 3 4 5 6 7 8 9 A B C D E F) do (mkdir @%%i&move @%%i*.* @%%i\)

mkdir 重複&move *.* 重複\

rem 画像をランダムに開く 要ruby
ruby -x "%~f0"

popd
goto :eof

#!ruby
`dir /s /b /a:-d`.split("\n").shuffle.each{|i| `start "" "#{i}"`; gets}
15デフォルトの名無しさん:2012/04/28(土) 02:33:34.78
おー凄い、馬力作バッチ
16デフォルトの名無しさん:2012/04/29(日) 06:35:51.06
ばか 作 ぱっち
17デフォルトの名無しさん:2012/04/29(日) 11:05:59.71
@がキモい
18デフォルトの名無しさん:2012/04/30(月) 23:11:04.33
コマンドプロンプトでバッチの引数に「^^"&time /t」を指定したとして、
これを変数に格納する事ってできますか?

C:\>a.bat ^^"&time /t

『a.bat』
================================
@echo on
set AAA=%1
set AAA=%~1
set "AAA=%1"
set "AAA=%~1"
================================

結果
================================
C:\>set AAA=" & time /t
23:08
C:\>set AAA=" & time /t
23:08
C:\>set "AAA=^" & time /t"
23:08
C:\>set "AAA=^" & time /t"
23:08
================================
19デフォルトの名無しさん:2012/05/01(火) 13:51:05.53
パス
20デフォルトの名無しさん:2012/05/03(木) 15:46:04.57
for /r %i (*) do @echo.%i
とやると途中からecho %i.%iとやったのと同じになるんですが
誰か理由わかりますか?
21デフォルトの名無しさん:2012/05/03(木) 15:50:14.86
echo %i.%i
じゃなくて
echo %i.[表示がおかしくなる直前のファイル名]
みたいな感じになってました
22デフォルトの名無しさん:2012/05/03(木) 16:30:17.03
コンソールのゴミじゃなくて?
ファイルにリダイレクトしても?
23デフォルトの名無しさん:2012/05/03(木) 17:14:44.71
ファイルに書いても一緒です。
十数行までは普通に出るんですが、途中からおかしくなる。
24デフォルトの名無しさん:2012/05/03(木) 17:25:11.77
バッファのゴミだろね
%~fi
はどう?
25デフォルトの名無しさん:2012/05/03(木) 17:54:55.42
同様です。

わからないのは
echo %i では問題ないのに
echo.%i 他スペース以外だと二重になってしまうことです。

この辺の理屈が知りたい。
26デフォルトの名無しさん:2012/05/03(木) 18:49:34.22
必要ないのに.なんかつけるから反感買って嫌がらせじゃないか
27デフォルトの名無しさん:2012/05/03(木) 18:52:31.26
おれっちじゃ再現しないな
osのよるんじゃね?
28デフォルトの名無しさん:2012/05/03(木) 19:07:47.32
>>26
%iが空白だったときに echo は ONです っての見たくないから
ピリオド打つの癖になってるもんで。
29デフォルトの名無しさん:2012/05/03(木) 19:18:08.15
for %i in (*) do @echo\a
とかでもおかしい表示になってたのにデバッガ開いたら正常になった
原因はfor臭い
30デフォルトの名無しさん:2012/05/03(木) 19:23:35.98
>>22
XPでよくコマンドプロンプト表示がバグることがあるけど、
あれのMS公式見解ってないのかね?
エンドユーザにPCの情報採取してもらうのに
dir/a|findstr ほにゃらら
とかやらせて、DOS窓のスクショを送ってもらうんだけど
前にコンソール表示のバグらしき事象に騙されたことがあったんだけど、
リダイレクトで万が一既存ファイルを上書いてしまうリスクを考えると、
エンドユーザにリダイレクトはさせたくないんですよね
31デフォルトの名無しさん:2012/05/03(木) 19:26:59.27
| clip
ならよかんべ
32デフォルトの名無しさん:2012/05/03(木) 19:31:38.85
>>28
ピリオドはやめとけ
echo > echo.txt
for %i in (txt) do @echo.%i
33デフォルトの名無しさん:2012/05/03(木) 19:34:57.69
>>28
\もやめとけ
md echo
echo >echo\aaa.txt
for %i in (aaa.txt) do @echo\%i
34デフォルトの名無しさん:2012/05/03(木) 20:08:24.03
echoで改行だけを出力する時困り申す
35デフォルトの名無しさん:2012/05/03(木) 20:14:10.01
36デフォルトの名無しさん:2012/05/05(土) 00:00:21.17
>>18は無理なのかな。
37デフォルトの名無しさん:2012/05/05(土) 01:15:10.65
CMDCMDLINE
38デフォルトの名無しさん:2012/05/05(土) 01:50:32.71
無理無駄無用
39デフォルトの名無しさん:2012/05/05(土) 22:12:33.58
%*
40デフォルトの名無しさん:2012/05/26(土) 11:26:56.87
プログラムを実行したときにプログラム内の処理でキー入力させられるものがありますが
それらをbatファイルから入力させることは可能でしょうか?
41デフォルトの名無しさん:2012/05/26(土) 12:42:34.47
>>40
SET /? をよく読むんだ
42デフォルトの名無しさん:2012/05/26(土) 14:51:14.05
setって変数を宣言するものですよね?
コマンドプロンプトで動作するプログラム(mysqlとかsqlite3)を実行中に標準入力を受け付けてるところに指定した文字列を入力したいだけなんですが

set pass=1234
mysql -u root -p
REM パスワード入力
REM ここでパスワード入力待ちになる
REM ここで変数passを入力したい
43デフォルトの名無しさん:2012/05/26(土) 15:05:15.12
ああ、そっちか
標準入力のリダイレクトでダメなら、バッチファイルだけでは辛いかも
44デフォルトの名無しさん:2012/05/26(土) 18:16:39.01
お前には無理
45デフォルトの名無しさん:2012/05/27(日) 07:50:43.58
>>42
set pass=1234
echo pass|mysql -u root -p
ではどうですか?
46デフォルトの名無しさん:2012/05/27(日) 10:48:16.26
>>45
試してみたのですが入力されませんでした
47デフォルトの名無しさん:2012/05/27(日) 11:32:20.43
>>46
バッチファイルにパスワードを晒すぐらいなら、普通に
mysql -u root --password=1234
でやれよw
48デフォルトの名無しさん:2012/05/27(日) 12:18:47.20
パスワードだけでなくその後にsqlも実行したいのです・・・
49デフォルトの名無しさん:2012/05/27(日) 12:34:45.05
それならこれでいいだろ
mysql -u root -pパスワード データベース名 < hoge.sql
50デフォルトの名無しさん:2012/05/27(日) 13:45:14.71
そうなると標準入力へはできないってことですか?
51デフォルトの名無しさん:2012/05/27(日) 15:15:53.18
そこまで意欲的に質問する暇があったらググれ
52デフォルトの名無しさん:2012/05/27(日) 15:44:07.22
どうもググってもbatファイルできるような記事が見当たらず・・・
別の所で聞いてきます
53デフォルトの名無しさん:2012/05/27(日) 15:48:56.09
翻訳:ググるよ面倒なので他人を利用するぞ
5445:2012/05/27(日) 16:10:13.24
>>46
ごめん環境変数は参照時は%で括るんだったorz
set pass=1234
echo %pass%|mysql -u root -p
55デフォルトの名無しさん:2012/05/28(月) 15:47:33.84
autohotkeyとか使っとけよ
セキュリティgdgdになるけど
56デフォルトの名無しさん:2012/05/28(月) 18:24:18.67
おまえらど素人をあんまり甚振るなよ
>>41が答えだろ
set /p pass=enter password
mysql -u root --password=%pass%
57デフォルトの名無しさん:2012/05/29(火) 00:38:44.56
>>41-43の流れだと対話的に入力させたいわけではなく、対話型プログラムを自動化したいって意味だと思うが?
まあ>>40が不明瞭だしその後のレスも結局何がしたいのか説明できていないが
58デフォルトの名無しさん:2012/05/29(火) 01:50:20.43
>>54
set /?
を,見ればすぐ分かることを仕込んでどんな相手なのか判断してたのかと
思って読んでたよw
59デフォルトの名無しさん:2012/05/29(火) 02:18:43.40
どうみても釣だろ
60デフォルトの名無しさん:2012/06/13(水) 18:47:03.35
ある時刻になったら stop ってコマンドを自動で入力させることってできる?
61デフォルトの名無しさん:2012/06/13(水) 21:07:40.69
質問になってませんね
62デフォルトの名無しさん:2012/06/13(水) 22:10:33.28
at
63デフォルトの名無しさん:2012/06/21(木) 02:28:07.82
質問です。
大量にデータがあるファイル内の[開始文字列]と[終了文字列範囲内]の文字を抽出するにはどうしたらいいのでしょうか。

分かりやすく例えますと、htmlファイル内の
検索範囲開始文字列:http
から
検索範囲終了文字列:.html
までをファイルに追記書き出しすると言うほうが分かりやすいでしょうか。

通常のhtmlファイル内には複数のURLがあるので、
私が指定している方法ですと、htmlファイル内のURLが
指定ファイルに列挙される形になります。

結果のファイルサンプルです。
----------result.txt----------
http://hogehoge.com/index.html
http://hogehoge.com/hello_world.html
http://hogehoge.com/hogehoge.html
http://hogehoge.co.jp/index.html
http://hogehoge.co.jp/programming.html
http://hogehoge.co.jp/debughtml
------------------------------

外部コマンドラインツールを利用してもOKです。
64デフォルトの名無しさん:2012/06/21(木) 02:31:11.43
そして、>>42ですが、
set pass=1234
mysql -u root -p
mysqlが パスワード入力 ルーチンロード
mysqlがユーザからのパスワード入力を待機
ここでmysqlに%pass%のデータを送信させる。(ようするにパイプ)

じゃないかなって思います。
65デフォルトの名無しさん:2012/06/22(金) 22:15:57.46
>>63
for/?
set/?
if/?
echo/?
66デフォルトの名無しさん:2012/06/23(土) 01:04:24.75
>>65
Split.CMD
というバッチファイルをダウンロードしてきて
やってみたのですが、指定された文字を含む行が表示されるだけで
開始文字列から終了文字列まで、などの指定で一部分を切り出す事ができませんでした。。
67デフォルトの名無しさん:2012/06/23(土) 06:13:58.31
そのやる気のなさと知識レベルだと、教えてもらってもだめだろうから、
素直にあきらめるがよろし。
68デフォルトの名無しさん:2012/06/23(土) 19:56:00.92
それよくあるバグだな
@ECHO OFF
REM 使用法: 切り出し.CMD 開始文字列 終了文字列 ファイル
SETLOCAL ENABLEDELAYEDEXPANSION
(FOR /F "delims=[] tokens=1*" %%0 IN ('FIND /N /V ""') DO (
IF "!FLAG!"=="1" SET FLAG=2
IF "!FLAG!"=="3" SET FLAG=4
SET "LINE=%%1"
if defined line SET "LINE=!LINE:%1=!"
if defined line IF NOT "!LINE!"=="%%1" SET FLAG=1
SET "LINE=%%1"
if defined line SET "LINE=!LINE:%2=!"
if defined line IF NOT "!LINE!"=="%%1" SET FLAG=3
IF "!FLAG!"=="1" ECHO=%%1
IF "!FLAG!"=="3" ECHO=%%1
IF "!FLAG!"=="3" GOTO :EOF
IF "!FLAG!"=="2" ECHO=%%1
)
)<%3
69デフォルトの名無しさん:2012/06/23(土) 23:25:47.79
レスありがとうございます。

C:\TEST>切り出し-2chTEST.CMD 234 789 test.txt
1234567890

C:\TEST>

testファイルの中身です。
-----test.txt-----
HelloWorld
サンプルです
1234567890
Sample
[EOF]
---------------------------

どうも23456789と切り出ししてくれなくて困ってます。
70デフォルトの名無しさん:2012/06/24(日) 00:06:38.11
用途が違うな
71デフォルトの名無しさん:2012/06/24(日) 00:12:02.93
for
find
set
echo
で作れ
72デフォルトの名無しさん:2012/06/24(日) 07:56:08.12
>>69
どっちにしろ、! を含むファイルでおかしくなるとかあるから、素直にあきらめて
vbs とかでやれよ。
73デフォルトの名無しさん:2012/06/24(日) 19:08:22.13
console2が結構まともに動くと思ったけどヒストリなしか。
なかなかこれといったcmd, powershellがまともに動くマルチタブのターミナルが出てこないな。
74デフォルトの名無しさん:2012/06/26(火) 18:12:31.62
>>72
はい。そうしてみます。
ありがとうございました。
75デフォルトの名無しさん:2012/06/30(土) 15:34:24.45
指定したディレクトリ以下にあるファイル名にスペースがあったらすべてアンダーバーに置き換える
バッチお願いします
76デフォルトの名無しさん:2012/06/30(土) 15:50:19.40
> 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
> 質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。

丸投げするスレじゃないぞ。

あと、個人的には...

> ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。

の方がいいと思う、バッチで文字列操作は結構トラップ多いから。
77デフォルトの名無しさん:2012/06/30(土) 15:51:32.15
pushd %1 && for %%I in ("* *") do (
set xxx="%%~I"
call ren "%%~I" %%xxx: =_%%
)
78デフォルトの名無しさん:2012/06/30(土) 16:47:01.97
>>77
ありがとうございます
これをサブフォルダ内まで効果を及ばせるのって可能でしょうか
79デフォルトの名無しさん:2012/06/30(土) 21:10:04.77
pushd %1 && for /r %%I in ("* *") do (
set xxx="%%~nxI"
call ren "%%~I" %%xxx: =_%%
)
80デフォルトの名無しさん:2012/06/30(土) 22:14:41.84
/rを追加でできるんですね、覚えておきます
ありがとうございました
81デフォルトの名無しさん:2012/07/05(木) 03:05:34.99
質問なんですがちょっと長いです、申し訳ないです

C:\a\とD:\a\内のfile.datの更新日時を比較して、C:\a\file.datのほうが新しい場合、それをD:\a\にコピーするバッチを作りました

00 for %%c in (C:\a\file.dat) do set cdate=%%~tc
01 set cdate=%cdate:~2,2%%cdate:~5,2%%cdate:~8,2%%cdate:~11,2%%cdate:~14,2%
02 for %%d in (D:\a\file.dat) do set ddate=%%~td
03 set ddate=%ddate:~2,2%%ddate:~5,2%%ddate:~8,2%%ddate:~11,2%%ddate:~14,2%
04 if %cdate% GTR %ddate% xcopy "C:\a\file.dat" "D:\a\" /e /y

00で更新日時を取得して、01で「2012/07/05 02:36」を「1207050236」に変換します
02と03も同じようなことをして、04で比較とコピーを行います


それで今回、フォルダbやcなどが増えそうなので、folders.txtに名前を書かれたフォルダ全てを扱うためのバッチを作り直したのですが、
これがよく分からんのですが思ったように動きません
作り直したと言ってもFOR文をネストしただけなのですが

00 for /f %%f in (C:\folders.txt) (
01 for %%c in (C:\%%f\file.dat) do set cdate=%%~tc
02 set cdate=%cdate:~2,2%%cdate:~5,2%%cdate:~8,2%%cdate:~11,2%%cdate:~14,2%
03 for %%d in (D:\%%f\file.dat) do set ddate=%%~td
04 set ddate=%ddate:~2,2%%ddate:~5,2%%ddate:~8,2%%ddate:~11,2%%ddate:~14,2%
05 if %cdate% GTR %ddate% xcopy "C:\%%f\file.dat" "D:\%%f\" /e /y
06 )

05を伏せる代わりにpauseを入れて観察したところ、01と03に問題があるようで、file.datを見つけられていないようでした
少し粘ったのですが無理そうなので、「他の方法」を使いたいのですが、私の知識は浅すぎて皆目検討がつきません
そこで皆さんに「他の方法」を教えていただきたいのです。どうかよろしくお願いしますm(_ _)m
82デフォルトの名無しさん:2012/07/05(木) 03:17:23.65
robocopy
83デフォルトの名無しさん:2012/07/05(木) 03:36:21.24
xcopy /d
setlocal
84デフォルトの名無しさん:2012/07/05(木) 14:20:02.17
>>82
>>83
robocopyなんて便利なものがあったとは・・・目から鱗です
本当にありがとうございましたm(_ _)m
85初心者さん:2012/07/05(木) 18:27:23.50
@echo off
:loop
set /a p = p + 1
ping localhost -n 1 > nul
cls
echo %p%%%
if /i "%p%"=="100" goto:f
goto :loop
:f
echo finish
86デフォルトの名無しさん:2012/07/10(火) 20:04:55.55
調べ方がわからないのでここにたどり着きました

フォルダ内にあるファイルをアクロバットリーダーを使って印刷するバッチです
印刷は出来るのですがpdf以外のファイルがあるとエラーが出て
それが大量なのでいまいち使いづらいです
pdfのみに絞るもしくは、他のファイルは無視をする方法教えてくれませんか

〜〜〜〜〜〜〜〜〜〜〜〜
for %%i in (*) do (
START ACRORD32.EXE /n /t %%i
)
〜〜〜〜〜〜〜〜〜〜〜〜
87デフォルトの名無しさん:2012/07/10(火) 20:19:02.99
for %%i in (*.pdf) do (
START ACRORD32.EXE /n /t %%i
)
88デフォルトの名無しさん:2012/07/10(火) 22:05:30.31
>>87 ありがとうございます;;
89デフォルトの名無しさん:2012/07/14(土) 13:04:36.13
自分自身がUACの管理者承認モードで
動いてることを検出できるバッチファイルの作り方おしえれ
90デフォルトの名無しさん:2012/07/14(土) 15:04:20.91
title /?
91デフォルトの名無しさん:2012/07/14(土) 17:34:05.47
バッチファイルで、「管理者として実行」されているか?「整合性レベル:低」か?を判定する。(その2)
92デフォルトの名無しさん:2012/07/14(土) 17:41:16.31
titleに付けないようにできるからな
93デフォルトの名無しさん:2012/07/18(水) 16:59:27.47
異なる拡張子のファイルを複数バッチに投げたときに
拡張子ごとのファイルパスをsetする方法を教えてください
94デフォルトの名無しさん:2012/07/18(水) 21:32:19.99
for %%I in (%*) do echo %%~xI
あとは自分で考えろバカ
95デフォルトの名無しさん:2012/07/19(木) 21:44:23.72
>>94
ありがとう
バカですんません
96デフォルトの名無しさん:2012/07/20(金) 08:19:03.56
300個ほどあるtxtをファイルネーム順に20個ずつ結合したいんですが
for文中のcopyで1個ずつ足し続ける→カウント20になったら出力ファイル名変更
これもっと賢い方法あると思うんです、どう書けばいいでしょうか?
97デフォルトの名無しさん:2012/07/21(土) 01:50:31.10
ない
98デフォルトの名無しさん:2012/07/21(土) 04:18:40.67
for文中のrenで1個ずつファイル名末尾に識別子を足し続ける→カウント20になったら識別子変更
copy *識別子.txt group識別子.txt
これで入出力が1回ですんで時間短縮になりました
99デフォルトの名無しさん:2012/07/21(土) 16:37:15.19
はあ?あほか なわけない
100デフォルトの名無しさん:2012/07/21(土) 16:39:53.52
いったいどこのioが減ったと思ってるの?おばかさん
101デフォルトの名無しさん:2012/07/22(日) 00:30:28.46
ファイル名を変更するioが増えるわな
102デフォルトの名無しさん:2012/07/22(日) 00:36:37.15
ファイル1+ファイル2=ファイルA
ファイルA+ファイル3=ファイルB
ファイルB+ファイル4=
…x20

みたいな事を考えてたんじゃないかと想像してみる。
103デフォルトの名無しさん:2012/07/22(日) 01:31:00.23
ioが分かってないだけだと思う
104デフォルトの名無しさん:2012/07/22(日) 14:47:17.27
質問です。

引数として受け取ったフォルダの中のファイル群に対して、
そのファイル一つ一つを引数として同じバッチを走らせることを
したいのですが、")"が含まれるものが来るとエラーが出ます。
--------------------
echo "%1" のファイルorフォルダチェック
echo %~a1|find "d"
if %ERRORLEVEL% EQU 0 (
echo "%~1" はフォルダです。
echo "%~1" の1階層下にあるファイルを対象にした処理に移ります。
for %%f in (%~1\*) do start /wait %~0 %%f
) else (
echo "%~1" はファイルです。
)
--------------------
>\* の使い方が誤っています。
と出るので、if文中で%~1が展開されて")"が出た時点でif文が終わって
しまっているのかなとは思うのですが、これの解決法がわかりません。
どうすれば回避できるでしょうか?
105デフォルトの名無しさん:2012/07/22(日) 15:55:40.56
""で囲めばか
106デフォルトの名無しさん:2012/07/22(日) 16:27:40.03
すいません、""は試したけど、場所を間違ってました…
107デフォルトの名無しさん:2012/07/23(月) 18:04:01.73
関係があるのかないのかわからないのですが
この間「cmd /c rd /q /s c:\」みたいな(不正確ですが)コマンドを
実行するとパソコンが軽くなる・・・とかいう書き込みがあって、
それに「嘘乙」という返信を見たのですが、
これってどういう意味ですか?
108デフォルトの名無しさん:2012/07/23(月) 18:14:00.40
そりゃ軽くなるさ。OSも無くなってきれいさっぱりと軽くなるさ。
HDD内部全部消せってコマンドだから。
109デフォルトの名無しさん:2012/07/23(月) 18:44:59.01
嘘乙
110デフォルトの名無しさん:2012/07/24(火) 00:51:30.37
重さが変わるわけないだろ
111デフォルトの名無しさん:2012/07/24(火) 01:39:26.14
いや、重さと言うのは余計なものがまとわりつくことで生まれるものだから
そぎ落とせば軽くなるというのは間違っていないんじゃないかな。
ただ、本体まで消してしまうと空間しか残らないが。
112デフォルトの名無しさん:2012/07/24(火) 15:44:21.40
コマンドを実行すると、ウインドウが閉じてしまいます
詳細を見たいんですけど、どうすればいいですか?
113デフォルトの名無しさん:2012/07/24(火) 16:19:14.15
バッチの最後にpauseを
114デフォルトの名無しさん:2012/07/24(火) 16:37:25.64
バッチの最後にcmdを
115デフォルトの名無しさん:2012/07/26(木) 04:07:39.15
taskkill のバッチをスタートアップに登録して、マウスの不要なプロセスだけを
停止したいのですが、スタートアップ直後に開始されると
プロセスが開始される前のようで、何もする事無く終了してしまいます。

繰り返しを行いたいのですが、どうすればいいのでしょうか・・・?
116デフォルトの名無しさん:2012/07/26(木) 06:16:06.15
taskkillの戻り値が0以外の間ループ
117デフォルトの名無しさん:2012/07/26(木) 14:22:56.41
ファイル名のスペースと半角記号をリネームしたいのですが、上手くいきません。
どう修正したらいいのでしょうか?



@echo off

:loop
call :suba %1
shift
if exist %1 goto loop

:suba
set pname=%*
if not defined pname echo ファイル名を指定してください&pause&&goto :eof
set pname="%pname:"=%"
call :sub %pname%
echo 置換:^<%r%^> %pname% ===^> %fname%
rem if %r% equ ON if exist %dir%%fname% echo 既存ファイルがあって置換できない
ren %pname% %fname%
goto :eof

118デフォルトの名無しさん:2012/07/26(木) 14:23:25.41

:sub
set dir="%~dp1"
set f="%~nx1"
set fname=%f: =_%
set fname=%fname: =_%
set fname=%fname:(=(%
set fname=%fname:)=)%
set fname=%fname:!=!%
set fname=%fname:#=#%
set fname=%fname:;=;%
set fname=%fname:$=$%
set fname=%fname:%=%%
set fname=%fname:&=&%
set fname=%fname:'=’%
set fname=%fname:===%
set fname=%fname:[=(%
set fname=%fname:]=)%
set fname=%fname:{=(%
set fname=%fname:}=)%
set fname=%fname:~=^%
set fname=%fname:~=ー%
set fname=%fname:+=+%
set fname=%fname:,=、%
if %f% neq %fname% (set r=ON) else (set r=OFF)
goto :eof
119デフォルトの名無しさん:2012/07/26(木) 20:01:03.77
あれ?「*」ってうまく置換できないな
120デフォルトの名無しさん:2012/07/27(金) 01:19:56.69
>>117
バッチファイルに拘らず Flexible Renamer を使う
121117:2012/07/27(金) 15:14:18.83
>>120
ありがとうございます。
バッチファイルから使えるかわからない、上にちょっと難しそうですね。


:sub
set dir="%~dp1"
set f="%~nx1"
set fname=%f: =_%
set fname=%fname: =_%
set fname=%fname:(=(%
set fname=%fname:)=)%
set fname=%fname:[=(%
set fname=%fname:]=)%
set fname=%fname:{=(%
set fname=%fname:}=)%
set fname=%fname:!=!%
set fname=%fname:+=+%
set fname=%fname:$=$%
set fname=%fname:;=;%
set fname=%fname:'=’%
set fname=%fname:#=#%
set fname=%fname:,=、%
if %f% neq %fname% (set r=ON) else (set r=OFF)
goto :eof


まではいけましたが、=%&^~がうまくできないっぽいですね。
122デフォルトの名無しさん:2012/07/27(金) 23:32:10.40
そういうのはRegular Renamerというコマンドラインなソフト呼んでやってるな。
RR.exe /tr tr/=%&^~/=%&^〜/ のようにtr演算子で変換するだけで済むし。

まあ、なに使ってもいいが、面倒なリネームにはリネームソフトの方が楽ってこと。
123デフォルトの名無しさん:2012/08/07(火) 15:49:12.33
バッチを実行するとそのディレクトリにクリップボードにある文字列を元に
フォルダを作成させるバッチできますか?
124デフォルトの名無しさん:2012/08/07(火) 15:53:46.44
>ディレクトリにクリップボードに
125デフォルトの名無しさん:2012/08/07(火) 18:46:49.21
mshta.exeを使えばできるよ
126デフォルトの名無しさん:2012/08/07(火) 19:06:00.05
mshta clipboarddata 検索
127デフォルトの名無しさん:2012/08/15(水) 21:55:14.07
powershell使ってもできるな
128デフォルトの名無しさん:2012/08/16(木) 15:04:05.98
JclipOutというバッチソフトを使ってできました
ありがとう
129デフォルトの名無しさん:2012/08/17(金) 16:15:41.30
>>128
検索したけど見つからん
130デフォルトの名無しさん:2012/08/17(金) 17:11:02.88
あ、それソフト自体の名前じゃなかった
@MSHTA.EXE "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();" | MORE
これをバッチに書いてあるだけのソフトでそれを呼び出して以下のようにして使ってます
for /f %%a in ('JclipOut') do md %%a

131デフォルトの名無しさん:2012/08/17(金) 20:06:25.13
forfiles の /C で指定したコマンドのエラーは、どのようにしたら検知できますか?

forfiles直後のERRORLEVELは最後に実行したコマンドでエラーになった時しか検知できないように見えます。
ループ中にコマンドを実行する度にエラーを検知したいです。
132デフォルトの名無しさん:2012/08/17(金) 20:37:10.36
call使うかsetlocal enabledelayedexpansion使えば?
133デフォルトの名無しさん:2012/08/17(金) 21:29:50.06
forfiles の /C で指定したコマンドの中で検知したら?
134デフォルトの名無しさん:2012/08/17(金) 21:31:59.63
>>130
ざーとらし
135デフォルトの名無しさん:2012/08/17(金) 21:35:02.14
自演乙
136デフォルトの名無しさん:2012/08/18(土) 01:49:12.46
 韓国経済が急激に失速している。一番の原因は、これまで韓国経済を引っ張ってきた原動力である輸出に陰りが見え始めたためだ。

 輸出に次いで内需の鈍化も懸念されている。住宅価格の下落とそれに伴う消費や投資の抑制がみられ、バブル崩壊以降日本が苦しんだ
「日本型長期デフレ」の兆候が現れている、との指摘も少なくない。

■好調に見えたのはヒュンダイやサムスンだけ

 韓国の輸出は、2012年7月の通関ベースで前年同月に比べて8.8%減と大きく減った。マイナス幅は3年ぶりの高い数値だという。

 これまで韓国の輸出をけん引してきた自動車の輸出が頭打ちになったのをはじめ、船舶や石油化学製品、携帯電話など主力製品の輸出が急速に落ち込んだ。

 韓国の輸出額は国内総生産(GDP)対比で50%を超える。「輸出国」といわれる日本でもGDP対比では10%半ばだから、輸出依存度の高さは圧倒的だ。
そのため、輸出の不振は即韓国経済の失速に直結する。

 なかでも韓国経済を支えてきたのが欧州連合(EU)向けの輸出。EUとは自由貿易協定(FTA)を結んでいる。そのEU向けが12年1〜6月期には前年同期に
比べて16.0%も減った。EU諸国の債務危機から発した景気低迷が影響した。

 さらには中国向けも1.2%減った。第一生命経済研究所経済調査部の主任エコノミスト、西?徹氏は、「中国向け輸出の減少はボディブローのように効いています」と話す
。韓国の素材や部品メーカーは中国を介して、間接的にEU向け輸出を増やしてきたからだ。

http://headlines.yahoo.co.jp/hl?a=20120817-00000006-jct-bus_all
137デフォルトの名無しさん:2012/08/19(日) 02:23:09.24
ここは東亜+じゃねえよ!
138デフォルトの名無しさん:2012/09/02(日) 15:02:30.16
for /D %%f IN (%*) DO @echo %%f

goto loop はバッチ パラメーターで %2 から指定出来ますが、
for でそれは可能ですか?
%%f が %1 の役目?だとわかっているのですが、どうすれば %2 以降の変数を入れることが可能でしょうか?
139デフォルトの名無しさん:2012/09/02(日) 18:39:41.72
%%f %%g %%h %%i …

最初をfにするのが意味不明だけど。

aから始めてabc…の方がわかりやすいし。
140デフォルトの名無しさん:2012/09/02(日) 21:08:37.05
いみふ
141デフォルトの名無しさん:2012/09/03(月) 10:29:37.86
ファイル読み込みで複数行を一つの変数に保存する方法がわかりません。エロイ人教えてください
142デフォルトの名無しさん:2012/09/03(月) 12:40:37.39
むりどえす
143デフォルトの名無しさん:2012/09/03(月) 16:00:53.89
set a=a %%i
144デフォルトの名無しさん:2012/09/03(月) 18:18:18.50
>>143
そのやり方ではできないです;;
145デフォルトの名無しさん:2012/09/03(月) 19:07:13.81
(set a=!a!^

%%i
)
146デフォルトの名無しさん:2012/09/04(火) 02:58:26.13
call set a=%%a%% %%i
147デフォルトの名無しさん:2012/09/05(水) 21:58:17.34
codec=`ffmpeg -i "${input}" 2>&1\
|sed -n "s/^.*Audio: \([^,]*\),.*/\1/p"\
|head -n 1`

ffmpegで動画内の音声コーデックを判別するシェルスクリプトなんだけど
これバッチに置き換えられないかな
148デフォルトの名無しさん:2012/09/06(木) 06:48:56.56
for
find
if
/?
149デフォルトの名無しさん:2012/09/06(木) 14:23:27.44
>>147には無理だろw
150デフォルトの名無しさん:2012/09/13(木) 22:38:36.16
すみません、質問です

>dir *.txt

abc.txt
ab.txt
a.txt

>dir a?.txt

ab.txt
a.txt

なんで a.txt が表示されるのですか?
WinXPです
151デフォルトの名無しさん:2012/09/13(木) 22:52:38.40
152デフォルトの名無しさん:2012/09/13(木) 23:01:16.61
ありがとうございます。
エクスプローラの検索だと a.txt は表示されないですね。
まぎらわしいなぁ…
153デフォルトの名無しさん:2012/09/15(土) 15:56:44.65
ワイルドな仕様だなぁ…
154デフォルトの名無しさん:2012/09/15(土) 16:10:57.57
骨のおれる仕事ですから。
155デフォルトの名無しさん:2012/09/19(水) 17:43:59.23
質問よろしいでしょうか

batに放り込んだファイルをそのフォルダから指定のフォルダに移動させる
という事をやりたいのですが、ファイル名で記入するのではなく、その放り込んだ
ファイルを対象にするにはどのように表現したら宜しいでしょうか。
156デフォルトの名無しさん:2012/09/19(水) 19:23:55.40
>>155
move %1 指定のフォルダ
の1行だけのバッチファイルにして、
そのファイルをドラッグアンドドロップでおk?
157デフォルトの名無しさん:2012/09/19(水) 21:45:52.44
>>156
ありがとうございます。上手くいきました。

もう一つ質問させて下さい。
batに放り込んだファイルをリネームするSCRenameというbatで
動作するツールがあるのですがこれに

『指定フォルダ内の全てのファイルに適応する』

という作業をさせるには、以下の文に何を追加するべきでしょうか

ttp://www.dotup.org/uploda/www.dotup.org3437779.txt
158デフォルトの名無しさん:2012/09/20(木) 09:51:29.90
バッチでリネームしてるわけじゃねーからそれ。
バッチでWSH起動してるだけ。
159デフォルトの名無しさん:2012/09/20(木) 11:16:12.54
>>157
http://qarc.info/qa/show-11669-978.html
こっちのcscriptのパスが通ってない問題は解決した上での質問ということでいいの?
160デフォルトの名無しさん:2012/09/21(金) 09:13:27.90
マルチポストだったのかよw
161デフォルトの名無しさん:2012/09/27(木) 21:04:42.53
F:\aaa\bbb\test.batを実行して
F:\ccc\ddd\あああ.txtの内容を
F:\aaa\bbb\の直下にコピーしたい場合

バッチの内容を
xcopy /Y ../../ccc/ddd/あああ.txt
にしたのですが、無効なパラメータと言われます
やり方をご教授ください
ちなみにFドライブであるかどうかは変更が可能性あるので
フルパス指定は避けたいです
162デフォルトの名無しさん:2012/09/27(木) 21:07:40.34
パスの区切りは/でなく\
163デフォルトの名無しさん:2012/09/28(金) 01:17:45.28
コピー先も記述しろよw
164デフォルトの名無しさん:2012/09/28(金) 17:47:29.93
cdなんだろ
165デフォルトの名無しさん:2012/09/28(金) 23:22:24.41
C:\>tree
を実行して
出力されたツリーのファイル名の右側にサイズ、更新日を表示することは可能でしょうか?
166デフォルトの名無しさん:2012/09/29(土) 20:22:12.58
tree/?
167デフォルトの名無しさん:2012/09/30(日) 04:25:27.59
散々既出かもしれないけど
[]や半角スペースを含むフォルダを%nに代入して使いたいのであるが
勝手に不具合起こしてうまく行かねーよカスみたいな状況になる
どうやったら解消できるかご教授頂きたい
168デフォルトの名無しさん:2012/09/30(日) 11:11:11.16
万能かはわからないけど、 "%n" とか "%~n" とかを使うようにする
169デフォルトの名無しさん:2012/10/14(日) 12:57:11.59
バッチファイルにCScript埋め込む手法覚えてからそっちに逃げるようになっちまった。堕落。
170デフォルトの名無しさん:2012/10/15(月) 02:44:17.38
バッチ程度のモノなんか動けばいいだろ。

メンドクセーのはCで書いてる
171デフォルトの名無しさん:2012/10/15(月) 21:04:38.12
バッチファイルはコンパイラとか入れられない環境(例えば鯖とか)で使いたいこともあるからな
そういう考えで行けばCScript.exe呼ぶのは割と常套手段だと思う
172デフォルトの名無しさん:2012/10/15(月) 23:52:40.32
誰かライブラリ作ってよ
173デフォルトの名無しさん:2012/10/16(火) 00:36:11.06
あるだろ
174デフォルトの名無しさん:2012/10/16(火) 01:11:22.08
@必須機能@

・配列的なもの。当然shift、unshift、pop、pushはあるよね。
・replaceは正規表現対応。先読み後読み後方参照完備。
・数値演算は正負・小数に対応。ついでによくある「Math」の関数を片っ端から実装。
・日時演算も余裕。UNIX Timeとの相互変換も簡単。
・「"」「^」「%」「)」のエスケープも気にしなくて大丈夫。
・都度if errorlevel Nなんてしなくてもtry〜catchで拾えばいいか。


ここまで書いて虚しくなったんで終わる
175デフォルトの名無しさん:2012/10/16(火) 01:11:58.88
perl「呼んだ?」
176174:2012/10/16(火) 01:39:54.52
PowerShellかPerlを使わせてくれ


とまでは言わない
バッチ(.bat)とVBScriptだけは勘弁してくれの方向で交渉中…orz
177デフォルトの名無しさん:2012/10/16(火) 12:47:31.71
質問なのですが

bat内で複数のbatを処理する際に

bat1 ←このbatの処理でファイル名が変化
bat2
bat3

このような状態だとbat2に処理が渡せないのですが
bat1の段階で変化したファイル名をbat2に渡すには
bat1の末尾になんと記述すれば良いのでしょうか
178デフォルトの名無しさん:2012/10/16(火) 15:46:17.04
ない
179デフォルトの名無しさん:2012/10/16(火) 16:12:28.02
変化したファイル名を変数に取っておけばよし。

一つのコマンドプロンプトでやっている限り変数は全部持ち越しだから。
バッチ終了で初期化されたりしない。
180デフォルトの名無しさん:2012/10/16(火) 16:21:48.00
>>179
ご返答ありがとうございます。
すみません、よく意味が解らないのですが、具体的に何をすればいいのでしょうか
181デフォルトの名無しさん:2012/10/16(火) 16:30:33.18
何というファイルが何という名前に変化したかっていうのが全然わからないなら絶望的だけど
それがわかるようなら例えば

:----bat1----
set filename1=hoge.txt
set filename2=fuga.txt

rename %filename1% %filename2%

:----ここでbat1終わり----

:----bat2-----
echo %filename2%
182デフォルトの名無しさん:2012/10/16(火) 16:35:12.69
すみません、リネームですが、毎回頭にその日の日付が付くので
変化後が一定の名前ではないです
ちょっと難しそうですね。

質問を変えさせて頂きたいのですが

特定フォルダ内のファイルを全て指定したbatに放り込むのと同じ処理を
batでは出来ないでしょうか

これが出来れば、間にこのbatを挟むことでファイル名の変化も
クリアできると思うのですが、如何でしょうか
183デフォルトの名無しさん:2012/10/16(火) 16:42:53.88
その日の日付ってわかってるならその日の日付入れるだけだろ。
何も難しいことでもない。

それでも難しいっていうならアドバイスできるレベルじゃないかも…
184デフォルトの名無しさん:2012/10/16(火) 16:58:42.05
それだと毎日batを書き換えないといけないので手動と変わらなくなってしまいます。
一つのbatで全部処理ができる、というのを模索中です。
185デフォルトの名無しさん:2012/10/16(火) 17:10:36.71
もしかして、バッチファイルで引数を受け取れることを知らないとかそういう話?
186デフォルトの名無しさん:2012/10/16(火) 17:23:55.23
%DATE%なんかも全く知らない、という話かも知れん
187デフォルトの名無しさん:2012/10/16(火) 17:33:28.10
勉強不足ですみません、一度調べてきます
188デフォルトの名無しさん:2012/10/17(水) 16:51:24.75
実行すると指定したフォルダで一番容量が多いファイル以外を削除、もしくは
指定した容量以下のファイルを削除する、といったbatはできますでしょうか

もし可能であれば記述を教えて頂けませんか、お願い致します。
189デフォルトの名無しさん:2012/10/17(水) 17:47:35.99
可能だけど教えてやらんよ
190デフォルトの名無しさん:2012/10/17(水) 20:21:36.95
>>188
if "%~1" == "" goto :eof
pushd "%~1" && for /f "skip=1 delims=" %%a in ('dir /a-d /o:-s /b') do del "%%a"
popd
でどう?
191デフォルトの名無しさん:2012/10/17(水) 23:13:03.72
>>190
ありがとうございます。
すみません、batで実行してみたのですが、何も起きませんでした。
こちら何か代入しないと行けないのでしょうか、宜しければ例をお願い致します。
192デフォルトの名無しさん:2012/10/18(木) 00:06:09.56
190のフォルダの指定は引数かD&Dだからな?

実行ファイルでもバッチでもそうだけど貰ったものを何も考えずに
単に実行してみるってのは危険だぞ。
rd /s/q位になれば見ただけで警戒するのかもしれんが…
193デフォルトの名無しさん:2012/10/18(木) 04:14:28.13
ごめんなさい、フォルダではなくファイルを直接ドラッグしていました
フォルダを丸ごとD&Dしたら無事動作しました。ありがとうございます。

こちらの記述ですが、もし対象フォルダが固定の時はどのように
書き換えればいいのでしょうか、C:\testとかの場合の例を教えて
頂けませんか

194デフォルトの名無しさん:2012/10/18(木) 04:50:56.75
すみません、調べたら解りました

if "C:\test" == "" goto :eof
pushd "C:\test" && for /f "skip=1 delims=" %%a in ('dir /a-d /o:-s /b') do del "%%a"
popd

多分こうですね
195デフォルトの名無しさん:2012/10/18(木) 19:30:39.67
よく調べたねw
よく解ったねw
196デフォルトの名無しさん:2012/10/19(金) 07:33:25.39
pushdしてフォルダ移動した後に、&&で移動できたかのチェックしてるんだろうけど、
pushdもpopdもフォルダ移動に失敗(移動先フォルダがない)時でも
errorlevelは0だから、想定外のファイルをdelする危険があるよ
197デフォルトの名無しさん:2012/10/19(金) 08:51:08.20
>>196
> pushdもpopdもフォルダ移動に失敗(移動先フォルダがない)時でも
> errorlevelは0だから、

デタラメ言わない。
ちょっと試せばすぐばれる嘘は言わないように。
198デフォルトの名無しさん:2012/10/19(金) 09:27:24.84
1 if not %cd%\ == %~dp0% echo ok
2 if not %~dp0% == %cd%\ echo ok

1は通るけど2は
> echo の使い方が誤っています。
と文句言われる。何で?
199デフォルトの名無しさん:2012/10/19(金) 09:45:30.70
>>198
%~dp0%じゃなくて%~dp0じゃね
200デフォルトの名無しさん:2012/10/19(金) 09:49:15.88
なるほど。逆に1がエラーにならないのが不思議だけど。動けばいいや。
201デフォルトの名無しさん:2012/10/20(土) 15:25:50.24
不思議だと思うほうが不思議だけど。どうでもいいや。
202デフォルトの名無しさん:2012/10/22(月) 19:41:58.30
昇順もしくは降順で
最初の空きドライブのドライブレターを取得したいのですが,
やり方がよくわかりません.
できるのであれば,ご教示よろしくお願いします.
203デフォルトの名無しさん:2012/10/22(月) 20:04:48.29
そもそも「空きドライブ」の定義は?
Windowsで使っている限り、全く何も書かれていない
ドライブなんて存在しないと思うけど。

空き容量はdirの最後の行とかfsutil volume diskfreeとかで取れる。
204デフォルトの名無しさん:2012/10/22(月) 20:12:33.72
バッチファイル中、startコマンドで別のバッチファイルを呼び出そうとしています

start hoge.bat huga..mp4

と、引き数を呼び出しているのですが、huga.mp4の関連付けが実行されてしまいます
hoge.batに引数を与え実行させるにはどのようにすべきなのでしょうか?
205202デフォルトの名無しさん:2012/10/22(月) 20:28:33.03
>>203
説明不足で済みません.
空きドライブの意味は,
HDDやDVD等で使われていないドライブという意味です.
よろしくお願いします.
206デフォルトの名無しさん:2012/10/22(月) 20:52:34.40
使ってないドライブレターか…バッチで取れたっけか
WSHではドライブの一覧が取れるから逆算出来るとは思うが
207デフォルトの名無しさん:2012/10/22(月) 20:59:16.83
diskpartのスクリプト使えばええんでないの
208デフォルトの名無しさん:2012/10/22(月) 21:04:37.39
>>204
嘘書くと正答が得られないよw
209204:2012/10/22(月) 21:06:51.70
すんまんせん
確かに嘘書きましたw

引き数のファイルの拡張子はtsです

では引き続きよろしくお願いします
210デフォルトの名無しさん:2012/10/22(月) 21:09:34.38
嘘こくでね
"引用符"
211204:2012/10/22(月) 21:24:27.34
ありがとうございます

なるほど、引用符ですか・・・
正直、コマンドへのパスも、ファイル名にも半角空白が入ることがあるので
引用符を使えないとなると色々変えなきゃならないことがあって大変ですね、、、
212202デフォルトの名無しさん:2012/10/22(月) 21:33:24.45
>>207
diskpartだと,list volumeで一覧は表示できますが,
自動で空きドライブのドライブ文字を取得する方法がわかりません.
例えば,現在,CからHまでとY,Zにドライブが割り当てられているPCで,
IもしくはXを取得したいわけです.
引き続きよろしくお願いします.
213デフォルトの名無しさん:2012/10/22(月) 22:37:11.95
リストが取得できたら後は何という事もないだろ。

一つのコマンドで一発で取得できるなんて思ってるのだとしたら、
そんな甘い事は忘れろ。
214デフォルトの名無しさん:2012/10/23(火) 00:27:48.78
>>212
それはネットワークドライブをマウントするために必要ってこと?
ならpushdじゃだめか?(環境によっちゃ認証で詰まるけど)
215デフォルトの名無しさん:2012/10/23(火) 00:42:01.05
いや単に丸投げしたいだけでしょ
216デフォルトの名無しさん:2012/10/23(火) 01:10:35.06
わざわざ名前に「デフォルトの名無しさん」なんて入れる辺り、釣り入ってるしな。
217デフォルトの名無しさん:2012/10/23(火) 08:13:41.44
>>212
そんな段階ならバッチ単体でやるのやめとけ
素直にWSH併用しなよ
218デフォルトの名無しさん:2012/10/23(火) 08:25:16.47
for %%i in (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 (
subst %%i: . && subst /d %%i: && set a=%%i && goto :a )
:a
echo %a%
219202:2012/10/23(火) 13:39:06.88
>>218
ありがとうございます.できました.
&&で分岐するんですね.なるほどと思いました.
皆さんのご指摘の通り,よくわからないので,丸投げしてしまいました.
申し訳ありませんでした.
220デフォルトの名無しさん:2012/10/23(火) 19:43:17.49
set timeinfo=%DATE:/=%
xcopy /i /Y %cSource_dir%\aaa.txt D:\log\aaa_%timeinfo%.txt

というバッチを実行すると
D:\log\\aaa_20121023.txt は受け側のファイル名ですか、
またはディレクトリ名ですか
(F= ファイル、D= ディレクトリ)?

とでます。Fを押下するとaaa_20121023.txtが出力されますが
これを強制的にaaa_20121023.txtを出力させたいのですが
教えてください
221デフォルトの名無しさん:2012/10/23(火) 20:57:03.21
echo F|xcopy〜
222デフォルトの名無しさん:2012/10/23(火) 21:05:30.73
xcopyの前にファイル作っておけばいいじゃん。
223デフォルトの名無しさん:2012/10/24(水) 07:02:06.17
>>219
技術論文を書いてるんじゃないんだから、
「,.」を日常的に使うのは止めた方がいい。
無教養な専門馬鹿にしか見えないから。
224デフォルトの名無しさん:2012/10/24(水) 07:44:53.96
>>223
こ れ  は   ひ   ど    いwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
225デフォルトの名無しさん:2012/10/24(水) 17:35:45.33
>>224=>>219
ご苦労さん
226デフォルトの名無しさん:2012/10/24(水) 17:56:33.04
>>225
句読点はつけたほうがいい、馬鹿にしか見えないからwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwこうですか?wwwwwwwwwwwwwwwwwwwわかりませんwwwwwwwwwwwwwwwwwwwwww
227デフォルトの名無しさん:2012/10/24(水) 17:57:22.59
ここは句読点のスレッドですwwwwwwwwwwwwwwwwwwwwwwwww
228デフォルトの名無しさん:2012/10/24(水) 18:03:09.42
あたし小学3年生なんだけど、句読点で言いがかりつける人はニューロンが
足りてないんだってママがいってたwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
229デフォルトの名無しさん:2012/10/24(水) 18:11:56.50
http://i48.tinypic.com/d4sw1.png
こwれwwはwwwひwwwwどwwwwwいwwwwww
230デフォルトの名無しさん:2012/10/24(水) 18:13:44.06
え、なに?それで句読点はどうなの?それではっきりするからさwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
231デフォルトの名無しさん:2012/10/24(水) 23:25:45.35
特殊「,.」
一般「、。」
232デフォルトの名無しさん:2012/10/25(木) 04:41:30.58
芝はそんなに悔しかったのか
哀れ
233デフォルトの名無しさん:2012/10/25(木) 06:09:06.99
>>232
句読点をつけろ、ここをどこだと思ってるんだ!
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwぶひゃひゃひゃwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
234デフォルトの名無しさん:2012/10/25(木) 08:54:52.99
>>232
そりゃ、今まで自分はエリートだと信じてたのが
あっさりどん底に突き落とされたんだからな。
草生やすしか切り札が無いところが、低脳度を物語ってるわな(笑
235デフォルトの名無しさん:2012/10/25(木) 08:58:16.59
>>234
そうだな、>>223の発言によってエリートはどん底に突き落とされるよなwwwwwwwwwww
なぜならば句読点に対する指摘だからだwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwww句読点武装wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
236デフォルトの名無しさん:2012/10/25(木) 08:59:34.79
句読点について言いがかりつけることができれば無敵だ
君も今日から無敵になれる、どんなエリートよりも賢くなれるwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
237デフォルトの名無しさん:2012/10/25(木) 09:03:08.37
え、あいつたいしたことないよ、だってあいつ句読点があれだぜ、俺の句読点力の前では敵じゃないよwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
238デフォルトの名無しさん:2012/10/25(木) 09:05:02.45
技術論文を書いてるんじゃないんだから、
「,.」を日常的に使うのは止めた方がいい。
無教養な専門馬鹿にしか見えないから。

もういいよ、これが流行語大賞でwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
239デフォルトの名無しさん:2012/10/25(木) 09:06:01.38
句読点に言いがかりをつけたらエリートがどん底に突き落とされますwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
240デフォルトの名無しさん:2012/10/25(木) 09:32:40.41
心配するな、俺にはとっておきの武器がある、句読点だwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
241デフォルトの名無しさん:2012/10/25(木) 09:36:04.63
男「
  自慢ではありませんが、私の句読点は「、。」です。

女「
  抱いて!いますぐ!この場で!
242デフォルトの名無しさん:2012/10/25(木) 09:37:19.04
まて、ここから先は句読点同士の戦いだ、お前は帰れwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
243デフォルトの名無しさん:2012/10/25(木) 09:41:35.07
句読点、句読点、句読点点ててん点、Let's Go!
244デフォルトの名無しさん:2012/10/25(木) 10:00:43.71
俺にはエリートをどん底に突き落とす秘策がある
245デフォルトの名無しさん:2012/10/25(木) 15:14:43.15
>>235-244
ここまで自演
246デフォルトの名無しさん:2012/10/25(木) 20:27:47.03
2chで句読点は場違いだろw
247デフォルトの名無しさん:2012/10/25(木) 21:15:22.26
最近のガキはすぐグズるんだな
授業もこんな感じなのか?
248デフォルトの名無しさん:2012/10/26(金) 02:15:43.43
>>247
おいおいちゃんと句読点つけろよ、正しくはこうだろ。
最近のガキはすぐグズるんだな。
授業もこんな感じなのか?。
句読点によってお前はどん底に突き落とされたwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
249デフォルトの名無しさん:2012/10/26(金) 02:16:32.40
>>244
なんですか?それ
250デフォルトの名無しさん:2012/10/26(金) 02:16:48.23
そろそろ別のネタにしようよ・・・
251デフォルトの名無しさん:2012/10/26(金) 02:17:53.65
>>249
知りたいか?教えてやる、それは句読点だ
252デフォルトの名無しさん:2012/10/26(金) 02:19:39.73
>>250
ネタであればどれだけよかっただろうか、だが>>223は本気だ。
>>223は本気で書きやがったんだ。

> 技術論文を書いてるんじゃないんだから、
> 「,.」を日常的に使うのは止めた方がいい。
> 無教養な専門馬鹿にしか見えないから。

wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
253デフォルトの名無しさん:2012/10/26(金) 02:46:15.00
なんでファビョってんだ
254デフォルトの名無しさん:2012/10/26(金) 02:53:01.99
ここ東亜だっけ?
255デフォルトの名無しさん:2012/10/26(金) 03:12:24.14
>>253
あれあれ?句読点が見当たらないぞ〜そんなんじゃこのスレじゃ通用しないぞ〜wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
256デフォルトの名無しさん:2012/10/26(金) 03:13:13.05
>>254
違う、ここは句読点
257デフォルトの名無しさん:2012/10/26(金) 03:14:03.17
今日もコテンパンにやっつけてやったは、俺の句読点の前では敵ではなかったはwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
258デフォルトの名無しさん:2012/10/26(金) 06:11:14.35
>>253
「無教養な専門馬鹿」が余程悔しかったんだろ。
だが、>>223の指摘は間違っていたのかも知れない。
正しくは「専門馬鹿」ではなく「正真正銘の馬鹿」だな。
259デフォルトの名無しさん:2012/10/26(金) 06:53:39.30
多分>>219は「専門馬鹿」という言葉の意味すら知らないと思う
260デフォルトの名無しさん:2012/10/26(金) 08:28:45.93
>>258
句読点理論には誤りがあった!wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
261デフォルトの名無しさん:2012/10/26(金) 08:31:53.00
>>259
句読点つけてないわけだからお前のほうが馬鹿だということになるな、なぜならばお前は句読点をつけていないから。詳しくは>>258の理論を勉強しろ。
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
262デフォルトの名無しさん:2012/10/26(金) 08:33:08.61
句読点でわかるからね、ぜーんぶわかるからね
263デフォルトの名無しさん:2012/10/26(金) 09:19:27.31
,.の話を勝手に句読点の有無にすり替えるあたり、
悔しさが滲み出てますなぁ。
264デフォルトの名無しさん:2012/10/26(金) 09:33:41.75
>>263
「,.」は句読点じゃないとでもいうつもりか!
句読点じゃないというのならなんだというんだ!
まぎれもなく句読点だ!
「、。」が句読点であることは明白だ!
だったら「,.」も句読点だ!
265デフォルトの名無しさん:2012/10/26(金) 10:34:20.36
>>264
お前、よっぽど頭が鈍いんだな。
266デフォルトの名無しさん:2012/10/26(金) 10:38:43.17
>>265
お前ほどじゃない
267デフォルトの名無しさん:2012/10/26(金) 10:41:13.66
頭の回転数は句読点から計算できるwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
268デフォルトの名無しさん:2012/10/26(金) 13:21:18.05
269デフォルトの名無しさん:2012/10/26(金) 16:15:06.38
>>268
中身を見たが、今の流れとは全然テーマが違う。
残念ながら却下。
270デフォルトの名無しさん:2012/10/26(金) 16:54:55.09
実行中のバッチを途中から書き換えて保存すると通常はエラーで止まりますが
これを止まらないようにする方法あったような気がするんですが自分の気のせいですかね?
271デフォルトの名無しさん:2012/10/26(金) 17:55:57.37
気の迷いだね
272デフォルトの名無しさん:2012/10/26(金) 20:17:43.61
書き換え前後で既存のコマンドのファイル先頭からの文字位置が同じだったらいいんだっけ?
273デフォルトの名無しさん:2012/10/27(土) 02:39:32.41
call とかの ラベル は8文字までと思っていたら、もっと長くてもちゃんと呼べた。
ラベル名を短くする努力はなんのために…… orz
274デフォルトの名無しさん:2012/10/27(土) 08:25:06.89
MSのヘルプやusageを信じてはいけない
275デフォルトの名無しさん:2012/10/27(土) 09:10:17.20
9文字以上のラベル名は8文字目までで判断されるとか個人ブログかなんかで見たことあるけど、
MS公式のヘルプやドキュメントってどこにあるの?
276デフォルトの名無しさん:2012/10/27(土) 09:52:09.60
>>275
Goto
http://technet.microsoft.com/ja-jp/library/cc756166(v=ws.10).aspx
│goto コマンドでは、ラベルの最初の 8 文字だけが使われます。

これかな。
277273:2012/10/27(土) 11:32:31.61
ラベルで9文字以上行けた件、恥を忍んで尋ねたい、
ひょっとして、FAQ だったりした?
278デフォルトの名無しさん:2012/10/27(土) 11:37:02.24
うぜ
279デフォルトの名無しさん:2012/10/27(土) 11:51:44.84
日本語ドキュメントを信用するな。FAQ中のFAQ中のFAQだよ。
http://technet.microsoft.com/en-us/library/cc756166(v=ws.10).aspx
280デフォルトの名無しさん:2012/10/27(土) 12:09:19.39
>>277
俺も知らなかった、というか気にしたことがない。

ちょっと気になったので、実機で確認したら 127文字までちゃんと判断してくれる。

ただ、ラベル名を 128文字以上にすると、cmd.exe がアプリケーションエラーで落ちる (w

環境:
 OS: Microsoft Windows XP [Version 5.1.2600]
 cmd.exe: 5.1.2600.5512
281デフォルトの名無しさん:2012/10/27(土) 15:27:34.68
>>279
XPの英語ドキュメントは8文字って言ってるんだよな…XP時代そうだったっけ?
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/goto.mspx?mfr=true
282デフォルトの名無しさん:2012/10/27(土) 16:36:59.76
cmdを虐めんなよwそんな大したもんじゃないんだからw
283デフォルトの名無しさん:2012/10/27(土) 17:03:54.14
でもなんか妙に機能拡張してるよね。cmdのくせに。
284273:2012/10/27(土) 18:33:06.00
れすあり

FAQですよね、やっぱし

20文字試して通常使用に困ることはないと思ってたけど、127文字までか。
確認どうもです。
285デフォルトの名無しさん:2012/10/27(土) 20:07:32.47
>>284
FAQは「日本語ドキュメントを信用するな」の方な。
286デフォルトの名無しさん:2012/10/28(日) 00:01:11.92
皆様こんばんは

どうかお力をお貸し下さい。

音楽ファイルのタグ情報を元に、
音楽ファイルをbatファイルにドラッグしたら
格納しているフォルダ名を変更するbatファイルを作りたいのですが
どのように記述すれば良いのでしょうか?

タグ情報
アーティスト 俺
アルバムタイトル 俺の作品
発売年 2012
拡張子 mp3 wave など色々

の音楽ファイルタグを参照しフォルダ名を

俺 - 2012 俺の作品 [mp3]

に変更したいなと思っています。

どうか、教えてください、よろしくお願いします。
287デフォルトの名無しさん:2012/10/28(日) 00:25:35.03
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
288デフォルトの名無しさん:2012/10/28(日) 00:56:32.37
バッチだけでできんのかそんなことw
289デフォルトの名無しさん:2012/10/28(日) 07:42:34.92
wmic /?
290デフォルトの名無しさん:2012/10/28(日) 14:16:38.59
うそばっか
291デフォルトの名無しさん:2012/10/29(月) 06:57:03.83
292デフォルトの名無しさん:2012/10/30(火) 00:36:26.92
すみませんが、お知恵を貸していただけないでしょうか。

■やりたいこと
 windows7で次のコマンドの実行結果の文字列を変数RESULTに設定する。
 "rplsinfo.exe" "TOKYO MX__番組 (1).ts" -d
 コマンドの実行結果 YYYY/MM/DD

■現在のスクリプト
for /f "usebackq tokens=*" %%a in (`%2 %1 -d`) do set RESULT=%%a
echo [%RESULT%]

■引数
%1は"C:\Users\山田太郎\Videos\TOKYO MX__番組 (1).ts"
%2は"rplsinfo.exe"

■実行結果
'rplsinfo.exe" "TOKYO' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
[]

お手数をおかけしてすみませんが、よろしくお願いいたします。
293デフォルトの名無しさん:2012/10/30(火) 08:10:39.69
バッチファイル 全角スペースでググれば何が問題になってるか解るよ
294デフォルトの名無しさん:2012/10/30(火) 11:47:32.44
>>292
> %1は"C:\Users\山田太郎\Videos\TOKYO MX__番組 (1).ts"
> %2は"rplsinfo.exe"

実際は%1にはダブルクオーテーション無しで
C:\Users\山田太郎\Videos\TOKYO MX__番組 (1).ts
が入ってると思うけどね。
forの前に
echo %2 %1 -d
とかやって実際にはどんなコマンドになってるのか見ればいいよ。
295デフォルトの名無しさん:2012/10/30(火) 22:28:30.94
>>293
ありがとうございました。
お蔭様でなんとか対策を検討できそうです。

>>294
ありがとうございました。
echo %2 %1 -d とやってみると、次のようにダブルクオーテーション付きで表示されました。
"rplsinfo.exe" "C:\Users\山田太郎\Videos\TOKYO MX__番組 (1).ts" -d
こちらの件はおそらく大丈夫だと思いますが、気になる点があればご指摘ください。
296デフォルトの名無しさん:2012/10/30(火) 22:55:15.22
知ったかしてみる

for /f "usebackq" in (``) の``の中で
コマンド本体となるrplsinfo.exeを""でくくるとマズイ
引数は""でくくっても大丈夫
297デフォルトの名無しさん:2012/10/30(火) 23:12:23.04
>>296
ありがとうございます、早速試してみました。
なんと!上手く行きました。
これでなんとか目的の物が作れそうです。
本当にありがとうございました。
298デフォルトの名無しさん:2012/10/31(水) 10:18:38.60
For文で変数の遅延展開を有効にする魔法のSetコマンド文ってなんでしたっけ!?
299デフォルトの名無しさん:2012/10/31(水) 10:23:16.11
>>132
これだっけ?あったかも!?さんくす!
300デフォルトの名無しさん:2012/10/31(水) 10:29:31.06
>>298
SETLOCAL ENABLEDELAYEDEXPANSION
301デフォルトの名無しさん:2012/11/03(土) 15:46:52.18
オプション無しのdirコマンドでは隠し属性やシステム属性は出力されませんがディレクトリも出力されてしまいます
そこで、ファイルのみを出力しようと、dir /a-dとしたら、今度はファイルのみではあるのの隠し属性やシステム属性まで出力されてしまいます
オプション無しのdirコマンドと同じフィルタレベルで出力するには、dirコマンドのオプションをどのように指定すれば良いのでしょうか?
また、
302デフォルトの名無しさん:2012/11/03(土) 15:50:18.23
dir /a-d-h-s
303301:2012/11/03(土) 15:52:06.04
文章が途中で切れました大変失礼致しました。

また、dir /aコマンドで隠し属性やシステム属性含めてファイルやフォルダ全て出力されている(っぽい)のですが、
dirコマンドのヘルプも見てもそうは書かれていないと思うのですがいかがでしょうか?
http://technet.microsoft.com/ja-jp/library/cc755121(WS.10).aspx
304デフォルトの名無しさん:2012/11/03(土) 16:15:04.06
>>303
なにがいかがですか?
305301:2012/11/03(土) 16:16:36.41
>>302
一つの/aオプション中に、-h-sやのように必要な数分の-を使えるとは知りませんでした
どうもありがとうございます。
306301:2012/11/03(土) 16:17:56.58
>>304
"dirコマンドのヘルプも見てもそうは書かれていない" equ "なに"
307デフォルトの名無しさん:2012/11/03(土) 16:20:33.27
>>306
お前あれだな、気持ち悪いな、ゲロ吐きそうなほど気持ち悪い、ゲロキモだな。
いかがですかってなに?参りましたといってほしいの?何を聞いてんの?いかがでしょうか?
308デフォルトの名無しさん:2012/11/03(土) 16:23:23.50
今日はいい天気なので部屋の窓を全開にしようと思うのですがいかがでしょうか?
309デフォルトの名無しさん:2012/11/03(土) 16:25:51.00
さっき買い物に出かけたときふんずけたウンチは犬のものだと思うのですがいかがでしょうか?
310デフォルトの名無しさん:2012/11/03(土) 16:27:25.97
いかがでしょうかフェスティバルが開催されていると聞いてやってきたのですがいかがでしょうか?
311デフォルトの名無しさん:2012/11/03(土) 16:27:33.77
dir /aは限定なしなんだからすべてだろ
dirはデフォルトでdir /a-h-sと同じだろ
312デフォルトの名無しさん:2012/11/03(土) 16:28:42.43
>>309
ごめんなさい!
すぐ片付けます。
313デフォルトの名無しさん:2012/11/03(土) 16:32:53.72
MSのドキュメントは話にならんだろ
2chのほうがましだろ
314デフォルトの名無しさん:2012/11/03(土) 19:58:15.53
>>303
いやそもそもそこのドキュメントに書いてあるやん

http://technet.microsoft.com/ja-jp/library/cc755121(WS.10).aspx
> If you use /a without specifying Attributes, dir displays the names of all files, including hidden and system files.
> Dir /a 属性 属性 を指定せずに/aを使用すると、非表示名を含むすべてのファイルとシステム ファイルが表示されます。
翻訳の改善提案(http://technet.microsoft.com/ja-jp/library/translation/edit/cc755121(v=ws.10).aspx?sentenceGuid=aadb1c0a-2984-5c0e-703d-6e90c492ebc6)
315デフォルトの名無しさん:2012/11/04(日) 07:12:40.75
robocopy "G:\\" "Z:\\G\\" /mir /mon:1 /tee /eta /log+:"R:\\ETC\\backup.log"

GドライブとZドライブにあるGフォルダを同期させたいのですが、一部のファイルで同期完了したのに「より新しい」と表示され何度もコピーされます
一度コピーしたら変更があるまでコピーしないにはどうすればいいんですか?あとGフォルダが隠しフォルダになってしまうのは何か関係ありますか?
316デフォルトの名無しさん:2012/11/04(日) 09:29:17.83
その robocopy とやらの作者に聞けよ。
317デフォルトの名無しさん:2012/11/04(日) 10:37:51.21
そのZドライブがFATだったり古いNASだったりするとタイムスタンプ精度が悪くて同期がうまくいってない可能性がある
/FFTオプションを付けてみたら?

>>316
robocopy はMS純正でVista以降の標準コマンドなんだが
318デフォルトの名無しさん:2012/11/04(日) 10:40:28.44
>>315
backup.logファイルにヒントがあるかもしれないから、コピペするか
ログファイル自体をどこかにうpしてもらえませんか?
319デフォルトの名無しさん:2012/11/04(日) 12:10:10.79
>>317
MS様に聞けばいいじゃないかw
320デフォルトの名無しさん:2012/11/04(日) 13:06:45.53
robocopyのGUIツールを作ったMSの中の人のブログのコメント欄にでも投稿してみたら?
http://blogs.technet.com/b/ken/archive/2009/05/16/richcopy-japanese.aspx
321デフォルトの名無しさん:2012/11/04(日) 13:19:53.32
>>320
わかったちょっと荒らしてくる
322デフォルトの名無しさん:2012/11/04(日) 13:20:18.51
>>317
/FFTオプションをつけたところ更新されないようになりました

>>318
何回もコピーしたためか、ログが300MB近く吐かれててメモリ足りずに開くこともできませんでした・・・
323デフォルトの名無しさん:2012/11/04(日) 13:58:34.95
>>316
robocopyを知らないシロート発見。
324デフォルトの名無しさん:2012/11/04(日) 16:07:27.43
rsync 使ってるから、robocopy なんて知りませんでしたが、それが何か?
325デフォルトの名無しさん:2012/11/04(日) 19:30:43.27
MS様に聞けない小心者ちゃんをいじめちゃダメぇ〜
326デフォルトの名無しさん:2012/11/05(月) 01:25:24.74
バッチ中で何かのコマンドを実行した時に今までの画面出力が
全角文字の部分だけ重複して

1 個個ののフファァイイルルををココピピーーししままししたた。。

みたいな感じになってしまうことがあるんだけど
これはいったいどういう理由でなってるの?
327デフォルトの名無しさん:2012/11/05(月) 01:26:32.81
echo だったかな
328デフォルトの名無しさん:2012/11/05(月) 01:29:00.70
ごめん適当ぶっこいたわからん
329デフォルトの名無しさん:2012/11/05(月) 02:16:21.93
ならん
330デフォルトの名無しさん:2012/11/05(月) 09:45:08.80
>>324
全然用途が異なるツールあげられても。w
どうせボケるなら、↓これくらいボケないと。

> OpenOfficeつかっているから、robocopy なんて知りませんでしたが、それが何か?
331デフォルトの名無しさん:2012/11/05(月) 10:20:05.81
WIN8 をつかているんですが、管理者権限を無効にするコマンド誰か知りませんか?
XPでもいいです。
332デフォルトの名無しさん:2012/11/05(月) 22:19:54.07
>>327
tee
333デフォルトの名無しさん:2012/11/05(月) 23:36:07.45
>>330
そんなボケはいらんよ (w
334デフォルトの名無しさん:2012/11/06(火) 00:13:18.94
そんなツッコミはいらんよ (w
335デフォルトの名無しさん:2012/11/06(火) 00:50:22.88
ひょっとして >>330 って、マジでツッこんでたの?
まさかね (w
336326:2012/11/06(火) 02:13:17.13
どうもmediainfoの古い版を起動したときに
一瞬コードページが変わるような表示になり元に戻った時に
>>326のようになってしまうようだ。

最新の版では起きないみたい。
337デフォルトの名無しさん:2012/11/06(火) 11:12:39.16
.batに限らないが、Win上で動くスクリプト関連のエディタは、Sakuraが無難?
Ctrl+Bで実行とか、Ctrl+F5のコマンドエミュレートとか便利っぽいんだが、
他にいいのあったらおせーて。
338デフォルトの名無しさん:2012/11/06(火) 15:56:19.51
さあ?
実行はtest_hoge.bat $(Path)でもあれば十分だし何でも良いんじゃないの
339デフォルトの名無しさん:2012/11/08(木) 08:55:28.56
findstr や find だと検索に一致した文字列のある行を表示しますが、
検索に一致した部分だけを表示してくれるOS標準のコマンドってありませんか?
340デフォルトの名無しさん:2012/11/08(木) 14:28:37.54
>>339
意味が解らん
具体例か目的を書いた方がいい
341デフォルトの名無しさん:2012/11/08(木) 15:41:48.76
findstr pattern file >nul 2>nul && echo pattern
342デフォルトの名無しさん:2012/11/08(木) 16:06:39.78
>>340
grep で言うところの -o オプションに相当することが可能な検索(切り出し)です。

例えば

<a href="http://www.amazon.co.jp/何か1">その1</a><a href="http://www.amazon.co.jp/何か2">その2</a>
<br>
<a href="http://www.amazon.co.jp/何か3">その3</a>

というような行を含むファイル test.html で

>findstr /R /C:"href=\"http://[^^\"]*" test.html

で検索をかけるとヒットした部分を含む行全体が丸ごと返ってきますが、 yagrep 等なら

>yagrep -o "href=\"http://[^^\"]*\"" test.html
href="http://www.amazon.co.jp/何か1"
href="http://www.amazon.co.jp/何か2"
href="http://www.amazon.co.jp/何か3"

と行全体ではなくヒットした部分のみ個別に切り出せるので。


>>341
それだと基本的に固定のパターンにしか対応が難しいような。
勘違いだったらすみません。

バッチを捨てて wsh? か vbs? に手を付けたほうがよいでしょうか?
343デフォルトの名無しさん:2012/11/08(木) 17:19:03.16
http://toro.2ch.net/test/read.cgi/win/1243134619/
で聞くとバッチで作ってくれるよ
344デフォルトの名無しさん:2012/11/08(木) 18:09:24.25
>>342
バッチにCScript埋め込まばいいじゃん。
345デフォルトの名無しさん:2012/11/08(木) 20:15:10.89
色々ありがとうございます。

バッチと合体?させる方が簡単なのか、難しくなるのかすら見当ついてませんが、
作成依頼をする事でもないので、とりあえず vbs のいろはから始めてみます。
346デフォルトの名無しさん:2012/11/09(金) 01:28:55.10
yagrepでいいんじゃないのかw
347デフォルトの名無しさん:2012/11/09(金) 16:33:13.17
お題読めないメクラはレス禁止。
> OS標準のコマンド
348デフォルトの名無しさん:2012/11/10(土) 03:19:02.96
OS標準のコマンド ってPOSIX 1003.1か?
349デフォルトの名無しさん:2012/11/10(土) 10:07:49.71
このスレでそういう低能な質問するか?
350デフォルトの名無しさん:2012/11/10(土) 11:06:09.83
バッチファイルごときで低脳とか有能とか関係あるのかw
351デフォルトの名無しさん:2012/11/10(土) 13:01:24.30
無能がバッチやると、バッチじゃ不適切なことまでバッチでやろうとするよ
352デフォルトの名無しさん:2012/11/10(土) 15:41:36.07
「それでもバッチでやってみようず!」ってスレだと思ってみているけど、違うの?
353デフォルトの名無しさん:2012/11/10(土) 16:09:16.23
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。

※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
354デフォルトの名無しさん:2012/11/10(土) 18:03:06.28
OS付属のコマンドだな
標準なんて使うなよな
355デフォルトの名無しさん:2012/11/10(土) 19:04:29.45
バッチ内のforコマンドでusebackqを使い、実行ファイルへのパスに空白を含むコマンドを実行させたいのですが

for /F "usebackq" %%A in (`c:\path to\command.exe`) do echo %%A

のようにしてもうまく行きません
引数も食わせたいのですが、どう記述すべきでしょうか?
356デフォルトの名無しさん:2012/11/10(土) 19:05:20.20
for /F "usebackq" %%A in (`"c:\path to\command.exe"`) do echo %%A
357デフォルトの名無しさん:2012/11/10(土) 19:14:25.87
>>354
その程度のあいまいさを処理できない人工無脳はお引き取りください。
358デフォルトの名無しさん:2012/11/10(土) 19:18:34.59
for /F "usebackq" %%A in (`call "c:\path to\command.exe"`) do echo %%A
359デフォルトの名無しさん:2012/11/10(土) 19:21:43.50
>>356
速攻の回答ありがとうございます
これで引数なしでコマンドの実行が出来ることは確認できたのですが
引数の与えることがどうもうまくできません
引数をダブルクォーテーションで括ったり、くくらなかったり、バッククォートの外に出してみたり
色々とやってみたのですが、、

お手数かけますが、引数を与える方法を教えてください
よろしくお願いします
360デフォルトの名無しさん:2012/11/10(土) 19:25:40.44
ダメだったのを書けよ。
361デフォルトの名無しさん:2012/11/10(土) 20:54:36.84
>色々とやってみたのですが、、
for /F "usebackq" %%A in (`call "c:\path to\command.exe" 引数`) do echo %%A
これはやってないんかい?
362デフォルトの名無しさん:2012/11/10(土) 21:11:13.63
お世話になりました

for /F "usebackq" %%A in (`"c:\path to\command.exe" pattern a.txt`) do echo %%A

上記でうまくいきましたが、当初うまく行かなかったのは
利用する(外部)コマンドによって挙動が異なるからのようです
使いたかったコマンドはgrepで、下記の物を試しました

うまく行かないコマンド
 http://www.steve.org.uk/Software/grep/
うまく行ったコマンド
 http://geoffair.net/unix/grep.htm

ただ、うまくいった方のコマンドでも、下記のようにコマンドへのフルパスに加え
引数の方をさらにダブルクウォートで括るとエラーになってしまいました

for /F "usebackq" %%A in (`"c:\path to\command.exe" "a.txt" `) do echo %%A

ありがとうございました
363デフォルトの名無しさん:2012/11/10(土) 21:14:46.12
訂正

× for /F "usebackq" %%A in (`"c:\path to\command.exe" "a.txt" `) do echo %%A
○ for /F "usebackq" %%A in (`"c:\path to\command.exe" "pattern" "a.txt"`) do echo %%A 等
364デフォルトの名無しさん:2012/11/10(土) 21:30:10.20
for /F "usebackq" %%A in (`""c:\path to\command.exe" "pattern" "a.txt""`) do echo %%A 等
365デフォルトの名無しさん:2012/11/10(土) 21:49:19.70
for /F "usebackq" %%A in (`call "c:\path to\command.exe" "pattern" "a.txt"`) do echo %%A 等
366デフォルトの名無しさん:2012/11/11(日) 01:46:41.94
>>356
>>357
OSのバージョンやEditionによってはコマンドの有無が違うから、
標準ではないというのは正しい。けど特別拘った表現は不要だけどw
homeエディションにopenfilesが無くて話が頓挫とか稀にある。稀にね。そう、homeならね。
367デフォルトの名無しさん:2012/11/11(日) 02:05:37.28
>>352
確かにWindows板に比べればその気は強いが
実用の場合はそこの見極めは最低限いるからな
368デフォルトの名無しさん:2012/11/11(日) 05:10:16.03
Q.環境変数に4桁の数字を代入したいのですが、

set /a keisan=0185
echo %keisan%

こうするとうまくいきません。
どうにかして0185を185として代入させることはできませんか。
ご教示ください。
369デフォルトの名無しさん:2012/11/11(日) 06:08:02.47
一桁ずつとりだして
ゼロだったら削除の上で結合することにしました
ほんとうにすみませんでした

%[環境変数]:~[オフセット(位置)],[文字数]%
370デフォルトの名無しさん:2012/11/11(日) 10:42:15.62
set /a で最初の数字が0の時は8進数、xなら16進数として認識される。

最初が0の10進数として認識させたいなら、最初の0を削る以外にも
桁数が分かってることを前提として

set hoge=0185
set fuga=1%hoge%
set /a keisan=fuga - 10000

等とやったりする。
371デフォルトの名無しさん:2012/11/11(日) 15:44:19.77
バッチファイルでLTrim()する。
http://scripting.cocolog-nifty.com/blog/2011/07/ltrim-e511.html
372デフォルトの名無しさん:2012/11/14(水) 23:02:35.98
テキストファイルがいくつか有るとして、
そのすべてのファイル名の先頭に(abc)とつけるとしたらどうやればいいですかね?
ren *.txt (abc)*じゃできないみたいなのでどなたかご教授お願いします。
373デフォルトの名無しさん:2012/11/14(水) 23:10:29.28
for %i in (*.txt) do ren %i abc%i
374デフォルトの名無しさん:2012/11/14(水) 23:56:17.51
recursion起こすぞ
375デフォルトの名無しさん:2012/11/14(水) 23:57:30.66
for /f "delims=" %i in ('dir /b *.txt') do ren %i abc%i
376デフォルトの名無しさん:2012/11/14(水) 23:58:38.42
ファイル名に空白あったら?
377デフォルトの名無しさん:2012/11/14(水) 23:59:34.27
for /f "delims=" %i in ('dir /b *.txt') do ren "%i" "abc%i"
378デフォルトの名無しさん:2012/11/15(木) 00:01:06.83
ファイル名にハングルとか非JIS文字あったら?
379デフォルトの名無しさん:2012/11/15(木) 00:01:49.70
wsh使え
380デフォルトの名無しさん:2012/11/15(木) 06:20:04.62
set hoge=0185
set fuga=10000%hoge%
set /a keisan=fuga %% 10000
381デフォルトの名無しさん:2012/11/15(木) 06:34:43.72
>>380
0 除算エラーです。
382デフォルトの名無しさん:2012/11/15(木) 07:33:02.46
>>381
涙拭くハンカチ用意しとけよw
383デフォルトの名無しさん:2012/11/15(木) 21:49:50.80
>>377
ありがとうございます。こんなのがスラっと欠けるなんて凄いですね。
/fオプションの使い方がよくわからないので、もし良かったらこのコマンドの解説を軽くしてもらえませんか?
384デフォルトの名無しさん:2012/11/15(木) 22:00:37.32
for/?
385デフォルトの名無しさん:2012/11/16(金) 00:10:19.52
forを完璧に使いこなせたらバッチの何割を会得したと言えるんだろうと思うくらい多機能だよなあ
386デフォルトの名無しさん:2012/11/16(金) 03:31:23.73
set keisan=0185
set /a keisan=2*1%keisan%-2%keisan%
387デフォルトの名無しさん:2012/11/16(金) 16:45:22.44
>>385
完璧に使いこなせたらって、そもそもforの何割を会得したんだ?
388デフォルトの名無しさん:2012/11/16(金) 17:07:39.63
完璧が100%以外の意味を持つとは知らなんだ
389デフォルトの名無しさん:2012/11/16(金) 17:41:10.60
日本語も何割を会得したんだ?
390デフォルトの名無しさん:2012/11/16(金) 19:23:28.93
>>378
cpをutf8にすりゃいいかもよ
391デフォルトの名無しさん:2012/11/17(土) 00:18:21.14
>>386
お前頭いいな、感動した。
392デフォルトの名無しさん:2012/11/17(土) 02:09:08.57
for /F はトークン切り出しとかでCSVの簡易解析とかに使ったかな?
393デフォルトの名無しさん:2012/11/17(土) 03:24:27.06
昔for /F の括弧中に全角文字があると引数が尻切れになるバグがあったな
WinXP以降は直ったみたいだが
394デフォルトの名無しさん:2012/11/19(月) 21:35:20.83
代わりに他のバグがあります
395デフォルトの名無しさん:2012/11/20(火) 00:16:50.19
@Echo Off & SetLocal EnableDelayedExpansion

Echo ■Params: 0 " " 6
Call :FuncHoge 0 " " 6
Echo ■Length: 12345678901234567890
Echo ■Return: %Return%
GoTo EOF
:--------------------------------
:FuncHoge
Set X=1 & Set Z=
For /L %%I In ( 1, 1, %3 ) Do (
 Echo ■ Check: !X!
 If /I !X! GEQ 10 (
  If /I %1 LSS !X! (
   Set Z=%~2!Z!
  )
 )
 Set /A X=!X!*10
)
Set Return=!Z!%1
GoTo END
:--------------------------------
:EOF
Pause>Nul
:END

数値の桁合わせに書いたんだが最初から文字列にすればよかったと後悔記念
ご指摘plz
396デフォルトの名無しさん:2012/11/20(火) 05:30:46.38
えーと何がしたいのかよくわからんのだが

@echo off
setlocal enabledelayedexpansion
call :FuncHoge 0 " " 6
Echo ■Length: 12345678901234567890
Echo ■Return: %Return%
pause
goto :eof

:FuncHoge
for /L %%i in (1,1,%~3) do set spacer=%~2!spacer!
set Return=%spacer%%~1
set Return=!Return:~-%~3!
goto :eof

こういうことでいいんかな・・・?
397デフォルトの名無しさん:2012/11/20(火) 17:11:20.47
PC起動時にコマンドプロンプトをスタートアップより起動してPINGを自動で送るようにしたいです。
コマンドの内容はこれです「ping *.*.*.* -t -l 2000」*はipが入ります
CMDのショートカットのプロパティをいじるだけでは無理でしょうか?
バッチファイル作成が必要なのでしょうか?
どなたかご教授願います。
398デフォルトの名無しさん:2012/11/20(火) 18:02:05.68
バッチファイル作ってスタートアップに突っ込んどけばいいんじゃないの
それかschtasks使うとか
399デフォルトの名無しさん:2012/11/20(火) 18:14:53.85
ショートカットのリンク先を
%windir%\system32\cmd.exe /c ping 127.0.0.1 -t -l 2000

たぶん作業フォルダをsystem32とかじゃなく適当な場所に指定する必要あり
400デフォルトの名無しさん:2012/11/20(火) 18:15:57.50
ショートカットのリンク先を
ping 127.0.0.1 -t -l 2000
401デフォルトの名無しさん:2012/11/20(火) 18:23:19.61
みなさん短時間の間にレスしていただきありがとうございます。
>>399さんの方法で上手くいきました。
本当にありがとうございました。
402デフォルトの名無しさん:2012/11/20(火) 18:54:09.03
cmdよぶなら%ComSpec%
403デフォルトの名無しさん:2012/11/20(火) 19:17:29.34
よばんでいい
404デフォルトの名無しさん:2012/11/20(火) 19:19:01.51
んなこたわかってる
405デフォルトの名無しさん:2012/11/20(火) 19:24:06.67
/cって要らないんじゃないの
406デフォルトの名無しさん:2012/11/20(火) 19:30:01.77
んなこたわかってる
407デフォルトの名無しさん:2012/11/20(火) 19:30:03.21
よばんでいい
408デフォルトの名無しさん:2012/11/20(火) 19:35:55.84
おばんです
409デフォルトの名無しさん:2012/11/21(水) 00:54:48.04
>>396
そうです!まさにそれです!!!
今回 set /? を何度も読んだのに気づきませんでした。
恥ずかしい。感謝。また醜態さらしに来ます。恩に着ます。
410デフォルトの名無しさん:2012/11/22(木) 15:19:27.80
外部からファイルリストを読み込んで、リストのファイルにアクセスしたいんですが。
半角の「!」が含まれていると、アクセスできなくなります。
読み込み時にエスケープさせることはできないですか?


for /f delims^=^ eol^= %%A in (filelist) do (
echo "%%~A"
)
411410:2012/11/22(木) 15:21:21.05
追記
サブルーチン、他コマンドの引数にしたいのですが失敗するんです。
412デフォルトの名無しさん:2012/11/22(木) 18:53:46.77
できません
413デフォルトの名無しさん:2012/11/24(土) 17:47:47.88
遅延展開してんじゃねーの?
414デフォルトの名無しさん:2012/11/24(土) 18:59:11.33
じゃあこれでいいんじゃね
for /f delims^=^ eol^= %%A in (filelist) do (
setlocal disabledelayedexpansion
echo "%%~A"
endlocal
)
415410:2012/11/26(月) 11:07:44.29
サンクス
setlocal disabledelayedexpansionで読み込めました
416デフォルトの名無しさん:2012/11/28(水) 17:47:17.18
Win 8 Pro x64 を使用しています。
バッチ操作で netsh wlan show interfaces コマンドを起動し、
取得される SSID を変数に取りこむには、どのようにすれば良いのでしょうか。
417デフォルトの名無しさん:2012/11/28(水) 18:56:45.35
昔なら ssid.bat を作っておいて出力をダイナミックに実行とかアブナイことしてるやつもいたけど
今はforがある。いい時代だ。
418416:2012/11/29(木) 23:45:25.64
>>417 これでできました。ありがとうございました。
for /f "delims=: tokens=2" %%i in ('netsh wlan show interfaces ^|find /i " SSID"') do set p=%%i

ちなみに次の行で set p=%p:~1% をしてスペースを削除させてるのですけど、
これを set p=%%i の時点で行うことは可能なのでしょうか。
419デフォルトの名無しさん:2012/12/02(日) 00:25:56.11
教えてください。

ミュージックプレイヤー(foobar)起動時に自動でバッチファイルを実行させようと四苦八苦しています。

どうすれば良いでしょうか?
アドレスお願いいたします。
420デフォルトの名無しさん:2012/12/02(日) 00:36:55.55
バッチファイルでfoobar起動
421デフォルトの名無しさん:2012/12/02(日) 00:42:34.00
>>420
レスありがとうございます

なるほど!

元々このような事を考えたのは、
立ち上げ時にfoobarフォルダにある
プレイリストファイルを自動で削除出来ないか?と思ったからです。
foobar起動のバッチファイルにプレイリスト削除も記述してしまえば良いのですね。

早速挑戦してみます。
ありがとうございました!
422デフォルトの名無しさん:2012/12/02(日) 02:14:37.94
msecぞろ目率が高いのは板の特性なのか?
423デフォルトの名無しさん:2012/12/02(日) 02:15:22.54
くっそwwww
424デフォルトの名無しさん:2012/12/02(日) 12:50:19.41
がれき受け入れ反対の男ら4人逮捕 大阪府警

がれき受け入れに抗議するグループの男3人と無職の女(33)の計4人を現行犯逮捕した。
男3人はいずれも黙秘、女は「納得いかない」と容疑を否認している。
府警によると、逮捕されたのは、外国人登録証明書から韓国籍の男(45)らとみられる。


仲間を返してwwwwwww
http://livedoor.blogimg.jp/kikuemonjp010/imgs/6/2/627735f0.jpg


怒りの大阪府民】 不当逮捕した仲間を返せ 【これが関西魂や!】 1/6
http://www.nicovideo.jp/watch/sm19271298
 
425デフォルトの名無しさん:2012/12/14(金) 11:32:53.48
%name%を8:3の名前に変更したいです。
どうすればいいですか?
426デフォルトの名無しさん:2012/12/14(金) 18:57:15.91
for %I in ("%name%") do ren "%~I" %~snxI
427デフォルトの名無しさん:2012/12/14(金) 21:31:01.17
>>426
ありがとうございました。
428デフォルトの名無しさん:2012/12/19(水) 22:57:54.95
setlocal enabledelayedexpansion
set FOLDER=%USERPROFILE%\My Documents\My Music\Ripping
for /F "delims=\ tokens=1-5,6*" %%a In ( 'dir /S /B "%FOLDER%"' ) do (
    set FULLPATH=%%A\%%B\%%C\%%D\%%E\%%F\%%G
    echo !FULLPATH!
)

tokens=1-5,6* の「1-5」と「6*」をそれぞれひとつの変数で表せないでしょうか。
%%A\〜%%F\まで、ひとつひとつ書かないと駄目ですかね?
tokens=1*,6* という書き方は駄目でした。。
429デフォルトの名無しさん:2012/12/19(水) 23:49:54.34
%%~pA みたいに展開するとか。
430デフォルトの名無しさん:2012/12/21(金) 23:06:40.26
できないよw
431デフォルトの名無しさん:2012/12/22(土) 07:22:27.67
move.exeのありかを教えてください。 起動できるのに存在がわかりません。 隠しファイルも探しました。
432デフォルトの名無しさん:2012/12/22(土) 16:53:13.92
copyと同じところw
433デフォルトの名無しさん:2012/12/22(土) 17:08:25.06
move.txt /?
434デフォルトの名無しさん:2012/12/22(土) 19:04:02.04
where move
435デフォルトの名無しさん:2012/12/22(土) 19:22:27.95
$> which move
fuck you.
$>
436デフォルトの名無しさん:2012/12/22(土) 19:30:12.95
where ahobaka
>>435
437デフォルトの名無しさん:2012/12/22(土) 19:39:12.86
www.google.co.jp/search?q=>436

もしかして "まぬけ"
438デフォルトの名無しさん:2012/12/22(土) 19:48:09.43
where "まぬけ"
>>435
439デフォルトの名無しさん:2012/12/22(土) 19:51:28.93
この流れは・・・・・負ける・・・・っっ!!!
440デフォルトの名無しさん:2012/12/22(土) 19:53:06.01
おとりこみちゅうすみません
コマンドプロンプトから管理者として実行するにはどうすればよいすか?
441デフォルトの名無しさん:2012/12/22(土) 21:53:21.21
>>440
”コマンドプロンプトから管理者として実行”でググればいいじゃんない?
442デフォルトの名無しさん:2012/12/22(土) 22:36:25.92
ぐぐってもなさそうだが?
3番目に外部ソフト利用があったけどわざわざ使うか
443デフォルトの名無しさん:2012/12/22(土) 22:44:18.33
>>442
runas
ろくにググれもしないお前は死んで詫びろ。
スレが汚れる
444デフォルトの名無しさん:2012/12/22(土) 22:45:35.05
runasじゃねーだろバカ
445デフォルトの名無しさん:2012/12/22(土) 22:49:46.79
バカはスルーで
446デフォルトの名無しさん:2012/12/22(土) 22:51:34.67
ルナス!
447デフォルトの名無しさん:2012/12/22(土) 22:51:56.27
こいつはバカだな
448デフォルトの名無しさん:2012/12/22(土) 22:53:44.06
ばかわだまってろ
449デフォルトの名無しさん:2012/12/22(土) 22:59:10.25
runasなんてコマンドねーよ
443はバカだね
450デフォルトの名無しさん:2012/12/22(土) 23:05:20.54
みんなにバカ呼ばわりされて443涙目wwww
451デフォルトの名無しさん:2012/12/23(日) 00:33:13.23
runasはあるけどelevationとはちがうわなwバカにはわからんだろうがw
452デフォルトの名無しさん:2012/12/23(日) 00:34:08.93
で、elevationを外部ソフトなしでやれんのか?
453デフォルトの名無しさん:2012/12/23(日) 02:07:02.76
>>431
where /r \ move.exe では
Could not find move.exe

になります。copy.exe copy.com でも同様です。

徹底的に検索しても、見つかりません。

皆さんは、本当に存在場所を具体的に示すことができているのでしょうか?

かなり生意気な物言いになってしまいますが、具体例を示していただけると助かります。
454デフォルトの名無しさん:2012/12/23(日) 02:21:15.59
〜〜になります。

だけでいいんだがどうして愚者はこうも挑発が好きなのか
455デフォルトの名無しさん:2012/12/23(日) 02:43:44.60
move.exeならオレの隣で寝てるよ
456デフォルトの名無しさん:2012/12/23(日) 08:28:39.87
>>453
xcopy, findstr, replaceあたりはexeがあるけど、copy, move, renameあたりは検索してもexeが無いね。
ちなみに巨大ファイルをmoveコマンドで移動中にタスクマネージャを確認するとmove.exeなんて出てこない。(xcopyコマンドだとxcopy.exeが出てくる)
その代わりにcmd.exeのCPU使用率が上がるから、moveコマンドはcmd.exeに内包されてるんだと思うよ。
457デフォルトの名無しさん:2012/12/23(日) 09:08:24.00
start move.exe
そんなもの無いのがすぐ分かるだろw
458デフォルトの名無しさん:2012/12/23(日) 09:46:18.63
今の人間に内部コマンドと外部コマンドと言っても通じんのだろうな…
459デフォルトの名無しさん:2012/12/23(日) 11:43:17.57
逆に古いユーザはDOSのMOVE.EXEを記憶してるから勘違いする
460デフォルトの名無しさん:2012/12/23(日) 12:13:25.51
冬休み初日としてはまずまずの流れ。
461デフォルトの名無しさん:2012/12/23(日) 14:10:11.21
move.exeなんて無いのに

move.exe /?

ってやるとヘルプが表示されるね。訳わからん・・・
462デフォルトの名無しさん:2012/12/23(日) 15:17:39.19
>>433 も書いてるけど、move.gif とか move.xxx でも表示されるよ。
463デフォルトの名無しさん:2012/12/23(日) 18:53:25.22
内部コマンドかどうかは>>433で分かるってことよ
464デフォルトの名無しさん:2012/12/23(日) 18:56:03.43
dir.exe *
465デフォルトの名無しさん:2012/12/23(日) 18:57:20.66
内部コマンドかどうかは

"move" /?

だな
466デフォルトの名無しさん:2012/12/23(日) 19:00:11.40
set PATHEXT=;
move /?
だろ
467デフォルトの名無しさん:2012/12/23(日) 22:45:54.68
>>465の勝ち
468デフォルトの名無しさん:2012/12/23(日) 23:26:58.89
>>465
xcopyやfindstrでも同じように出るぞ
469デフォルトの名無しさん:2012/12/23(日) 23:50:04.07
>>468
あほう?
470デフォルトの名無しさん:2012/12/24(月) 00:54:57.00
だな
471デフォルトの名無しさん:2012/12/24(月) 03:04:46.17
>>469-470
お前らがWin7使ったことないというのはわかった。

>>465で違う結果になるのはXPでは確認、7では同じ。
472デフォルトの名無しさん:2012/12/24(月) 10:27:05.61
でたらめのコマンド名でも同じエラーだし
473デフォルトの名無しさん:2012/12/24(月) 10:57:47.53
Win7では
move. /? と xcopy. /? は違うのか?
474デフォルトの名無しさん:2012/12/24(月) 14:27:35.04
Win7では
"move" /? 外部だけ検索
move. /? 内部だけ検索
475デフォルトの名無しさん:2012/12/31(月) 15:15:27.57
初心者〜管理者まで必読!コマンドラインが消えた
476デフォルトの名無しさん:2012/12/31(月) 20:32:30.63
cmd.exe や PowerShell ですが
System32 と SysWOW64 にあるんだけど
どっちを使えばいいの?
477デフォルトの名無しさん:2012/12/31(月) 21:08:29.78
64bitをつかいたければ32
32bitをつかいたければ64
478デフォルトの名無しさん:2012/12/31(月) 21:10:25.52
右折したければ左にハンドルを回す
左折したければ右にハンドルを回す
みたいな
479デフォルトの名無しさん:2012/12/31(月) 22:14:02.12
サンクス
System32 に 64 ビットのバイナリがあるのか
480デフォルトの名無しさん:2012/12/31(月) 23:50:43.88
それは64bitからの場合だよ
32bitからだとまたちがうんよ
481デフォルトの名無しさん:2013/01/01(火) 00:00:05.49
32bit から 64bit なんて、呼べたっけ?
482デフォルトの名無しさん:2013/01/01(火) 00:09:19.40
呼べるにゃ
483デフォルトの名無しさん:2013/01/01(火) 02:44:30.56
32bitから64bit呼ぶ場合はSysnative
484デフォルトの名無しさん:2013/01/02(水) 11:58:44.24
>>475
スレ立ってからレス数が伸び悩んでいたのでDAT落ちしたのか。
お互い9スレ目まで来ていたのにな。
「コマンド」「DOS」ぐらいでしか引っかからないスレタイが一番の問題だったな。
こっちは「スクリプト」「バッチ」「bat」「cmd」とかで引っかかるから断然有利。
485デフォルトの名無しさん:2013/01/02(水) 12:54:52.91
>>483
64bit版のcmd.exeを管理者としてコマンドラインから実行したいのだけど、
%windir%\sysnative\cmd.exeを管理者特権でコマンドライン実行するにはどうしたらいいの?
486デフォルトの名無しさん:2013/01/02(水) 14:52:57.11
そのコマンドラインは32/64どっちなんだよお
487デフォルトの名無しさん:2013/01/02(水) 16:06:15.80
>>486
わかりません
64ビットOSで「ファイル名を指定して実行」した場合を想定してはいます
488デフォルトの名無しさん:2013/01/02(水) 16:48:49.20
UTF8で保存されたテキストファイルがあるんですが、BOM有なのかBOM無なのかを判断する方法はありますか?
コマンドでなくてもいいんですが、Windowsの標準機能だけで判断したいのです。
489デフォルトの名無しさん:2013/01/02(水) 17:10:21.21
「バッチファイルだけで、UnicodeLE や UTF-8 の BOM を除去する。」
これを使えば前後のファイルを比較して違ってれば有と分かるな
490488:2013/01/02(水) 18:25:55.57
自己レスです。
DEBUGコマンドでテキストファイルをバイナリ表示し、
先頭2バイトが「FF FE」(ビッグエンディアンの場合は「FE FF」)であるか否かで
BOMの有無が確認できました。

>>489
ありがとうございます。
でもその方法はチトめんどいです (^_^;)
491デフォルトの名無しさん:2013/01/02(水) 19:03:03.41
>>490
UTF-8のbomのバイト列は「EF BB BF」なんだけど、
UTF-8で保存されたテキストファイルを調べたいんじゃなかったの?
492デフォルトの名無しさん:2013/01/02(水) 19:59:35.85
先頭文字を調べればいいだろ
493デフォルトの名無しさん:2013/01/02(水) 20:21:51.89
先頭4文字が����か調べればいい
494デフォルトの名無しさん:2013/01/04(金) 00:23:10.23
for文中にカウントアップして進捗状況がわりにechoさせてるんだけどカウントが多いと今までの表示が凄い勢いで上にぶっ飛んでいくんだよ
何とか1行の中でカウントアップしたいんだけどバッチだけじゃ無理かな
495デフォルトの名無しさん:2013/01/04(金) 00:32:29.38
LFだすからだろ
CRにしとけ
496デフォルトの名無しさん:2013/01/04(金) 00:58:37.83
>>494
遅延展開で、変数に入れて、clsして、echoとか
497デフォルトの名無しさん:2013/01/04(金) 01:03:01.82
set /p hoge=hogehoge <nul
498デフォルトの名無しさん:2013/01/04(金) 01:22:48.68
<nulは知らなかった。ありがとう。(横からだケド)
SetLocal EnableDelayedExpansion
for /L %%a In (1,1,9) do (
  :cls
  set /A b=!b!+1
  set /P b=!b!<nul
  pause>nul
)
499デフォルトの名無しさん:2013/01/04(金) 01:50:05.74
ありがとう
正直お前らが何言ってるのかさっぱりだからちょっと勉強してくる
500デフォルトの名無しさん:2013/01/04(金) 08:55:30.30
やっと分かったすげー、バッチだけでプログレスバーできるとは
501デフォルトの名無しさん:2013/01/04(金) 12:28:51.75
>>498
aが既にあるのにbをインクリメントする必要なくね?
502デフォルトの名無しさん:2013/01/04(金) 17:40:13.57
引用

コマンドプロンプトやバッチファイルで、環境変数に改行文字(CR)を入れて使う。

環境変数に改行文字(CR)を入れる。
名 の unicode が 540D、これをシフトJISで読むと、0D 54 つまり、CR+T であることを利用して、CR を抜き出します。

setlocal enabledelayedexpansion
for /f "delims=" %%1 in ('cmd /u /c echo;名') do (
set CR=%%1
set CR=!CR:~0,1!
)

改行文字(CR)を使うときは、環境変数を遅延展開します。

echo aaa!CR!bbb
503デフォルトの名無しさん:2013/01/04(金) 17:47:55.15
>>493
set /p x= < 対象ファイル
if "%x:~0,4%"=="����" (echo BOM有) else echo BOM無
504デフォルトの名無しさん:2013/01/04(金) 22:20:24.40
>>501
aはforループのダミーですしおすし
505デフォルトの名無しさん:2013/01/04(金) 22:23:03.35
for /f %%i in ('"cmd /k prompt $h <nul"') do set bs=%%i
for /l %%i in (0,10,100) do @(ping -n 2 0 >nul
set /p=%bs%%bs%%bs%%%i%%<nul)
506デフォルトの名無しさん:2013/01/05(土) 04:20:00.46
<nul
に、へー、と思ってググったら

for /L %%i in (1,1,80) do (
ping -n 1 127.0.0.1 >nul
set /P <nul =#
)

でプログレスバーっぽくできることに増々、へー、となった。
507デフォルトの名無しさん:2013/01/06(日) 23:34:29.16
win764bitで、bluetoothアダプタの無効→有効をバッチファイルでできますか?

スリープ復帰したときbluetoothマウス見失うことが頻発してて
いつも手動で画面右下のアイコンから、bluetoothアダプタの無効→有効してます。
508デフォルトの名無しさん:2013/01/07(月) 00:08:11.46
ttp://vok.paburica.com/index.php?WindowsTips
の、デバイスの有効・無効をコマンドプロンプトから行いたい
にそれらしい方法はあるな
URLは直接貼れなかった
509デフォルトの名無しさん:2013/01/07(月) 17:04:07.31
devcon.exe
510デフォルトの名無しさん:2013/01/08(火) 21:22:07.64
デブゴン?
511デフォルトの名無しさん:2013/01/09(水) 01:03:07.71
>>507 です

>>508
>>509 を参考に試した結果、思ったとおりのモノができました

ありがとうございます
512デフォルトの名無しさん:2013/01/09(水) 22:42:43.43
254 : デフォルトの名無しさん[sage] : 投稿日:2011/10/31 06:25:29
hogehogeという名前のフォルダを右クリックの「送る」に登録したバッチファイルに送ると、
WinRARで圧縮すると同時に圧縮したファイル名の先頭にその時の日付と時刻を
「(yy-mm-dd_hh-nn) hogehoge.rar」
このように追加したいのですがどういう書き方をすれば良いでしょうか?

255 : デフォルトの名無しさん[sage] : 投稿日:2011/10/31 07:16:57
cd /d "%~dp1"
set "ymdhm=%date:~2,2%-%date:~5,2%-%date:~8,2%_%time:~0,2%-%time:~3,2%"
set "path=%path%;C:\Program Files\WinRAR"
winrar a "(%ymdhm%) %~nx1.rar" "%~nx1"

前スレでこのようなバッチファイルを作って頂いたのですが、
XPではうまく動作していたんですがWin7 64bitに移行してから、
複数のファイルをバッチファイルに送ると、ひとつのファイルしか圧縮されません。
すみません、教えて下さい。
513デフォルトの名無しさん:2013/01/10(木) 00:40:09.35
shift /?
514デフォルトの名無しさん:2013/01/10(木) 23:23:51.15
自分なりに作ってみたんですがどうでしょうか?
一応動いてはいるんですが、2個目以降のファイルは1個目に作られたアーカイブに追加していってる感じになっちゃってますね・・・。
C#を趣味で少しかじっただけなので、こうやってバッチ組むのは初めてなんです。。

@ECHO OFF
SETLOCAL
SET RARPATH="C:\Program Files\WinRAR\winrar.exe"
cd /d "%~dp1"
for %%1 in (%*) do %RARPATH% a -ag+(YY-MM-DD_HH-MM) " %~n1" "%%~nx1"
515デフォルトの名無しさん:2013/01/11(金) 05:04:52.69
>>514
君がしたい動作になるようにWinRARのヘルプのコマンドラインの項をよく読め
516デフォルトの名無しさん:2013/01/11(金) 19:39:07.48
setlocal
【オプションなど】
:LOOP
if "%~1"=="" goto END
【forコマンド処理など】
shift
goto LOOP
:END
exit

ファイルが存在する間はshiftでループして、
存在しなくなったらエンドみたいのが基本形かな。

アーカイバのオプションなんかはよく理解した上で設定しないと、
意図した通りにはならないだろうから要熟読ね。
てか、rar.exeではなくwinrar.exeなのか。
517デフォルトの名無しさん:2013/01/11(金) 22:18:50.38
>>516
ありがとうございます。参考にします。
rar.exeを使うほうが自然ですね、すみません。
518デフォルトの名無しさん:2013/01/14(月) 21:30:58.80
力を貸してください。
下記コマンドを使用した際、
findのエラー出力で"ファイルが見つかりません"と標準で出るのを非表示にしたいです。
findのみでしたら 2>nulで消えたのですがこの使用だと抑止できないのでしょうか?

for /F "tokens=3" %i in ('dir /S K:\HOGE\ ^| find "のファイル"')do set a=%i
519デフォルトの名無しさん:2013/01/14(月) 21:53:08.03
findのエラー出力ではなくdirのエラー出力だから
520デフォルトの名無しさん:2013/01/14(月) 22:30:18.25
>>519
なるほど・・・ありがとうございました。
初歩的なことでした、すみません。
521デフォルトの名無しさん:2013/01/15(火) 02:23:58.35
写真屋のエレメンツでTIF画像を開くために、画像をペイントで1回上書き保存をしなきゃいけないんだけど
その画像が膨大な量あるので、バッチで一括処理したいんですが何かヒントをいただけないでしょうか
522デフォルトの名無しさん:2013/01/15(火) 11:43:51.68
TIFFを他の形式に一括変換するだけじゃないの?
バッチファイルじゃなくそういうソフト使えばいいだけじゃない?
523デフォルトの名無しさん:2013/01/15(火) 21:59:08.70
copy *.tif *.jpg
524デフォルトの名無しさん:2013/01/16(水) 00:21:36.26
ren *.tif *.jpg
525デフォルトの名無しさん:2013/01/16(水) 14:52:31.61
画像変換ならImageMagickのバイナリ拾ってこいよ
526デフォルトの名無しさん:2013/01/16(水) 18:26:03.77
Windows7 x64で利用したいのですが、管理者権限のあるプロンプトから

 管理者権限を継承せずに別のバッチファイルを呼び出し
 管理者権限を持っているプロンプトに戻る方法
 :: 逆(権限なしから権限ありを呼ぶ)でも化

もしくは

 管理者権限を継承しないアプリケーションの呼び出し

をするにはどうしたら良いでしょうか?
527デフォルトの名無しさん:2013/01/16(水) 18:51:13.57
どうしようもねえよ
528デフォルトの名無しさん:2013/01/16(水) 21:34:27.29
>>526
runas
529デフォルトの名無しさん:2013/01/17(木) 15:55:07.56
カレントディレクトリにdir 1, dir 2, dir 3ディレクトリがあり

copy "dir 1/a.txt" "dir */a.txt"

でコピーしようとしたらディレクトリが存在しないと言われました

どうすれば空白文字の入った兄弟ディレクトリにコピーできますか?
530529:2013/01/17(木) 15:57:04.17
追記。実際にはディレクトリは10個もあるので一つ一つパスを記述するのは無しです。
531デフォルトの名無しさん:2013/01/17(木) 16:25:23.61
1つのファイルを複数フォルダへなんていう都合のいいコマンドは無い。
諦めて全部書くか、法則性をもとにループで回せ。

for /l %i in (1,1,10) do copy hoge.txt "hage%i\hoge.txt"

みたいにな。
ていうかパスに/使うなんてどこから出てきた?
余所の流儀を安易に突っ込むなよ。
532526:2013/01/17(木) 17:35:01.89
>>528
ありがとうございます、試してみます
533529:2013/01/17(木) 18:40:10.74
>>531
うまくいきました ありがとうです
サブルーチン、if、for、setとかを覚えました
区切り文字気をつけます
534デフォルトの名無しさん:2013/01/18(金) 00:58:00.05
for 文で数値を変えながらsqlを実行してますが
ある変数での処理時間がかかりすぎる場合にタイムアウトして
次の変数になり処理するようにすることはできませんか?
535デフォルトの名無しさん:2013/01/18(金) 01:01:18.56
>>534
localhostにpingでも打ってカウントしれ
536デフォルトの名無しさん:2013/01/18(金) 01:35:24.32
>>535
どんな意味が?
537デフォルトの名無しさん:2013/01/18(金) 06:42:06.30
>>536
お前の人生くらいには
538デフォルトの名無しさん:2013/01/18(金) 06:43:57.60
>>534
コマンド側で割り込みするの気持ち悪いだろ
SQL側でやれ
539デフォルトの名無しさん:2013/01/18(金) 12:46:33.46
cleanmgr /sageset:10
cleanmgr /sagerun:10
としたとき全ドライブでクリーンアップされますが、DVDドライブなども含まれてしまいますか?
540デフォルトの名無しさん:2013/01/18(金) 13:16:41.44
>>533
区切り気を付けるって…

なんか勘違いしてる気がするな。
541デフォルトの名無しさん:2013/01/19(土) 15:13:21.29
バッチファイルにドラッグ&ドロップされたものがファイルかフォルダかを判別する方法はありますか?
ファイルは拡張子が無い場合もあるので「if %~x1%==""」とかでは判別できませんでした。
542デフォルトの名無しさん:2013/01/19(土) 16:14:45.32
>>541
以下の内容をバッチファイルにしてSendToフォルダに入れてから、好きなファイルまたはフォルダを右クリック→「送る」→バッチファイル の順に操作してみてくれないか?
(普通に引数指定で実行してもいいけど)

@ECHO OFF
ECHO 【情報】引数は"%~f1"です。
IF "%~f1"==""  ECHO 【情報】引数が未指定です。
DIR/A "%~f1\." > NUL
IF ERRORLEVEL 1  GOTO STEP2
GOTO STEP3
:STEP2
ECHO 【情報】引数にファイルが指定されています。
GOTO STEP4
:STEP3
ECHO 【情報】引数にフォルダが指定されています。
:STEP4
ECHO 【情報】引数指定テスト終了。
PAUSE
543デフォルトの名無しさん:2013/01/19(土) 16:23:51.64
c:\users\user\sendtoがファイルになるが?ぼけ
544デフォルトの名無しさん:2013/01/19(土) 16:34:14.61
>>543
Windows7ではXPと異なり、以下のようにdirコマンドを使って(/aは省略不可)、SendToフォルダの見つける必要があるので注意しましょう。
※この例の場合、"C:\Users\usr\AppData\Roaming\Microsoft\Windows\SendTo" が本当のSendToフォルダになる。

c:\Users\usr>dir/a *SendTo
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は ****-**** です

c:\Users\usr のディレクトリ

2012/10/23 02:20 <JUNCTION> SendTo [C:\Users\usr\AppData\Roaming\Microsoft\Windows\SendTo]
545デフォルトの名無しさん:2013/01/19(土) 16:34:56.71
相変わらず nul の使い道を理解してない情弱が多くて何よりだ
546デフォルトの名無しさん:2013/01/19(土) 16:45:01.87
そういう情弱もな
547542=544:2013/01/19(土) 17:02:25.08
確かにコンソールへのメッセージ表示ををNULデバイスにリダイレクトしても、エラーメッセージの表示までは抑制できない。
それは分かるのだが…

ちなみにWindows95発売前のMS-DOSだけが対象OSなら、dirコマンドなど使わずとも以下の一行で事足りるように記憶している。
(うろ覚えだから、あまり自信はない。結局。Windows95/NT4.0〜Windows7の場合はVBScriptを利用するのが一番スマートかも?)

IF "%1\."==""  ECHO 【情報】ディレクトリが指定されてます。
548デフォルトの名無しさん:2013/01/19(土) 17:02:59.04
>>541
ファイルであるか否かを判定するのではなく、
ディレクトリであるか否かを判定する。

if exist "%~1\*" echo;folder else echo;file
549デフォルトの名無しさん:2013/01/19(土) 17:04:47.05
カッコが要った。
if exist "%~1\*" ( echo;folder ) else ( echo;file )
550デフォルトの名無しさん:2013/01/19(土) 17:22:55.03
>>541の悩みを一行で解決してくれるとは、さすが情強
551デフォルトの名無しさん:2013/01/19(土) 17:25:43.36
c:\users\user\sendtoがfileになるが?ぼけ
552デフォルトの名無しさん:2013/01/19(土) 17:28:16.62
%~aIを見るのが正解だな
553デフォルトの名無しさん:2013/01/19(土) 17:43:23.61
for /f usebackq %%i in (`mshta vbscript:execute^("CreateObject(""Scripting.FileS
ystemObject"").GetStandardStream(1).Write(CreateObject(""Scripting.FileSystemObj
ect"").FolderExists(""%~1"")):close"^)`) do echo %%i
554デフォルトの名無しさん:2013/01/19(土) 17:54:32.51
バッチで簡単にできることをそこまでするかばか
555デフォルトの名無しさん:2013/01/19(土) 17:57:46.98
>>552
set attribute=%~a1
if "%attribute:~0,1%"=="d" (echo;folder) else (echo;file)

と、いうところか。
556デフォルトの名無しさん:2013/01/19(土) 17:58:34.45
そゆこと
557デフォルトの名無しさん:2013/01/19(土) 21:28:35.08
>>555
ジャンクションやディレクトリのシンボリックリンクの属性も、
"d"になるの?
558デフォルトの名無しさん:2013/01/19(土) 23:19:02.52
dにlが付く
559デフォルトの名無しさん:2013/01/20(日) 06:20:53.31
パスにスペースを含むファイルをバッチファイルにドロップした時は%*%でパスを取得できるけど
%~n*%ってやってもファイル名は取得できないね。どうすればいいのだろうか?
560デフォルトの名無しさん:2013/01/20(日) 10:56:15.00
普通に for で回すしかないんじゃないか?

for %%f in (%*) do echo %%~nf
561559:2013/01/20(日) 11:31:33.22
>>560
そのままコピペしたらでけたよ!アリガd!!
562デフォルトの名無しさん:2013/01/20(日) 11:42:51.74
コマンドでファイルの文字コード変換やろうと思っているのですが、

http://scripting.cocolog-nifty.com/blog/2008/12/cmdexeunicodeut.html

のページの

set /p x="XX"^<nul

という箇所の「XX」の部分はキーボードからはどのように入力すればよいのでしょうか?
563デフォルトの名無しさん:2013/01/20(日) 12:16:47.45
BOM(0xff 0xfe)か。
そのページからコピペ
564デフォルトの名無しさん:2013/01/20(日) 12:41:02.09
batファイルスクリプトのみで文字と背景の色を変更する事はできませんか?
他の言語で言うcursesライブラリみたいなかんじで
565デフォルトの名無しさん:2013/01/20(日) 14:30:53.47
>564
color /?
566デフォルトの名無しさん:2013/01/20(日) 16:26:03.22
colorは画面全体
文字だけならfindstr
567デフォルトの名無しさん:2013/01/20(日) 16:31:03.06
普通に%~n1でいいけど?
568デフォルトの名無しさん:2013/01/20(日) 18:58:34.90
>>566
日本語でw
569デフォルトの名無しさん:2013/01/20(日) 19:05:49.91
標準入出力に対応したコンソールってないですか?
PowerCmdとConsole2は未対応でした
有料でも構いませんがなるべく無料がいいです
570デフォルトの名無しさん:2013/01/20(日) 21:09:19.49
cmd.exe
571デフォルトの名無しさん:2013/01/20(日) 22:15:03.68
バッチファイルで文字色と背景色を変えて文字列をECHOする。
572デフォルトの名無しさん:2013/01/23(水) 19:16:57.56
"set = *"と"set == *"の違いがよく解らないのですが、=を2つ付ける事に意味はあるのでしょうか?
573デフォルトの名無しさん:2013/01/23(水) 19:35:34.29
どっちも
コマンドの構文が誤っています。
なので違いはない。意味もない。
574デフォルトの名無しさん:2013/01/23(水) 21:23:30.42
set hoge=fuga
set hoge==fuga
この2つの違いとしたら前者はhogeに「fuga」が、後者は「=fuga」が入っている
575539:2013/01/24(木) 20:56:38.30
すいませんこれ実行してもクリーンアップされませんでした
ダイアログが出て全てチェックはしました
なぜでしょうか
cleanmgr /sageset:10
cleanmgr /sagerun:10
576デフォルトの名無しさん:2013/01/25(金) 03:14:53.32
バッチファイル内のset /aで、括弧使って計算をグループ化したらエラーに
マニュアルどおりにやってるはずなのに・・・
と色々ググったりしても解決せず

まさか・・・と思いエスケープしたら機能した
なんなのこの実装・・・
というか/?に書いとけよ・・・
577デフォルトの名無しさん:2013/01/25(金) 03:23:31.15
エスケープなんか要らんけど。

具体的にどんな計算だったか書いてみろ。
578デフォルトの名無しさん:2013/01/25(金) 04:06:41.20
気になるんだったらてめーで勝手に試せばええ
579デフォルトの名無しさん:2013/01/25(金) 09:15:52.76
C:\>set /a (1 + 10) * 3
33
C:\>set /a (1+10)*3
33

エラーとやらにはならんな。
580デフォルトの名無しさん:2013/01/25(金) 11:37:20.43
自分で文法間違ってファビョる奴は始末におえんな
581デフォルトの名無しさん:2013/01/25(金) 14:19:34.10
(set /a (1+10)*3)
*3) の使い方が誤っています。

とか
582デフォルトの名無しさん:2013/01/25(金) 20:23:51.65
入れ子の解析なんて俺ならしないな
583デフォルトの名無しさん:2013/01/25(金) 23:44:41.72
ここレベル低いな
昨日今日始めた奴ばっかかよ
584デフォルトの名無しさん:2013/01/26(土) 00:09:40.11
C:\>(set /a "(1+10)*3")
33
C:\>
585デフォルトの名無しさん:2013/01/26(土) 00:11:42.35
>>583
高レベル(自称)さんちーす
586デフォルトの名無しさん:2013/01/26(土) 00:20:00.74
超FAQに右往左往してる自覚はないんだな
587デフォルトの名無しさん:2013/01/26(土) 00:32:47.78
誰か困ってる人がいたみたいだけど、俺は困らないしねぇ・・・
588デフォルトの名無しさん:2013/01/26(土) 00:59:37.48
まぁお前は単なる冷やかしだけのゴミだけどね
589デフォルトの名無しさん:2013/01/26(土) 01:48:01.36
>>584
へーこんなことできるんだ。

と低レベルな俺w
590デフォルトの名無しさん:2013/01/26(土) 02:53:36.63
>>576-577
どんな間違いしたんだよ。 マヌケも反面教師として役に立つからかけやゴミカスが。
591デフォルトの名無しさん:2013/01/26(土) 03:48:36.35
お前の脳みそ残念すぎ
592577:2013/01/26(土) 13:10:43.53
>>590
なぜ俺を入れる…
593デフォルトの名無しさん:2013/01/26(土) 13:15:21.75
あまりにも初心者的間違いをしでかしたので
恥ずかしくてそれを晒すことも出来ず
他人を貶める事でしか精神の安定を保てないのでしょう。
594デフォルトの名無しさん:2013/01/26(土) 22:29:15.14
cls
595デフォルトの名無しさん:2013/01/27(日) 02:14:30.10
>>593
それ自分のことじゃん
>>581のように答えを出せない馬鹿が、自己解決した奴に絡んで精神の安定を図ってるだけ
自分が初心者以下の能力しか持ってないことを自覚しないと
596デフォルトの名無しさん:2013/01/27(日) 02:27:40.06
echo off
597デフォルトの名無しさん:2013/01/27(日) 09:22:50.87
>>595
恥かきにのこのこ出てくることないのに。
>>581>>576が初心者以下の能力しか持ってない事を示しているわけだが。
598デフォルトの名無しさん:2013/01/27(日) 09:42:55.38
>>595
581をやったの?

うわぁ……
599デフォルトの名無しさん:2013/01/27(日) 23:34:33.33
>>597
お前いい加減にしたらどうよ
恥の上塗りはお前だわ
600デフォルトの名無しさん:2013/01/28(月) 00:12:42.52
goto :EOF
601デフォルトの名無しさん:2013/01/28(月) 01:26:41.80
>>600
ええ加減にせいよ お前ら Fack
602デフォルトの名無しさん:2013/01/28(月) 03:17:13.41
だからなにをしでかしたのか言ってみろよ

あと577は間違いだ。謝罪する。
603デフォルトの名無しさん:2013/01/29(火) 10:41:38.18
usbをパソコンに接続すると自動的に実行するやつってbatで出来ますか?
604デフォルトの名無しさん:2013/01/29(火) 13:17:35.47
何を企んでるやら
605デフォルトの名無しさん:2013/01/29(火) 13:44:48.95
usbにwebサーバを入れてCMS運用です
606デフォルトの名無しさん:2013/01/29(火) 19:37:17.27
autorun.inf usb
607デフォルトの名無しさん:2013/01/30(水) 13:19:29.33
なるほどありがとうございます
それを使ってやってみます
608デフォルトの名無しさん:2013/01/30(水) 15:51:55.40
システムにパスが通ってるはずなのにコマンドが使えません
コマンドプロンプトからコマンドを打つと確かに使えます
batファイルからだと使えません
絶対パスで指定するしかないのですが、batファイルの中でもシステムのパスを見る方法はありませんか?
609デフォルトの名無しさん:2013/01/30(水) 16:15:09.63
パスが通っていれば実行できる。実行できないのはパスが通ってないから。
キミが考えなきゃいけないのはどうして、そのbatの中ではパスが通っていないかという事。
610デフォルトの名無しさん:2013/01/30(水) 16:56:23.42
愚か者は放置で
611デフォルトの名無しさん:2013/01/30(水) 17:03:25.88
cmdファイルなら使えるよ
612デフォルトの名無しさん:2013/01/30(水) 17:10:06.62
また勝手に放置とかいって仕切る奴がいるよ
613デフォルトの名無しさん:2013/01/30(水) 19:11:18.79
batファイルからでも使えるよ
614デフォルトの名無しさん:2013/01/30(水) 19:25:50.69
>batファイルの中でもシステムのパスを見る方法はありませんか?

@echo off
path
615デフォルトの名無しさん:2013/01/30(水) 19:29:08.85
見えました!
616デフォルトの名無しさん:2013/01/30(水) 20:02:54.28
Good Job !
617デフォルトの名無しさん:2013/01/30(水) 20:50:17.99
>>608
64bit System32 SysWOW64 sysnative
この辺りのキーワードが該当するような…
618デフォルトの名無しさん:2013/01/30(水) 21:02:08.61
ハズレ
619デフォルトの名無しさん:2013/01/30(水) 21:10:46.23
すみません。
複数のフォルダ名を引数で渡して、それぞれのフォルダ内のファイルをコピーしたいのですが
"コマンドの構文が違っている"とエラーが出ます。お願いします。

@echo off

for /L %%i in (1,1,10) do (
if not "%%i" == ""(
xcopy %%i C:\Users\%%i\ /Y

)
else (exit)
)
620デフォルトの名無しさん:2013/01/30(水) 21:24:51.10
ちなみにhttp://rubyinstaller.org/のexeファイルからインストールしたんですよ
なぜかbatファイルのみコマンドが効かなくて
621デフォルトの名無しさん:2013/01/31(木) 19:01:09.01
if a==a(
コマンドの構文が違っています
622デフォルトの名無しさん:2013/02/07(木) 00:05:59.49
23
6554
184
296
5040

↑のように数が入ったファイルがあるのですが、これらの合計値を求めることはできますか?
エクセルならセルに貼り付ければ一瞬で右下に合計値が表示されますが、エクセルを使えない環境なので…
623デフォルトの名無しさん:2013/02/07(木) 00:22:03.54
for /f %i in (a.txt) do set /a x+=%i
624デフォルトの名無しさん:2013/02/07(木) 01:08:39.97
23+
6554+
184+
296+
5040=

バッチじゃないけどこんな風にして電卓にコピペしてもいい。
625デフォルトの名無しさん:2013/02/07(木) 01:13:12.88
ちなみにset /aで計算できるのは32bit符号付き整数の範囲なんで
2147483647を超える数値は計算出来ない。
626デフォルトの名無しさん:2013/02/07(木) 01:28:46.37
9*9の一桁しか計算できない俺よりはずっとまし
627デフォルトの名無しさん:2013/02/07(木) 21:27:54.25
>>622, >>625
あと、先頭に 0 が付いてると 8進数と解釈されるので、注意が必要。
628622:2013/02/08(金) 01:50:50.77
>>623
できました!ありがとうございます。

>>624
こちらも同じ結果になりました〜!(当たり前かw)
しかしこんなこと出来るんですね。
覚えておきます。感謝!

>>625
そんなすごい数は出てこないので大丈夫ですw

>>627
試してみたら確かに。
気をつけます。
629デフォルトの名無しさん:2013/02/08(金) 01:59:28.99
凄い数っていってもファイルサイズとかだと簡単に出てくる数字。
高々2GBまでしか計算出来んってことだから。

それ以上は桁を切って使うとか面倒なことになる。
ドライブの空き容量とかは確実に超えるからな。
630デフォルトの名無しさん:2013/02/08(金) 02:36:36.07
キロバイト単位/切り上げで計算して逃げたこともあるが、
2TBが当たり前になってきて、sh−がないメガバイトで計算だ〜
と、まさにイタチごっこ
631デフォルトの名無しさん:2013/02/08(金) 10:39:58.60
CScriptを吐いて計算させてしまえばいい(実も蓋)
632デフォルトの名無しさん:2013/02/08(金) 10:57:23.80
Windows Vista以降はPowerShellをつかたほうがいいですか?
633デフォルトの名無しさん:2013/02/08(金) 11:12:17.74
>>632
その前にまず日本語の勉強だな
634デフォルトの名無しさん:2013/02/08(金) 11:16:28.99
Windows Vista以降はPowerShellを使ったほうがいいですか?
635デフォルトの名無しさん:2013/02/08(金) 13:55:54.32
>>634
やりたいことに応じて、便利だと思ったら使えばいい。
それだけのこと。
636デフォルトの名無しさん:2013/02/09(土) 14:57:59.82
>>635
質問の意図を汲み取れよアスペ、お前はもう書き込むな
637デフォルトの名無しさん:2013/02/09(土) 15:11:44.03
なにそれ
638デフォルトの名無しさん:2013/02/09(土) 15:14:00.97
質問には疑問があっても意図があるとは
産経新聞の記者か?
639デフォルトの名無しさん:2013/02/09(土) 15:16:04.34
>>638
アスペ乙w
640デフォルトの名無しさん:2013/02/09(土) 16:00:06.78
>>638
週末限定の小学生だろ
641デフォルトの名無しさん:2013/02/09(土) 16:24:17.73
>>638
質問者が何をしようとしているのかどういうことをやりたいと思っているのかをよく考えてから答えろって言ってんだよ
わかんねえの?頭悪いんじゃねえのお前
642デフォルトの名無しさん:2013/02/09(土) 16:26:48.38
>>640
批判されて自分が窮地に立たされるとそうやって相手を貶めて挽回を図ろうとする
お前のようなやつがいると大変なんだよね
死んでくれないかな
いますぐに
643デフォルトの名無しさん:2013/02/09(土) 16:38:49.45
>>642
週末限定の小学生乙
あ、「頭の中身が」と言う意味な
644デフォルトの名無しさん:2013/02/09(土) 16:39:42.22
>>642
キーキー喚くんじゃねーよ山猿が
645デフォルトの名無しさん:2013/02/09(土) 16:41:20.50
>638 名前:デフォルトの名無しさん [sage]: 2013/02/09(土) 15:14:00.97
>質問には疑問があっても意図があるとは
>産経新聞の記者か?

こうやって揚げ足取って自分が賢いアピールするやつって最低だよな
しかも他人が質問してる時にそれをやるんだから
どんだけ鬱屈してんだよ
646デフォルトの名無しさん:2013/02/09(土) 16:42:08.78
>>643
>あ、

ださw
647デフォルトの名無しさん:2013/02/09(土) 16:43:17.47
>>644
死ね山猿
648デフォルトの名無しさん:2013/02/09(土) 17:04:48.16
>>636
あなたの汲み取った意図を教えて>_<
649デフォルトの名無しさん:2013/02/09(土) 17:09:37.94
Windows Vista以降はPowerShellを使ったほうがいいと言って欲しいんだろ?
650デフォルトの名無しさん:2013/02/09(土) 17:12:50.47
意図を汲み取って答えてやれ

Windows Vista以降はPowerShellを使ったほうがいいよって
651デフォルトの名無しさん:2013/02/09(土) 17:14:09.85
>>648
Windows Vista以降はPowerShellを使ったほうがいいかどうかということだ
使ったほうがよければ使うし、使わないほうがよければ使わない
652デフォルトの名無しさん:2013/02/09(土) 17:14:48.44
>>649
質問に答えて欲しい、ちゃんと理由つけてね
653デフォルトの名無しさん:2013/02/09(土) 17:15:35.48
>>650
なんでPowerShellを使ったほうがいいの?説明してくれる?
654デフォルトの名無しさん:2013/02/09(土) 17:29:02.44
質問の後出しすんな
655デフォルトの名無しさん:2013/02/09(土) 17:32:07.76
>>654
>>634に書いたのにわかってないようだからもう一度書いたんだよ
無能なら答えないで
656デフォルトの名無しさん:2013/02/09(土) 17:33:47.17
Windows Vista以降はPowerShellを使わないほうがいいよ
657デフォルトの名無しさん:2013/02/09(土) 17:37:35.88
Windows Vista以降はPowerShellを使わないほうがいいの?説明してくれる?
658デフォルトの名無しさん:2013/02/09(土) 17:39:08.65
>>634にはむりぽ
659デフォルトの名無しさん:2013/02/09(土) 17:42:03.68
コマンドプロンプトのスレがこんな風に荒れるなんて珍しいなw
660デフォルトの名無しさん:2013/02/09(土) 17:44:01.73
>>659
週末だからガキが沸いてくるのは仕方ないな
661デフォルトの名無しさん:2013/02/09(土) 17:48:52.93
まともな質問者なら、
・そもそも、やりたい処理は何なのか
・なぜ「Windows Vista以降」に限ってそう思うのか
等々、詳しい事情を呈示した上で相談してくるのが当然。

それをせず、真面目に相手してくれた人を揚げ足取りでもやって
からかおうという意図が見え見えだから、誰もまともに相手しない。
それだけのこった。
662デフォルトの名無しさん:2013/02/09(土) 17:54:34.60
>>661
最初に揚げ足とるくだらないことやったのは>>638
からかわれるのが怖いから答えることができないっていう臆病者なら質問に口を挟まないでほしい
どうせ答えることできないんなら黙ってて欲しい
自分の考えをもってるちゃんとした人なら自信を持って答えることできるよね
そういう人に答えて欲しい
>>661は言い訳をぐだぐだ書いてるだけの無能
663デフォルトの名無しさん:2013/02/09(土) 17:56:26.38
そういうひとはあほに答えないよ
664デフォルトの名無しさん:2013/02/09(土) 17:57:12.50
>>663
あほじゃないから答えてくれるってことだね
665デフォルトの名無しさん:2013/02/09(土) 17:58:22.29
だれがあほじゃないって?
666デフォルトの名無しさん:2013/02/09(土) 17:59:25.92
>>665
667デフォルトの名無しさん:2013/02/09(土) 18:04:15.41
>>660
暴れているのは皆いい年したおっちゃんです…
668デフォルトの名無しさん:2013/02/09(土) 18:40:22.80
鬼は外
669デフォルトの名無しさん:2013/02/09(土) 19:37:04.74
ちょっと煽られた程度で大噴火ってなにこれ。
最近沸点低すぎる奴多いな。
670デフォルトの名無しさん:2013/02/09(土) 20:12:46.35
>>669
なんで煽るわけ?煽って怒られたら相手のせいにするの?人として間違ってると思わない?
671デフォルトの名無しさん:2013/02/09(土) 20:20:19.12
人として間違ってる、だって
672デフォルトの名無しさん:2013/02/09(土) 20:24:13.97
そういうことを言うのは人として間違ってるな
673デフォルトの名無しさん:2013/02/09(土) 20:27:56.07
非常識なガキを弄るのは面白い
674デフォルトの名無しさん:2013/02/09(土) 20:30:52.71
>>673
それってあと釣り宣言ていうんだよ
まじめに言い負かされて自分は弄る立場だったってあとになって言い訳してるだけなんだよ
ださw
675デフォルトの名無しさん:2013/02/09(土) 20:36:14.29
小人閑居して不善をなす
676デフォルトの名無しさん:2013/02/09(土) 20:40:49.79
>>675
閑居してるけど不善をなしてないから大人
677デフォルトの名無しさん:2013/02/09(土) 20:43:08.91
結局誰も質問に答えられないんだね
もういいよ
こんなところで聞いた俺の質問に答えられなかったお前らが馬鹿だったよ
678デフォルトの名無しさん:2013/02/09(土) 20:58:21.87
最近2ch知ったばかりのお子様がヒステリーを起こしているようだな。

2chがどんな酷い所かなんて無知なガキ以外誰でも知ってる話。
煽り煽られ無視上等だろうが…

何で煽るのとか今さら過ぎて(゚Д゚)ポカーンとなるだけだわ。
679デフォルトの名無しさん:2013/02/09(土) 20:59:00.89
おまえ賢いなあ
あたま最高にいいなぁ
じゃーねぇ
680デフォルトの名無しさん:2013/02/09(土) 21:02:16.93
ほらみんなもっと褒めてやれよ
それが一番よ
681デフォルトの名無しさん:2013/02/09(土) 21:04:04.50
…と言いつつ泣きながら必死でリロードし続ける>>679であった
682デフォルトの名無しさん:2013/02/09(土) 21:07:04.06
そういうのはおまえだけだと思うよ
誰も屁にも思ってないよ
683デフォルトの名無しさん:2013/02/09(土) 22:02:52.97
↑最後っ屁
684634:2013/02/10(日) 10:08:20.83
解答ついてるかなと覗きにきたら荒れててワロス
685デフォルトの名無しさん:2013/02/10(日) 13:12:45.12
その前にまず日本語の勉強だな
686デフォルトの名無しさん:2013/02/10(日) 13:26:49.57
それじゃ新しい言語powershellもむりぽ
687デフォルトの名無しさん:2013/02/10(日) 16:52:07.98
>>677
質問として最低限の情報がないんだから答えられたらエスパーだよ…
688デフォルトの名無しさん:2013/02/10(日) 18:44:10.66
そういう問題じゃないだろ
689デフォルトの名無しさん:2013/02/10(日) 18:46:07.40
あした以降コートを着て行ったほうがよいでしょうか?
みたいな質問なんだよ
690デフォルトの名無しさん:2013/02/10(日) 18:47:24.97
正しい答えは、勝手にしろ、だよ
691デフォルトの名無しさん:2013/02/10(日) 18:57:40.14
逆切れかお前ら
質問に答えられないからって逆切れか
692デフォルトの名無しさん:2013/02/10(日) 19:07:46.55
その態度は人として間違ってると思わない?
693デフォルトの名無しさん:2013/02/10(日) 19:30:37.84
なに切れてんの
見苦し
694デフォルトの名無しさん:2013/02/10(日) 20:40:22.16
頭の出来の差は歴然としてるな
695デフォルトの名無しさん:2013/02/10(日) 20:56:57.62
>>693=691
今まで誰からも躾けられなかったんだろうな
猿にも劣るゴミ屑だ
696デフォルトの名無しさん:2013/02/10(日) 21:06:51.25
責任転嫁するな
人は躾けられてなるもんじゃない
自分でなるんだ
>>634は自分で出来の悪い人間になっただけ
他人のせいじゃない
697デフォルトの名無しさん:2013/02/10(日) 21:15:06.07
違うな
そんなのは幻想に過ぎない
躾けられずに育てば、人間もただの畜生
698デフォルトの名無しさん:2013/02/10(日) 21:41:23.18
それこそ幻想だろ
699デフォルトの名無しさん:2013/02/13(水) 20:20:13.28
キチガイ質問者がひとり来ただけでこの有様
700デフォルトの名無しさん:2013/02/18(月) 01:03:44.40
ここのやつはアスペって感じはしないね
ただのさみしがりやのこんちくしょうだろ
アスペはこんなやり取りを楽しむ暇があったらガリガリプログラム書いてるからね
むしろアスペ見習えや
701デフォルトの名無しさん:2013/02/18(月) 05:19:17.96
サンドバッグに浮かんで消える憎いあんちくしょうの顔めがけ叩け 叩け 叩け!
702デフォルトの名無しさん:2013/02/18(月) 17:27:54.57
> @perl -e "if ($ENV{PATH} !~ /MinGW/) {system qq(echo > tmplock)}"
> @if exist tmplock (@del tmplock & call setmingwpath.bat)

要するに%PATH%に文字列があるかないかを調べたいんだけど
perlでやってるところをバッチファイルだけでやる方法ある?
findstrは、マッチしない時にif "%%str"==""で空文字に反応してくれずうまくいかなかったのよ
703デフォルトの名無しさん:2013/02/18(月) 17:33:34.10
IF "%PATH:MinGW=%"=="%PATH%" (echo ない) else echo ある
704デフォルトの名無しさん:2013/02/18(月) 18:07:29.13
errorlevelでも取れるんじゃないの。
705デフォルトの名無しさん:2013/02/18(月) 18:32:05.79
はあ?
706デフォルトの名無しさん:2013/02/18(月) 18:52:13.38
path | findstr "MinGW"
echo %errorlevel%
707デフォルトの名無しさん:2013/02/18(月) 22:20:00.44
path | find "MinGW"
echo %errorlevel%
708デフォルトの名無しさん:2013/02/22(金) 05:43:36.24
「1000%Sparking!.mp3」のように、ファイル名に半角の% と ! の両方が入っている時、それぞれの記号を全角の
!と%にリネームしたいと思って四苦八苦してるんですが何か良い方法はないですか?
ファイル名から%と!の両方を除去する方向でも構わないんですが。
以下のバッチで! & %のいずれかが入ってる場合は変換出来るものの、% と !が組み合わさってると遅延環境
変数の関係であっちを立てればこっちが立たずになっちゃってもうどうすりゃいいのか…

SetLocal DisableDelayedExpansion
For /F "Tokens=*" %%j In ('Dir /B *.mp3^|Findstr "& !"') Do Call :_Rename "%%j"
ENDLOCAL
:_Rename
Set _Temp="%~1"
Set _Temp=%_Temp:&=&%
Set _Temp=%_Temp:!=!%
Set _Temp=%_Temp:~1,-1%
Ren "%~1" "%_Temp%"

SetLocal EnableDelayedExpansion
For /F "Tokens=*" %%k In ('Dir /B *.mp3^|Findstr "%%"') Do (
Set _Temp="%%k"
Set _Temp=!_Temp:%%=%!
Ren "%%k" "!_Temp!"
)
ENDLOCAL
pause
goto :EOF
709デフォルトの名無しさん:2013/02/22(金) 06:39:18.57
>>708
for /f "delims=" %%a in ('dir /a-d /b "*.mp3"') do (
set "FN=%%a"
call :rep_exc_amp
call :rep_per_and_ren
set t1= & set t2= & set t3=
set FN=
)
goto :eof

:rep_exc_amp
call set "t1=%%FN:!=!%%"
call set "t2=%%t1:&=&%%"
goto :eof

:rep_per_and_ren
setlocal enabledelayedexpansion
set "t3=!t2:%%=%!"
echo ren "!FN!" "!t3!"
endlocal
goto :eof
710デフォルトの名無しさん:2013/02/22(金) 08:03:40.88
>>709
おおー、アザマス!きれいだ…個別に変換してから順に受渡していけばよかったのか
最後のechoを消して実際にリネームですよね

ここを参考にまず&と%を変換したあと、!を消そう…とかゴテゴテやってる所でした
http://stackoverflow.com/questions/4429604/script-to-remove-special-characters-from-filenames
本当に助かりました。ありがとうございます
711デフォルトの名無しさん:2013/02/22(金) 10:56:57.91
001.jpg
002.jpg
003.jpg ...
と連番でファイルが有るとして、それを1つずつ数値を増やして
002.jpg
003.jpg
004.jpg ...
とするにはどうすれば良いでしょうか、教えてください。
712デフォルトの名無しさん:2013/02/22(金) 12:14:51.09
数値に10000とか元の桁数を十分上回る大きな数を加えてからdirを降順にして、
順次、1足した後に下三桁取り出してリネーム、とか。

俺ならバッチ使わず Flexible Renamer を使う。
数値の加算も桁合わせも楽だし。
713デフォルトの名無しさん:2013/02/22(金) 17:25:03.83
あるフォルダが別プロセスで使われているか調べる方法を教えてください
714デフォルトの名無しさん:2013/02/22(金) 17:59:29.26
ren
move
rd
してみればエラーになる
715デフォルトの名無しさん:2013/02/22(金) 18:04:17.46
for /f %i in ('dir /o-n /b') do (
set x=1%~ni
set /a x+=1
call ren %i %%x:~1%%%~xi
)
716デフォルトの名無しさん:2013/02/22(金) 22:20:40.59
move hoge hoge\..
echo %errorlevel%
717デフォルトの名無しさん:2013/02/23(土) 15:56:18.54
Windows7(64)の標準コマンドだけで、テキストファイルを編集したい。(単純な単語の置換)
edlinがあれば事足りるけれど、Windows7(64)にはない。
JScript埋め込みで出来そうだけど牛刀をもって鶏を割くという感じ、
もっとかっちょいい方法なないでしょうか?
718デフォルトの名無しさん:2013/02/23(土) 19:32:29.99
ワードパッドとか
719デフォルトの名無しさん:2013/02/23(土) 20:21:36.30
メモ帳でダメな理由は?
720デフォルトの名無しさん:2013/02/23(土) 21:11:10.72
notepadってコマンドを使うといいよ!
721デフォルトの名無しさん:2013/02/23(土) 21:21:28.16
for /f "delims=" %i in (a.txt) do (
set x=%i
call >>b.txt echo;%%x:旧文字列=新文字列%%
)
722デフォルトの名無しさん:2013/02/23(土) 22:26:45.12
それ空白行(^$)飛ばされんじゃ?
723デフォルトの名無しさん:2013/02/23(土) 22:31:35.49
できるけどきにすんな
724デフォルトの名無しさん:2013/02/24(日) 23:46:35.69
\set call/
725デフォルトの名無しさん:2013/02/27(水) 23:00:49.21
がんばって関数化を進めたらすげぇ重くなった
726デフォルトの名無しさん:2013/02/28(木) 21:27:45.85
以下のような動作をするバッチを作りたいのですが

Aドライブに111というフォルダがあって、その中にa,b,c,〜というフォルダがあり
それをBドライブのa,b,cdフォルダを作ってそれぞれに111というフォルダを作って
Aドライブに入っていたa,b,c,〜の中身をコピーしたいのですが

Aドライブ
111-a-○file
-b-●file
-c-◎file

Bドライブ
a-111-○file
b-111-●file
c-111-◎file

というような感じです。
よろしくお願いします
727デフォルトの名無しさん:2013/03/01(金) 16:48:31.62
文字列を置換するバッチの最後の処理で例えば

echo %tmp%>>%text%

という風にechoで表示した文字列を別ファイルの末尾にリダイレクトして追加いくという方法があったんですが、
この%tmp%に入る変数に「%」が混ざってると問題が発生するのを回避する方法ありませんか?
728デフォルトの名無しさん:2013/03/01(金) 17:27:24.10
どんな問題は発生するんだか それで問題が発生する訳ないが?

どんな問題か知らんが遅延展開でも使えばよかろうて
729デフォルトの名無しさん:2013/03/01(金) 17:43:22.37
%tmp%の最後が数字だと問題が発生するな
730デフォルトの名無しさん:2013/03/01(金) 22:31:56.06
コマンドプロンプトでは直接 set tmp=% とできるが
バッチファイルでは set tmp=%% と重ねないと消えるね

あと%tmp%の最後が数字だと問題が発生するのはコマンドプロンプトだけ
バッチファイルでは展開後に 1>> になるから問題なし
731デフォルトの名無しさん:2013/03/01(金) 23:47:06.06
まあ
>> "!File!" echo;!Message!
の方がいいな。
732デフォルトの名無しさん:2013/03/02(土) 10:53:40.69
set echo とかで遅延展開使わなくてもいけるんじゃなかったっけか
733デフォルトの名無しさん:2013/03/02(土) 10:54:30.39
ちゃう call echo だ
734デフォルトの名無しさん:2013/03/04(月) 10:49:04.62
ディレクトリAに 0001.dat 0002.dat .... 1000.dat という1000個のファイルがあります。
0001.datから0500.dat をディスクXに、0501.datから1000.datをディスクYにコピーする
batファイルを作りたいのですが、力量がなくてすみません。
735デフォルトの名無しさん:2013/03/04(月) 13:39:49.02
るーぷ
set /a count+=1
set filename=0000%count%
set filename=%filename:~-4%.dat

%count% gtr 500 だったら%filename%をほにゃらら
そうじゃなかったらほにゃらら

るーぷに戻る
736デフォルトの名無しさん:2013/03/04(月) 22:28:32.65
set 0=x
set 1=y
for %%i in (a\*.dat) do (
set x=1%%~ni
set /a x=(x-10001)/500
call copy "%%i" %%x%%:
)
737デフォルトの名無しさん:2013/03/07(木) 16:17:33.36
ディレクトリA
ABC 123.txt
ABC 456.txt
ABC 789.txt

ディレクトリB
1A.txt
2B.txt
3C.txt

となっている時に、Bの名前を順番にAの名前と同じにしたいのですが(Bの1A.txtの名前がABC 123.txt)
良い方法はありませんでしょうか
738デフォルトの名無しさん:2013/03/07(木) 19:22:00.32
@echo off
ren 1A.txt "ABC 123.txt"
ren 2B.txt "ABC 456.txt"
ren 3C.txt "ABC 789.txt"
739デフォルトの名無しさん:2013/03/07(木) 22:07:13.68
>>738
すみません、ファイルの数が多いのでFORか何かで回せないでしょうか…
740デフォルトの名無しさん:2013/03/07(木) 22:22:04.82
>>739
ファイルの数がどうとか、数値の桁数がどうのとか、条件が足りなすぎ。
ABC 123.txt と ABC 99.txt どっちを先にしたいとか。
dir /b で出したリストを矩形切り貼り出来るエディタで >>738 をするのが
結局一番手っ取り早いんじゃないの?
741デフォルトの名無しさん:2013/03/07(木) 22:40:50.14
perlのようなものでやったほうがラクじゃないのかな
742デフォルトの名無しさん:2013/03/07(木) 23:14:53.50
バールのようなもの?
743デフォルトの名無しさん:2013/03/08(金) 00:49:26.45
>>740
たしかにそうですね。
エディタ使ってやってみます。ありがとうございました!
744デフォルトの名無しさん:2013/03/08(金) 03:49:29.38
ファイルの数とABC順の並びが両フォルダで必ず同じなら二つのforでA・Bフォルダの各ファイル名取得してから
サブルーチンに送って順にrenしていくとかじゃいかんのか
745デフォルトの名無しさん:2013/03/08(金) 04:09:22.92
2つ以上のリストを同時に扱うってのは結構問題だが
746デフォルトの名無しさん:2013/03/08(金) 05:10:10.74
え、そうなのか。結構安易にやっちゃってたわ…
どの辺に問題出るんだろ
747デフォルトの名無しさん:2013/03/08(金) 20:28:49.12
>>746
バッチじゃ2ファイルを同時に開くって出来ないでしょ。
748デフォルトの名無しさん:2013/03/08(金) 21:04:37.67
え?
749デフォルトの名無しさん:2013/03/08(金) 21:06:49.46
paste.cmdを見ればいいよ
750デフォルトの名無しさん:2013/03/08(金) 22:27:48.76
いやdirで2つのフォルダの「ファイル名」のリストを取得するって話じゃないの?
それでリネームするのは片方だけだし
751デフォルトの名無しさん:2013/03/09(土) 03:57:54.15
もう済んじゃったかもしれないけど参考まで
@echo off
setlocal
pushd z:\ディレクトリA
set m=0
for /f %%i in ('dir /b/on *.*') do call :sub dir-A m %%i
popd
pushd z:\ディレクトリB
set n=0
for /f %%i in ('dir /b/on *.*') do call :sub dir-B n %%~fi
popd
if %m% leq %n% (set max=%m%) else (set max=%n%)
for /l %%i in (1,1,%max%) do call ren %%dir-B%%i%% %%dir-A%%i%%
endlocal
goto :eof

:sub
set var=%2
set /a %var%+=1
call set %1%%%2%%=%3
goto :eof
752デフォルトの名無しさん:2013/03/09(土) 23:31:10.29

ファイル名の受け渡しに問題があった
以下のように環境変数を経由するように修正して

do set fname=%%~i&call :sub dir-A m
do set fname=%%~fi&call :sub dir-B n

call set %1%%%2%%="%fname%"
753デフォルトの名無しさん:2013/03/09(土) 23:37:03.56
さらにdelims指定も忘れてた
for /f "delims=" %%i in ('dir /b/on *.*') do set fname=%%~i&call :sub dir-A m
for /f "delims=" %%i in ('dir /b/on *.*') do set fname=%%~fi&call :sub dir-B n
754デフォルトの名無しさん:2013/03/10(日) 16:57:02.28
ありがとうございます。エクセルでやりました
755デフォルトの名無しさん:2013/03/12(火) 05:33:58.80
おいwwwwwww
756デフォルトの名無しさん:2013/03/12(火) 16:25:10.76
echo list volume | diskpart | find "NTFS"

というコマンドを実行したとき、ボリュームラベルが未設定だと空欄のままとなりますが、
この空欄の部分もバッチで判定させるにはどうしたらいいですか?

下記のバッチでelse以降を以下のようにしてみましたが、エコーが返りません。
お分かりの方よろしくお願いいたします。

for /F "usebackq tokens=1-10" %%A in (`echo list volume ^| diskpart ^| findstr /I /C:"NTFS"`) do (
if /I "%%D" == "system" (
echo ドライブの情報 %%C: [%%D] %%G%%H
) else (
if /I "%%D" == "" (
echo ボリュームラベルは空です
)))
757デフォルトの名無しさん:2013/03/12(火) 16:35:20.33
>>756
区切り文字をスペースにしたら空欄も吸収されてしまうんで
区切り文字を使わず1,2行目の項目表示を解析して
何文字目から何文字がボリュームラベルかってのを取得するしかない。
758756:2013/03/12(火) 17:20:25.24
>>757さん、レスありがとうございます。

システムのボリュームラベルが仮に、[Windows]だとすると、
Volume 1 C Windows NTFS
のようになりますが、Windowsの W は9文字目になるので、
この9文字目を解析するという手順ですよね?

具体的な方法がちょっと思いつかないです、すみません。

解析のため、他のコマンドも使う必要がありますか?
あればそうしたコマンド名も併せてご教示願えればありがたいです。
759デフォルトの名無しさん:2013/03/12(火) 17:25:45.40
%TEST: &nbsp;= "" %
こうやったらダメ?
760デフォルトの名無しさん:2013/03/12(火) 17:26:39.93
あれ、化けた
%TEST: = "" %
761デフォルトの名無しさん:2013/03/12(火) 17:27:38.41
もういいや...
762デフォルトの名無しさん:2013/03/12(火) 18:06:28.20
diskpartの出力の上2行ってこうなってるだろ
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ---- ---------- ------- --------- --------
「Label」の位置Aと「Fs」の位置Bを取得して
各行のA〜Bまでをボリュームラベルと規定
A〜Bが空白なら云々とやる
763デフォルトの名無しさん:2013/03/12(火) 19:12:35.27
ドライブレター振ってないときとかは抜きにして、こんな具合の決め打ちはダメ?


for /F "usebackq delims=" %%A in (`echo list volume ^| diskpart ^| findstr /I /C:"NTFS"`) do (
echo %%A | findstr /I /C:"半角スペース16個NTFS" 1>nul
if errorlevel 1 (
for /f "usebackq tokens=1-10" %%i in (`echo %%A`) do (
echo ドライブの情報 %%k: [%%l] %%o%%p
)
) else (
for /f "usebackq tokens=1-10" %%i in (`echo %%A`) do (
echo ドライブの情報 %%k: %%n%%o ボリュームラベルは空です
)
)
)


半角スペースの表示方法が分かんないので「半角スペース16個NTFS」はそんな感じで置き換えて。
764デフォルトの名無しさん:2013/03/12(火) 20:23:16.19
>>759-763みなさんレスありがとうございます。
>>762さん
なるほどそういうことでしたか、完全に読み違い&勘違いしてました。失礼しました。
>>763さんできました、ありがとうございます。
ラベルが空の時エコー返ってきました!
なるほどなるほど、こういう感じに入れ子にして処理するんですね、大変勉強になります。
みなさんお忙しい中対応していただきありがとうございました。多謝。
765デフォルトの名無しさん:2013/03/13(水) 00:28:14.26
>>763
ボリュームラベルの欄の長さって固定なん?
766デフォルトの名無しさん:2013/03/13(水) 00:36:37.41
事故レス

diskpartのlist volumeってボリュームラベルの先頭11文字しか表示しない仕様だった。
長いボリュームラベルだと全部表示されないじゃん…

今初めて知ったぜorz
767デフォルトの名無しさん:2013/03/13(水) 00:40:44.09
8.3形式の時代を生きた人間ならまず疑う
768デフォルトの名無しさん:2013/03/13(水) 00:54:04.54
8.3なら12文字じゃん…
769デフォルトの名無しさん:2013/03/13(水) 01:43:41.83
>>765,766
そこは気になったんで「12345678901234567890」と「半角スペース10個123456」って
ボリュームラベルで試して「半角スペース16個NTFS」にしといた。
ドライブレター + スペース3 + ラベル分のスペース11 + スペース2 + ファイルシステム
の並びなんで 16文字分 スペースがあれば判定も多少は安全かと。
「半角スペース11個+(何か文字列)」や「半角スペース7個NTFS」とかの変態なラベルは付けないと信じて。
770デフォルトの名無しさん:2013/03/13(水) 17:22:27.84
>>768
8+3=11
771デフォルトの名無しさん:2013/03/13(水) 18:42:23.86
8+1(.)+3 = 12
772デフォルトの名無しさん:2013/03/13(水) 19:28:39.25
>>771
ピリオドを記憶してわけじゃないから

http://www.cek.ne.jp/~kunio.h/fat3.html
773デフォルトの名無しさん:2013/03/13(水) 20:26:30.26
FATの仕様の話じゃなくてdiskpartの表示部のはなしだろ
774デフォルトの名無しさん:2013/03/13(水) 21:25:05.23
batファイルを起動した時にコマンドプロンプトが立ち上がりますが、このコマンドプロンプトのウィンドウのサイズを指定する方法はありませんか?
775デフォルトの名無しさん:2013/03/14(木) 00:01:00.99
>>774
mode con cols=xx lines=xx
776デフォルトの名無しさん:2013/03/14(木) 00:25:03.93
おおありがとうございます
777デフォルトの名無しさん:2013/03/14(木) 12:12:16.52
batからプログラムを実行するときにプロンプトを表示させない方法ってありますか?
VBSからbatファイルを呼び出す方法しかないでしょうか?
778デフォルトの名無しさん:2013/03/14(木) 13:56:33.54
batを呼び出すEXEを作ればいいよ
779デフォルトの名無しさん:2013/03/14(木) 16:17:21.72
prompt $s
780デフォルトの名無しさん:2013/03/14(木) 16:18:25.79
ショートカット
781デフォルトの名無しさん:2013/03/14(木) 16:44:27.98
コマンドプロンプトからat 16:40 /interactive nodepad
ってやってもメモ帳が起動しません
間違ってるところをご指摘お願いします
782デフォルトの名無しさん:2013/03/14(木) 16:45:57.38
ミス
nodepadじゃなくてnotepadです
783デフォルトの名無しさん:2013/03/15(金) 02:53:04.41
>>781
atコマンドはOSによって動作がかなり違うみたい。

http://www.atmarkit.co.jp/fwin2k/win2ktips/1165atsys/atsys.html

ちなみにうちのWindowsXP Homeだとそれでちゃんとメモ帳起動したよ。
784デフォルトの名無しさん:2013/03/15(金) 04:11:11.57
試しにフルパスで書いてみるとどうだい
at 16:40 /interactive C:\Windows\notepad.exe
とか。(System32の下かも知れんが、いずれにしろ実際にある場所を書く)
785デフォルトの名無しさん:2013/03/15(金) 04:40:24.74
リンク先に、/interactiveを付けても2000Pro/XP以外ではダメだったと書かれてるな
786デフォルトの名無しさん:2013/03/16(土) 00:40:18.55
セキュリティ強化のためにVista以降からはサービスからのデスクトップへのアクセスが制限されました
http://itpro.nikkeibp.co.jp/article/COLUMN/20071212/289308/
http://ap.atmarkit.co.jp/bbs/core/fdotnet/12442
787デフォルトの名無しさん:2013/03/16(土) 04:55:29.42
知らんかったこれ
788デフォルトの名無しさん:2013/03/18(月) 15:44:15.72
バッチファイルからユーザーのexeを呼び出すような場合、
手軽にひとまとめのファイルにする方法はあるでしょうか?
詳しくない人に手渡すとき、ばらばらになると面倒なので。
789デフォルトの名無しさん:2013/03/18(月) 19:22:19.55
>>788
zipで
790デフォルトの名無しさん:2013/03/18(月) 21:00:09.18
Windows RTのコマンドプロンプトの互換性ってどんな感じなんだろ?
robocopyとかifとかforとかってWindows 8と同じくらいの機能あるのかな?
Surface RTの日本語版が出たから気になってるんだけど。
791デフォルトの名無しさん:2013/03/19(火) 17:44:30.01
イーモバイルを使ってまして
あらかじめ登録したダイアルアップ設定をショートカットでデスクトップに置いてマウスで接続しているんですが
これをbatファイルのクリックで「もし接続されていなければ接続、接続されていれば切断」っというのは出来ますか?
792デフォルトの名無しさん:2013/03/20(水) 01:01:20.95
ipconfigで確認とか
793デフォルトの名無しさん:2013/03/22(金) 12:50:24.76
c:??aaa??bbb??ccc??ddd.cmd
というバッチファイルでcccというフォルダ名を取得したいのですが
どのようにしたらよいでしょうか?
794デフォルトの名無しさん:2013/03/22(金) 14:32:01.70
意味不明
795デフォルトの名無しさん:2013/03/22(金) 14:45:32.93
for %%a in (.) do echo %%~nxa
796デフォルトの名無しさん:2013/03/22(金) 14:57:57.80
for %%a in (%~p0) do echo %%~nxa
797デフォルトの名無しさん:2013/03/22(金) 15:09:05.35
forかsetのhelpにディレクトリを取得する方法が書いてなかったっけ
798デフォルトの名無しさん:2013/03/22(金) 15:12:13.46
>>795-796
このスレの住人の温度の無さは抜群
799デフォルトの名無しさん:2013/03/22(金) 19:07:27.04
pushd %~p0
%cd:\=&set dir=%
echo %dir%
800デフォルトの名無しさん:2013/03/22(金) 19:15:28.96
劣った案を後から出すのって何?
801デフォルトの名無しさん:2013/03/22(金) 19:16:07.89
自己顕示欲
802デフォルトの名無しさん:2013/03/22(金) 19:26:56.54
>>796はXPではダメ
何故なら、%~p0は、c:\aaa\bbb\ccc\
となり、その結果、
ECHO は <ON> です。
と表示されるから
803デフォルトの名無しさん:2013/03/22(金) 19:51:43.38
for %%a in (%~p0..) do echo %%~nxa
804デフォルトの名無しさん:2013/03/22(金) 23:01:20.99
ピリオドが一個多い
805デフォルトの名無しさん:2013/03/23(土) 03:58:06.18
「\ccc\ddd.cmdでcccのフォルダ名を取得したい」ってのは、単にバッチ自身のあるカレントディレクトリ
の引数を知りたいだけなんじゃないのか…? %~p0 だけで答えは済んでるのかも
806デフォルトの名無しさん:2013/03/23(土) 05:17:17.40
俺には
c:\aaa\bbb\ccc\ddd.cmdでcccを取得したい
としか読めないが?
807デフォルトの名無しさん:2013/03/23(土) 09:42:45.83
行間読めよ
808デフォルトの名無しさん:2013/03/23(土) 18:36:00.34
c\aaa\bbb\をわざわざ削除したところに意味があってだな
809デフォルトの名無しさん:2013/03/26(火) 18:52:16.33
スレの趣旨から外れてるかもですが、お尋ねします。

コマンドプロンプトの履歴(F7キー)の中身をテキストに書き出す方法ってありますか?

ネットや書籍で情報収集

コマンドプロンプト上で実行

このコマンドいいな。バッチファイルにして使おう。

特に長いコマンドだと手打ちでテキストに書き出すのが大変!

という状況が改善可能であればな、と考えています。
ご存知の方居りましたらよろしくお願いいたします。
810デフォルトの名無しさん:2013/03/26(火) 19:04:42.73
>>809
doskey /history
811デフォルトの名無しさん:2013/03/26(火) 19:15:02.51
別の方法だと、マウスで範囲選択後、コマンドプロンプトのタイトルバー右クリック、編集、コピー
テキストエディタで貼り付ける
812809:2013/03/26(火) 19:36:48.05
>>810-811さん、レスありがとうございます。
できました!
doskeyコマンドは初めて知りました。
色々オプションもあるんですね、こちらも勉強しなくては。
実は、これまで画面見ながら手打ちしていたので(恥)、これでいろいろ捗ります。
迅速な対応ありがとうございました!
813デフォルトの名無しさん:2013/03/26(火) 20:21:17.99
やめとけ
履歴はいいが、その用途はバッチファイルだろ
814デフォルトの名無しさん:2013/03/27(水) 10:38:29.42
@echo off
taskkill /f /IM notepad.exe

echo offにしてるのに失敗しても成功しても以下のいずれかの文章がでます
・エラー: プロセス "notepad.exe" が見つかりませんでした。
・成功: プロセス "notepad.exe" (PID 2892) は強制終了されました。

非表示にする方法教えてください
815デフォルトの名無しさん:2013/03/27(水) 11:09:00.94
>>814
「コマンドプロンプト 標準出力 標準エラー出力 リダイレクト」などで検索。
816デフォルトの名無しさん:2013/03/27(水) 11:37:40.55
コマンドプロンプトを2つ立ち上げて、それぞれのウィンドウをAとBとします
AからBに文字を送信する方法ないですか?
817デフォルトの名無しさん:2013/03/27(水) 13:05:34.72
そんな事をしない設計にするのが先だ
818デフォルトの名無しさん:2013/03/27(水) 13:30:55.70
Aでテキスト書き込み
Bでテキスト読み込み
819デフォルトの名無しさん:2013/03/27(水) 15:00:45.44
>>816
少なくともバッチファイルの範疇ではないなあ
代替の方法が多分あると思うぞ、そもそも何故そうしたいんだ?
820デフォルトの名無しさん:2013/03/27(水) 15:12:03.37
あるプログラムをAから起動して
Bでそのプログラムをリロードしたいんですよ
821デフォルトの名無しさん:2013/03/27(水) 15:20:01.71
そんな事をしない設計にするのが先だ
822デフォルトの名無しさん:2013/03/27(水) 15:34:29.76
外部からどうこうするってのは無理だがAとBで定期的にファイルを
読みに行ってその内容によって自分自身であれこれするってのは出来るけど。
823デフォルトの名無しさん:2013/03/27(水) 16:00:16.33
>>820
そのBは常時動いてるバッチファイルスクリプトってこと?
…何かバッチの用途を大幅に間違えてる気が
824デフォルトの名無しさん:2013/03/27(水) 21:55:16.45
バッチAがファイルCに書いて、
バッチBがファイルCを読む。
んだけ。
825デフォルトの名無しさん:2013/03/29(金) 02:19:23.53
set a1=test
set b=1
ってやって
echo | echo %a%b%%
だったか
echo | echo !a%b%!
みたいなことすると時々
「プロセスが、存在しないパイプに書き込もうとしました」
ってのが返ってくるんだけどこれってどういう現象なの?
一応それが出るときもechoの出力は普通にされてるみたいで
条件も別に特定の値って訳でもなさそうでよくわからないんだけど
826デフォルトの名無しさん:2013/03/29(金) 15:44:18.77
相手が閉じたパイプに書き込んでるのよ
827デフォルトの名無しさん:2013/03/29(金) 22:45:22.73
閉じたパイプってのもよくわからないんだけど
毎度発生するわけじゃないってのがなのかどういうこと
実害無いなら 2> nul で消せないのかと思ったけど書き方わかんなひ
828デフォルトの名無しさん:2013/03/29(金) 23:01:51.39
前のechoが出力するときに、後ろのechoが終了している
つーか、echoにパイプする低脳はめったにいない
829デフォルトの名無しさん:2013/03/30(土) 00:25:26.43
できるかどうかやってみただけなんだけどね
何で毎回同じ動作にならないのかが気になる
830デフォルトの名無しさん:2013/03/30(土) 01:17:05.50
多重処理だからだろ
win16なら同じ動作だよ
831デフォルトの名無しさん:2013/03/30(土) 07:53:35.20
なるほど
実害は無いよねこれ
832デフォルトの名無しさん:2013/03/30(土) 15:58:20.13
低脳は実害あるわw
833デフォルトの名無しさん:2013/03/31(日) 09:30:54.04
@if(0)==(0) ECHO OFF
CScript.exe //NoLogo //E:JScript "%~f0" %*
GOTO :EOF
@end
で書き始めるの超便利なんだけど、スレチかな?

>>827
パイプってのはコマンドラインで「|」使うことのパイプじゃなくて、ソケットのようなプロセス間通信機構としてのパイプを意味してるんだよ。
コマンドラインでパイプするとこのパイプが作られて入力側と出力側プログラムにパイプハンドルが渡されるし、ファイルをリダイレクトするとファイルハンドルが渡される。
これらのファイル・パイプ・コンソールハンドルはWindowsではファイルハンドルと比較的挙動が似ているしハンドルなのでCloseHandleとかがフツーに作用するんだけど、
パイプの場合片方が閉じられるともう片方が読み書き(読みの場合はパイプ内のバッファ読みきってから)の時にEOFっぽいエラーが出てくる。
cmd.exeの内部コマンドは色々怪しい挙動する部分があるから同じかは知らんけど(内部コマンドはプロセス増えない=パイプの渡し方がそもそも違う)、右のechoが(入力は使わないとかで)入力を閉じたり終了した後に左のechoが改行文字をパイプに投げるとこのエラーになるはず。

あと、パイプやリダイレクト使うとそれを受け取った側でハンドルの種別を判別して挙動が変わったりするから、そのへんもめんどい。
ハンドルがコンソールだとWriteConsoleWでUnicode出力するけど、パイプやファイル相手だとWriteConsoleW使えないからマルチバイト文字列に変換して(!)WriteFileするプログラムとか・・・正直どうしようもない。
834デフォルトの名無しさん:2013/03/31(日) 10:42:50.10
>>833
バッチでやる範疇じゃないなって時にはそれやるけど
それってもうバッチじゃないよねって感じがするね
835デフォルトの名無しさん:2013/03/31(日) 11:39:03.10
エディタのシンタックス判別や補完に影響出るからやらない。
836デフォルトの名無しさん:2013/03/31(日) 11:57:39.07
>>834
テンプレの
>質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。
に含まれてると理解してたけど違うの?
このJScript(WSH),Perl埋め込みのおまじない、>2 あたりに書いてあっても良い気がする。

さっきググってRuby埋め込みもあるのを今知った。
”等の埋め込み”の”等”って他に何があるんだろ?
837デフォルトの名無しさん:2013/03/31(日) 11:59:11.32
ゴメン、安価ミス
>>836>>833 宛です
838デフォルトの名無しさん:2013/03/31(日) 16:43:55.70
>>833
こういうのやるなら最初からWSHでやれよって思う。
839デフォルトの名無しさん:2013/03/31(日) 18:45:39.84
個人には意見差があります
840デフォルトの名無しさん:2013/03/31(日) 22:45:33.01
>>838
バッチ書いてて途中でバッチではやりたくない文字列処理が出てきた時にコレを埋めてWSH(JScript)に投げるとかいう場合もある
最初からWSHで書いたほうがCScript起動のオーバヘッドもないんだけど、FORの使い勝手の良さから無計画にバッチで書き始めちゃったりとかね
841デフォルトの名無しさん:2013/03/31(日) 23:27:33.47
>>840
これってバッチの途中から出来たっけ?
842デフォルトの名無しさん:2013/03/31(日) 23:39:09.13
そうなってるだろ?
843デフォルトの名無しさん:2013/03/31(日) 23:58:09.31
そんなことも分からずに使ってるのか?
844デフォルトの名無しさん:2013/04/01(月) 02:02:01.12
>>841
書いてる途中にコレを分割してバッチの頭と尻と腹に埋めて使う
途中でWSH混成にする辺りから判るように計画性なんて欠片もないので、書いてる途中でスクリプトの頭に別のもの埋める位は日常だ
845デフォルトの名無しさん:2013/04/02(火) 13:55:46.54
ある実行可能ファイル(バッチファイルなど)をプロセスIDを指定して実行させることはできないのでしょうか?
Linuxでは出来たのですがWindowsでのやり方がわかりません…
846デフォルトの名無しさん:2013/04/02(火) 20:34:36.95
変態ソフトやね
847デフォルトの名無しさん:2013/04/03(水) 14:46:06.72
>>845
起動中のプロセスからウィンドウタイトルや実行ファイル名が条件に合うプロセスのIDを列挙…とかなら出来たような
(バッチで…というのはどうだったか解らんが技術的には可能なので)
でもそうじゃなくてプロセスIDを固定したいってこと?何故そうしたいのか気になるところだけど、ちと変態挙動だねえ…出来るのかな
848デフォルトの名無しさん:2013/04/03(水) 14:56:03.31
/proc/id/cmdlineを実行って事?
849デフォルトの名無しさん:2013/04/03(水) 16:29:48.64
>>845
linuxでどうやるのか教えて
なんか気になる
850デフォルトの名無しさん:2013/04/03(水) 17:56:57.74
プロセスIDとユーザIDを混同してるんじゃね?
プロセスIDを指定とか、その発想がまず訳分からん
851デフォルトの名無しさん:2013/04/03(水) 18:08:44.71
linuxはそういうもん
852デフォルトの名無しさん:2013/04/03(水) 18:10:32.47
本人じゃないけど、sleepを長めに立ち上げて別の処理が終わり次第sleepを殺す
なんて事をやってる俺はPIDがわかると楽になるな
853デフォルトの名無しさん:2013/04/03(水) 18:17:48.46
PIDがわかるとPID指定はちがうだろ?それもわからんの?
854デフォルトの名無しさん:2013/04/03(水) 18:20:31.96
同種のバッチ複数からsleepを立ち上げたら「俺のスキルじゃ」対象のsleepのPIDがわからないんだ、ごめんね
855デフォルトの名無しさん:2013/04/03(水) 18:32:43.20
start /w "uniq title 1" sleep 10
856デフォルトの名無しさん:2013/04/03(水) 18:37:28.44
一応言うけど >>852,854 と >>845 は別人だからね
>>852のsleepは別の方法で解決してるから無視してくださいな
857デフォルトの名無しさん:2013/04/03(水) 19:13:40.69
どっちも無視してくださいな
858デフォルトの名無しさん:2013/04/04(木) 02:11:07.36
あれだ
EXE実行するごとにプロセスリスト見て求めてるIDじゃなかったら殺せばいいやね
859デフォルトの名無しさん:2013/04/04(木) 03:10:12.86
for %%i in (%*) do (echo "%%~fi">>"C:\ドラッグアンドドロップされたものリスト.txt")
これに1000個位D&Dすると「ファイル名または拡張子が長すぎます。」って怒られるんだけど回避法ないかな
860デフォルトの名無しさん:2013/04/04(木) 04:02:12.61
>>859
その行に到達する前にエラーになってる
http://support.microsoft.com/kb/830473/ja
DDEだかOLEだかで制限の緩和が出来たような気がするけど、バッチからは触れん気がするし詳しくは忘れた

リストの作成は別のGUI付きアプリケーション(GUI上へのドロップはこの手の制限が少ない)でやるか、
十数ファイルずつ処理するか、一つのフォルダにぶち込んでfor in (*.*)で回すか、くらいしか思いつかん
861デフォルトの名無しさん:2013/04/04(木) 20:47:16.89
やりかた帰るんだな
862デフォルトの名無しさん:2013/04/12(金) 21:51:39.34
excelファイルを開くのに
start hogehoge.xls
を用いているのですが既に(ネットワーク上の誰かによって)開かれている場合アクセスできないといわれ開けません

このとき、直接開いた時と同じ動作(hogehoge.xlsは編集中のためロック云々、読み取り専用にしますか?y/nみたいの)
にしたいのですがどのように記述すればよいでしょうか?
ちなみにexcelファイルはファイル名に今日の日付がついているのでショートカットをクッションにして開くようなことはできないと仮定します
863デフォルトの名無しさん:2013/04/12(金) 23:17:07.44
EXCELの実行ファイルに開きたいファイルを引数で与えて起動したらダメだっけか?
ファイル名のみの引数でダメだとしても、なんかMS Officeには/eとか/ddeとかその手のオプションが色々あるようだしその辺に希望の動作は有るんじゃないかとは思うけど
864デフォルトの名無しさん:2013/04/12(金) 23:41:45.03
start excel /r hogehoge.xls
865デフォルトの名無しさん:2013/04/17(水) 07:11:19.60
バッチを勉強中なんだけど・・・
下記のように「Busyo.txt」、「Sei.txt」、「Mei.txt」の3つのテキストがあります

 Busyo.txt  Sei.txt   Mei.txt
┌───┐ ┌──┐ ┌──┐
│総務部│ │安藤│ │明子│
└───┘ │井上│ │一郎│
          │上田│ │運子│
          │遠藤│ │英治│
          │小川│ │音子│
          └──┘ └──┘

これを、それぞれバッチで結合したいと思っています
866デフォルトの名無しさん:2013/04/17(水) 07:15:00.19
まず「Busyo.txt」+「Sei.txt」のように<1対多>のパターン
そして「Sei.txt」+「Mei.txt」のような<多対多>のパターンです

Busyo.txt + Sei.txt    Sei.txt + Mei.txt
┌──────┐      ┌─────┐
│総務部  安藤│      │安藤  明子│
│総務部  井上│      │井上  一郎│
│総務部  上田│      │上田  運子│
│総務部  遠藤│      │遠藤  英治│
│総務部  小川│      │小川  音子│
└──────┘      └─────┘
867デフォルトの名無しさん:2013/04/17(水) 07:22:23.09
それからそれから?
868デフォルトの名無しさん:2013/04/17(水) 08:00:24.16
どうすれば良いのかなという問いです

・「Busyo.txt」+「Sei.txt」のように<1対多>のパターン

こちらはset /p hogehoge=<Busyo.txt でなんとかそれっっぽいのはできたけど
「Sei.txt」+「Mei.txt」のような<多対多>のパターンで苦しんでいます
869デフォルトの名無しさん:2013/04/17(水) 12:02:42.56
call > out.txt
echo.> Mei_
type Mei.txt>> Mei_
set /a cnt = 0
for /f "delims=" %%a in (Sei.txt) do (
set "SEI=%%a"
call :s
set SEI=
)
del Mei_
set cnt=
goto :eof

:s
set /a cnt += 1
for /f "skip=%cnt% delims=" %%a in (Mei_) do (
echo %SEI% %%a>> out.txt
goto :eof
)

こんなんでどう
870デフォルトの名無しさん:2013/04/17(水) 12:28:22.85
setlocal enableextensions enabledelayedexpansion
type nul>out.txt
set i1=Sei.txt
set i2=Mei.txt
(for /F "delims=" %%i in ('find /C /V ""') do set /a a1=%%i) <%i1%
(for /F "delims=" %%i in ('find /C /V ""') do set /a a2=%%i) <%i2%
if %a1% lss %a2% set /a a1=a2
(for /L %%i in (1,1,%a1%) do (
set /p s1=<&4 >nul
set /p s2=<&5 >nul
echo;!s1! !s2!>>out.txt
)) 4<%i1% 5<%i2%
871デフォルトの名無しさん:2013/04/17(水) 13:21:33.39
エクセルでも使った方がずっと楽だがな
872デフォルトの名無しさん:2013/04/17(水) 13:26:28.49
全自動バッチで中間ファイルを複数スレッドで作るとやらざるを得ないから参考になる
873デフォルトの名無しさん:2013/04/17(水) 20:13:49.39
for /f %%S in (Sei.txt) do (
set /p M=
call echo %%S %%M%%>>out.txt
) < Mei.txt
874デフォルトの名無しさん:2013/04/17(水) 20:50:09.79
>>873
動かねぇだろ
875デフォルトの名無しさん:2013/04/17(水) 21:02:05.46
すまん、空で書いてるもんで
(for /f %%S in (Sei.txt) do (
set /p M=
call echo %%S %%M%%>>out.txt
)) < Mei.txt
こうか?
876865-866:2013/04/17(水) 23:31:12.25
神降臨!

>>869-870,875
ありがとうございました
感謝です!
877デフォルトの名無しさん:2013/04/17(水) 23:34:18.06
878デフォルトの名無しさん:2013/04/18(木) 14:03:33.21
でも、実際にはそれぞれが一致するか分からないよな。
一行でもずれてたら全部ごみだ。
最低でも行数が一致するかどうかは事前にチェックしないといけないと思う。

キーがあるならfindで探してつなげられるとおもうけど。

まあ、それっぽい名前をランダムに作るならありかな。
それでもランダムを計算したほうがいいと思うけど。
879デフォルトの名無しさん:2013/04/18(木) 20:22:16.51
見苦しいなw
要するにunixのjoin相当だな
880デフォルトの名無しさん:2013/04/18(木) 21:09:17.75
pasteだろw
881デフォルトの名無しさん:2013/04/19(金) 07:55:01.54
>878
>最低でも行数が一致するかどうかは事前にチェックしないといけないと思う。

確かにSei.txtに神田、木梨とか追加して実行したら
神田音子、木梨音子ができちゃうね
882デフォルトの名無しさん:2013/04/19(金) 17:43:44.73
あほか
883デフォルトの名無しさん:2013/04/19(金) 19:29:24.87
要件にないこと云々
884デフォルトの名無しさん:2013/04/20(土) 00:24:55.08
バッチで動く証跡管理モドキのツールを作りたいのです
共有フォルダは全部Dドライブにあるので
とりあえず下記みたいにして無限ループにしてみました

:start
openfiles /query /v /s \\localhosts /FO csv |find "D:\" >>hoge.csv
goto start

ただこれだと時刻がとれないのです
一行の中にecho %time% で表示される時刻も一緒に出せないでしょうか
885デフォルトの名無しさん:2013/04/20(土) 00:36:17.45
実行結果は下記のようになります
"localhosts","32","root","Windows","0","Read","D:\\bin\hogehoge.txt"
"localhosts","26","2chuser","Windows","0","Read","D:\\総務部\会計課\予算.doc"
"localhosts","18","sitaraba","Windows","0","Read","D:\\人事部¥25年度異動.mdb"

こいつを下記みたいにしたいのです
01:23:34.56,"localhosts","32","root","Windows","0","Read","D:\\bin\hogehoge.txt"
12:00:12.34"localhosts","26","2chuser","Windows","0","Read","D:\\総務部\会計課\予算.doc"
20:44:08.46"localhosts","18","sitaraba","Windows","0","Read","D:\\人事部¥25年度異動.mdb"
886デフォルトの名無しさん:2013/04/20(土) 00:41:03.77
また、そんな百済ないのではなく、もっと良い方法があれば教えてください
一応、イベントログの監査機能のONもやってみたのですが
あれだと見にくいし色々なログを拾いすぎてイマイチでした
なお本物の証跡管理ソフトは1000万とかいうトンデモナイ見積でした・・・
887デフォルトの名無しさん:2013/04/20(土) 01:15:55.30
:start
for /f "delims=" %%a in ('openfiles /query /v /s \\localhosts /FO csv ^|find "D:\"') do call echo %%TIME%%,%%a>>hoge.csv
goto start
888デフォルトの名無しさん:2013/04/20(土) 02:37:33.65
>>884
%time% は午前中にメンドクサイ事になる気がする。
%time: =0% で置換しといた方がいい気がする。
889デフォルトの名無しさん:2013/04/20(土) 09:34:10.00
>>887-888
ありがとう、月曜になったら職場の鯖で動かしてみます

ついでにご存知なら教えて欲しいのですが、このopenfilesだと
Read と Warite は拾ってくれるのですがDelete と Create は拾ってくれません
これを拾う方法は何かないでしょうか
890デフォルトの名無しさん:2013/04/20(土) 21:55:04.76
wmic
891デフォルトの名無しさん:2013/04/22(月) 21:17:49.85
>>887-888
『報告』
ばっちり動きました
892デフォルトの名無しさん:2013/04/23(火) 07:29:33.32
いま2chで話題になってるこのツール欲しいな
前編 http://himasoku.com/archives/51776465.html
後編 http://himasoku.com/archives/51776946.html
893デフォルトの名無しさん:2013/04/23(火) 08:49:43.40
公開したらアンチウィルスに登録されるオチだけどな
つか最後のスクショ見たらWin32APIをC#クラスでラップとかはやってるのに、exe名称をsvchostにして偽装で終わりってのはなんか半端だなぁ・・・
dllにして適当なプロセスに読ませりゃいいのに・・・
894デフォルトの名無しさん:2013/04/23(火) 22:34:46.31
>>892
十数年前からフリーで公開されてるのがたくさんあるから。
895デフォルトの名無しさん:2013/04/23(火) 22:49:05.12
>>893
dll もぐりこませるのはチートでやったけど、
DLLのバグがプロセスに影響して業務に支障が出る場合がある。
また、プログラムが動作するためのスタックやヒープが少ないとオーバーフローのエラーになる。

しかも>>892 が使ってるのはC# だけど、これは .net なので、
アプリが .net じゃない場合はライブラリをDLLが自分で全部ロードしないと動かない。
.net な DLLを走らせるには結構な数のライブラリを読み込まないといけないけど
それはDLLをもぐりこませるインジェクタがやらないといけない。

どの道、インジェクタを exe で作る必要があるんだから
ほんとのスパイ目的じゃない奴はある程度明示的に存在したほうがいい。
だから偽装する必要すらないと思うんだけど、偽装するならsvchostだよな。
俺も怪しいと思いながらsvchostは見逃してる。
896デフォルトの名無しさん:2013/04/24(水) 04:06:10.32
>>895
DLL一個インジェクションして死ぬようなプロセス(又はdll)はそれはそれで問題が有ると思うが・・・
かといってシステム以外の場所にいるシステムと同じ実行ファイル名とか、パスが見える状況では怪しすぎる。
リソース消費の関係でプロセス分けるにしても、ある種の明示をするにしろ、rundllでdllを読ませたほうが良いと思う。

dllだけだとインジェクタが要るのは.NETに限らずdllの宿命だけど、
こういうケースならADからレジストリ弄ってエクスプローラなりieなりに読み込ませたり、rundllにキックさせるなり出来る。
C#でもstdcallなエクスポートも出来たりしたと思うんで(そういうラッパも有るみたいだし)そのへんは問題無い・・・筈。

個人的な印象では、後ろ暗さ・怪しさ感は、不正パスsvchost>インジェクション>rundllで
一般ユーザからの隠蔽性能は、インジェクション>rundll≧不正パスsvchost、かなぁとか思う。
自分だったら不正パスsvchostとか見つけたらその瞬間にkillしてVirusTotal送りするな。

っていうかスレチだなゴメン
897デフォルトの名無しさん:2013/05/01(水) 12:11:28.51
FAT32なデバイスの空き容量を取得する方法を教えておくれ
fsutil volume diskfree やったら「FSUTIL ユーティリティにはローカル NTFS ボリュームが必要です。」と断られてしまった
898デフォルトの名無しさん:2013/05/01(水) 23:23:55.18
dirコマンドの何が不満なのかね?
899デフォルトの名無しさん:2013/05/02(木) 00:24:07.51
FAT32かどうかも知りたいって事なら、素直にVBScriptと併用するのが無難だと思うが
900デフォルトの名無しさん:2013/05/03(金) 10:22:45.19
Win板PowerShellスレに書いたが、反応無さげな気がするのでこちらにも投下

PowerShellが標準で実行できる設定になってないことにハラが立ったので、
PowerShellスクリプトとして実行可能なバッチファイルを作ってみた
もし不備や改善できる点があれば指摘して欲しい
ファイル末尾に何行か改行を入れないと何故か動かないことがあるので注意

@(":","`""<#") 2>NUL
@POWERSHELL -Command - <%0
@EXIT /B %ERRORLEVEL%
#>)|%{}

Write-Host "Hello world!"
901デフォルトの名無しさん:2013/05/03(金) 10:41:41.66
次はこれをJS,VBSでやってみたらどうだろう
以前CUI環境でのみ実行して欲しいスクリプトとかあったんだよな

……などと考えた後、全部WSH側でやった方が早いことに気づいた
出来たとしても、実用的な意味は多分無いな、うん
902デフォルトの名無しさん:2013/05/03(金) 11:11:28.54
どうしても1ファイルにしたい場合は別として、
通常はパラメータでExecutionPolicy指定する方が良いと思う
>powershell -ExecutionPolicy RemoteSigned .\test.ps1
903デフォルトの名無しさん:2013/05/03(金) 11:53:36.37
-ExecutionPolicyオプションで一時的に実行ポリシーを変更できたのか
するとドットソースの読み込みが出来るようになるし、>>900 で標準入力に
流し込んでいるせいか、変な動作してた部分が改善するかもしれないな
ご指摘感謝です
904デフォルトの名無しさん:2013/05/09(木) 00:29:27.36
複数人で共有してるファイルサーバのDドライブ上に新しいファイルやフォルダが作られたり
削除されたらログに吐くようにしたいのです

単純にdirで吐いたやつを比較するだけだと
dir /s /b d:\ >hoge1.txt
timeout /t 3600
dir /s /b d:\ >hoge2.txt
fc hoge1.txt hoge2.txt >hoge3.txt

これだと新規ファイルを作るとhoge2.txtの行がズレた文だけ全部が表示されてしまいます
またDドライブの中身が数ギガあるので最初の「dir /s /b d:\」の段階で凄く時間がかかる
またフォルダを拾ってくれませn

何か良い方法はあるんでしょうか?
905デフォルトの名無しさん:2013/05/09(木) 09:04:01.12
>>904

dir /s /b d:\ > h1
timeout /t 3600
dir /s /b d:\ > h2
copy h1 + h2 h3
sort h3 | uniq -i -u > h4
copy h1 + h4 h5
sort h5 | uniq -i -d > h7
copy h2 + h4 h6
sort h6 | uniq -i -d > h8
echo sakujo
type h7
echo tsuika
type h8

uniq はここから
ttp://unxutils.sourceforge.net/
時間がかかるのは仕方ないと思う
フォルダも含むので問題ない
906デフォルトの名無しさん:2013/05/09(木) 18:31:59.66
ファイル システム イベントの監視の概要
907900:2013/05/09(木) 19:39:59.95
どうにか形になったので最後に報告

@(":`""<#")2>NUL
@ECHO OFF
SET PS_TMP=
SET PS_CMD=%0
FOR /F "delims=" %%a IN ('CMD /C "POWERSHELL -NoLogo -Command -<%0"') DO SET PS_TMP=%%a
IF NOT EXIST %PS_TMP% EXIT /B 255
TYPE %0 >>%PS_TMP%
POWERSHELL -NoLogo -ExecutionPolicy RemoteSigned -File %PS_TMP% %*
SET PS_CMD=%ERRORLEVEL%
DEL %PS_TMP% 2>NUL
CMD /C "EXIT /B %PS_CMD%"
SET PS_TMP=
SET PS_CMD=
EXIT /B %ERRORLEVEL%
#>)>$null #↑bat ↓PS
if (&{!$MyInvocation.ScriptName}) {
 while (1) { try {
  $o = [System.IO.Path]::GetTempFileName()
  $n = ($o -replace "[^.]+$", "ps1")
  ren $o $n -ea Stop
  echo """$n"""
  exit
 } catch { rm $o -ea SilentlyContinue }}
}# setup完了

$args |%{ echo "コマンド引数:<$_>" }
Read-Host 標準入力おk
908デフォルトの名無しさん:2013/05/09(木) 19:47:13.30
サイズぎりぎりのところで何とか書き込めたか
もう少し短くまとめられたら良かったんだが、
bat部分がどうにも長くなってしまうわな

これで標準入力・コマンド引数・終了コードも
使えるようになったんでとりあえずはここまで
909デフォルトの名無しさん:2013/05/11(土) 18:11:18.06
すごい!あほ
910デフォルトの名無しさん:2013/05/11(土) 21:32:13.67
911デフォルトの名無しさん:2013/05/11(土) 21:39:50.52
すごい!かしこ
912デフォルトの名無しさん:2013/05/11(土) 22:50:55.25
>>907
TYPE %0 >>%PS_TMP% はなんで追記でリダイレクトしてるの?
DEL %PS_TMP% 2>NUL は他プロセスがファイルをロックしていて、
ファイル削除に失敗する可能性を考慮しなくて良いのかしら?
913デフォルトの名無しさん:2013/05/11(土) 22:58:01.99
JAVASCRIPTでは、配列をグローバル変数として使うことはできないのか?
914デフォルトの名無しさん:2013/05/12(日) 12:27:10.94
>>904のをUSNジャーナル使って何とか出来んかと色々やってみてるんだけど
どうも手に余るっぽい。ファイルの削除を追うスマートな方法がわからん。
とりあえず今出来てるぶん。ファイルが多くなるとdir使うよりはずっと速いんだが…

setlocal enableextensions enabledelayedexpansion
set target=D
for /f "tokens=1,2 delims=x" %%i in ('fsutil usn queryjournal %target%:') do if "%%i"=="次の USN : 0" set nextusn=0x%%j
if not exist usn%target%.txt (
echo;%nextusn%>usn%target%.txt
goto :eof
)
set /p lastusn=<usn%target%.txt
set log=%date:/=%_%time::=%
set log=%target%_%log: =0%.txt
if "%nextusn%" neq "%lastusn%" (
for /f "tokens=1,2 delims=x" %%i in ('fsutil usn enumdata 1 %lastusn% 0x7fffffffffff0000 %target%:') do (
if "%%i"=="ファイルの参照番号 : 0" (
for /f "delims=" %%k in ('fsutil file queryfilenamebyid %target%: 0x%%j') do set changedfile=%%k
set changedfile=!changedfile:~23,-3!
echo;!changedfile!>>%log%
)
)
echo;%nextusn%>usn%target%.txt
)
915デフォルトの名無しさん:2013/05/12(日) 17:21:48.89
>>912
追記になってるのは引数渡しで試行錯誤してた時の名残だわ
ファイル削除不能の可能性は確かにあるし、スタートアップにでも仕込みを
入れれば対応可能だろうけど、一時フォルダ内に残ったゴミの量をみれば、
MS含め誰も気にしてないのは明らかだよね
916デフォルトの名無しさん:2013/05/12(日) 17:54:54.75
917デフォルトの名無しさん:2013/05/13(月) 08:14:06.89
>>910
後ればせながらちょっと見てきたが、流石MSの人、良くできてるね

正規表現でスクリプトを分別する方法は考えていたけど、ワンライナーに
収まるよう短く出来る程PSに習熟してないので、その辺は敵わないとしても
bat部分識別用の行頭@@とか、GOTO :EOF なんていう定義済みのラベル
でサクッと戻り値返しつつ終了してるところとか、いやこれはお見事
918デフォルトの名無しさん:2013/05/13(月) 08:21:40.16
あれ? EXITで終了しても普通に最後の戻り値取れるね
GOTOで終了させるのは何の意図があるんだろうか
919デフォルトの名無しさん:2013/05/13(月) 15:41:06.78
>>918
バッチ部分を色々拡張した時に、PSの呼び出しがサブルーチンの中だった場合にも使えるからとか?
920デフォルトの名無しさん:2013/05/15(水) 00:14:53.26
LinuxやMacなどに対応したWindows PowerShell、ついに登場!もうWindows買わなくていいぞ
http://engawa.2ch.net/test/read.cgi/poverty/1368543510/
921デフォルトの名無しさん:2013/05/15(水) 00:23:45.06
スレチ
922デフォルトの名無しさん:2013/05/21(火) 03:53:05.56
「,」区切りのファイルの1列目を抽出し、スペースを削除したものを
別ファイルに出力することを考えております。下記のように行いましたが、うまくいかず。。。
助言頂けると助かります。また2連続でスペースがあった場合、次の行を読みに行くようにしたいです。
@echo off
setlocal enabledelayedexpansion
for /F "tokens=1 delims=," %%a in (test.txt) do (
set TARGET=
set FLAG=0
call :main %%a

:main
set AAA=%1
rem スペースなのか確認。
if not !AAA!_CHK==_CHK (
set TARGET=!TARGET!!AAA!
set FLAG=0
shift
call :main
) else (
rem スペースだった場合
if !FLAG!==1 (
rem 2連続でスペースだった場合
call :NEXT
) else (
set FLAG=1
shift
call :main
)
)
:NEXT
echo !TARGET!>>kekka.txt
)
923デフォルトの名無しさん:2013/05/21(火) 03:55:36.31
【test.txt】
AAA AA,BBB
CCC CC,DDD
E EEEEE,FFF

【kekka.txt(期待値)】
AAAAA
CCCCC
EEEEEE

書ききれなかったので、2回にわけます。
924デフォルトの名無しさん:2013/05/21(火) 06:07:52.78
rem 二重引用符とかが入力されると挙動が怪しくなるけど、ダメ文字回避は苦手なので放置
@echo off
setlocal enabledelayedexpansion
for /F "tokens=1 delims=," %%a in (test.txt) do call :main "%%a"
goto :EOF
:main
set FLAG=0
set BUF=%~1
set STR=
:mainloop
if defined BUF (
if "!BUF:~0,1!" == " " (
set /a FLAG+=1
) else (
set FLAG=0
set STR=!STR!!BUF:~0,1!
)
if !FLAG! GEQ 2 set BUF=-
) else (
if defined STR echo !STR!>>kekka.txt
goto :EOF
)
set BUF=!BUF:~1!
goto :mainloop
925デフォルトの名無しさん:2013/05/21(火) 07:56:45.27
shift ./?
926デフォルトの名無しさん:2013/05/21(火) 07:58:31.70
@echo on
927922:2013/05/21(火) 08:19:17.74
>>924
早速のご回答ありがとうございます。
想定していた結果が得られました。
またよろしければ1点ご教授頂けますでしょうか。

"!BUF:~0,1!"

これはどのような処理内容となるのでしょうか?
928922:2013/05/21(火) 08:24:17.33
すみません。もう1点抜けていました。

set BUF=!BUF:~1!

こちらも教えて頂けると助かります。
929デフォルトの名無しさん:2013/05/21(火) 08:32:15.30
>>928
ENABLEDELAYEDEXPANSION
について調べると良いよ
930デフォルトの名無しさん:2013/05/21(火) 08:33:50.65
あ、それとも ~の挙動か
あれもset/?辺りに載ってなかったっけ
931デフォルトの名無しさん:2013/05/21(火) 09:38:34.79
遅延展開は自分で使ってて知らんてことは無いだろうから後者じゃね?
932デフォルトの名無しさん:2013/05/22(水) 00:48:48.93
set /?に載ってるけど
"%BUF:~0,1%"はBUFのオフセット0(1文字目)〜1(2文字目)までの文字列を取り出す指定で、BUFの最初の一文字を展開する
"%BUF:~1%"はBUFのオフセット1(2文字目)〜最後までの文字列を取り出す指定で、BUFの最初の一文字を除く全てを展開する
文字単位で処理できることは処理できるけど、なんかどうにも野暮ったい

%%で出来る展開オプションは!!でも使える(けどifで使う時とかに挙動が違うとか何とか)
933デフォルトの名無しさん:2013/05/22(水) 20:23:22.95
ダメ文字の一部(!%^&<>|)回避の参考例
@echo off
for /f "delims=," %%i in (test.txt) do set "a=%%i" & call :x
goto :eof
:x
set /a b=0,c=0
:y
call set "d=%%a:~%c%,1%%"
if not defined d goto z
if "%d%"==" " (set /a b+=1) else set b=0
if not %b%==2 (set /a c+=1) & goto y
:z
call set "a=%%a:~0,%c%%%"
set "a=%a: =%"
if not defined a goto :eof
set "a=%a:^=^^%"
set "a=%a:&=^&%"
set "a=%a:>=^>%"
set "a=%a:<=^<%"
set "a=%a:|=^|%"
echo %a% >> kekka.txt
934デフォルトの名無しさん:2013/06/02(日) 08:39:36.13
当たり前だけど echo > って排他みたいな気の利いた事はしてないんだな
10万行4スレッド分担 HDD上で約1500行 RAMDisk上で約500行 も漏らすのは驚いた
935デフォルトの名無しさん:2013/06/02(日) 14:30:11.98
排他はしてるだろwばか
その結果漏らすんだろwばか
全体を逐次化したけりゃ、全体を()で括って
(

) > kekka.txt
ってやりゃいいんだよwばか
936デフォルトの名無しさん:2013/06/02(日) 15:54:48.02
ちょっとWindowsのバッチファイルのことで質問

特定のフォルダにある複数ファイルを別のフォルダに移動させたいんだが、
移動時の日付と時間が付加された形になるようファイル名を自動的にリネームしつつ移動したい
(例えばreadme.txt → readme-20130602-153908.txt)みたいな感じ

なのでバッチファイル中で

for %%A in (%1) do call :filemove %%A
exit /b

:filemove
set filename1=%~n1
set filename2=%~x1

〜(以下日付と時間を取得)

MOVE /Y C:\移動元\%filename1%%filename2% D:\移動先\%filename1%-%日付%-%時間%%filename2%

みたいに書いたんだが、元のファイル名に特殊文字が入っているとfilename1の内容が特殊文字のところで切られてしまうんで
拡張子より前のファイル名を正確に取得できず、最後のMOVEのところでコピー元のファイルがないと怒られてしまう
これをどうにかしてファイル名に特殊文字が入っていてもちゃんと機能するようにしたいんだけどうまいやり方ってないかな?
ファイル名に特殊文字を使わせないようにするのは無理なので、特殊文字があっても何とかするというスタンスでいきたんだけど・・・
エロい人いい方法があったら教えてくださいお願いします
937デフォルトの名無しさん:2013/06/02(日) 16:12:30.70
set "filename1=%~n1"
938デフォルトの名無しさん:2013/06/02(日) 17:37:12.88
バッチファイルでLF改行をCRLF改行に置換したり、
LF改行やCRLF改行を明示的に指定してファイルに書き込んだりすることはできますか?

なおLF改行1バイトを埋め込んだファイルを標準入力やパイプ渡しする方法以外でお願いいたします。
939デフォルトの名無しさん:2013/06/02(日) 21:01:02.68
940デフォルトの名無しさん:2013/06/02(日) 23:13:59.01
>>935
全体を()でって /wait 無しの start 使って完全に別スレッド動作になってるから...
まぁ、組んでる最中のお遊びだから気にしないでくれ
実際のところ、最後sortで〆るから別個のファイルに書き出すだけで済むんだ
941デフォルトの名無しさん:2013/06/03(月) 03:09:05.88
横だが、排他がいい加減なら漏れるんじゃなくて、順序が乱れたりデータが壊れるのが普通。
その手の症状が無いなら、排他制御の問題じゃなくてバッファが溢れてると考えられる。

つまりパイプのバッファサイズをどうにかして設定できれば…
942デフォルトの名無しさん:2013/06/03(月) 06:38:19.52
排他ってこの場合は書き込みロックだろ。
排他をしてないんじゃなく、衝突時にロック解除を待たずにエラーとして書き込みを諦めるから漏らしてるんだろ。
衝突時に対象が開放されるまで待機するような処理をするプログラムにリダイレクトして代理書き込みしてもらうか、
cmd.exeプロセスごとに別の書き込みファイルに書いて後でマージするか、ってところじゃね。

935のやり方だと、同一のcmd.exeプロセス上の書き込みロックの解除が遅れて単独で自爆する事故は防げるだろうけど、
ロック期間が伸びるから別のcmd.exeプロセス上での書き込みロックと衝突しやすくなるんじゃないかと。
943デフォルトの名無しさん:2013/06/03(月) 07:28:17.01
あ、なんかごめん、俺が言葉の使い方というかそもそも排他を勘違いしてたのね
解決法とかはあまりどうでもいいんだけど、一応大まかにこんな感じの処理です

::以下バッチファイルとして使うと バッチファイル名.bat.dat が生成されます
if ""=="%~1" (goto main) else (goto sub)

:main
type nul>"%~0.dat"
for /L %%A in (1,1,%NUMBER_OF_PROCESSORS%) do start "" /MIN %~0 %%A
pause
exit

:sub
set /a num1=%~100000
set /a num2=100000 / %NUMBER_OF_PROCESSORS%
set /a num3=0
set /a num4=0

:loop
set /a num4=%num1% + %num3%
echo %num4%!>>"%~0.dat"
set /a num3=%num3% + 1
if %num2% GTR %num3% goto loop
exit
944デフォルトの名無しさん:2013/06/03(月) 10:01:42.39
@echo offを入れると「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」が山ほど出るな。

んで、「int main(int c,char **v){FILE *f;if(c==2){while(!(f=fopen(v[1],"a")))Sleep(0);
while((c=fgetc(stdin))!=EOF)fputc(c,f);fclose(f);}return 0;}」
なプログラムに書き込みさせれば…と思ったがクソ遅かった上にこれでも0.3%程取りこぼしたorz

後からマージって超優秀
945936:2013/06/03(月) 10:12:25.40
>>937
遅くなったけどサンクス
大抵の特殊文字は>>937でいけそうな感じだったけど、いろいろ試してたら一部ダメな文字があるみたい
試しに

for %%A in (%1) do call :filedisp %%A
exit /b

:filedisp
set "filename=%~n1"
set ext=%~x1%

echo ファイル名 %filename%
echo 拡張子 %ext%
echo ファイル名全部 %filename%%ext%

ってサンプルバッチファイルtest.batを書いて

新しいテキスト(1)#!.txt
新しいテキスト(1)%#.txt
新しいテキスト(1)%# - コピー.txt

のあるフォルダでtestbat *.txtってやると、1つ目はうまくファイル名が表示されるけど2つ目は%が抜け落ちて
3つ目はスペースの手前、#の後までだけで拡張子も取得できない
こういうのもうまく処理できる方法ってないですかね??
946デフォルトの名無しさん:2013/06/03(月) 10:34:44.29
:loop
cmd /c "echo;hoge>>out.txt" 2>nul
if errorlevel 1 goto :loop
947デフォルトの名無しさん:2013/06/03(月) 11:30:59.87
>>945
>>933
ダメ文字回避の話題は過去ログでいくつか出てる。

自分は、リネームソフトで一時的に全角にして処理後に戻すとかやってる。
無理矢理バッチでやっても労多くして功少なしなので。
948デフォルトの名無しさん:2013/06/03(月) 12:58:50.55
逐次化 バッチ ファイル
でぐぐれば山ほど出てくるわ
949デフォルトの名無しさん:2013/06/03(月) 21:08:08.59
>>945
for %%A in ("%~1") do set "n=%%~nA" & set "x=%%~xA" & call :f
exit /b
:f
set d=%date%
set t=%time%
if not %d%==%date% goto f
set d=%d:/=%
set d=%d:~0,8%
set t=%t::=%
set t=%t: =0%
set t=%t:~0,6%
move /y "%n%%x%" "移動先\%n%-%d%-%t%%x%"
950936:2013/06/04(火) 19:09:40.12
>>947
すぐ上に出てたのね・・・気付かなかったスマン

>>949
サンクス
それ参考にしてバッチファイル書き直したら上手く動くようになったみたい
これで面倒な処理を自動化できるんでホント助かった
どうもありがとう
951デフォルトの名無しさん:2013/06/24(月) 17:38:37.63
ファイルのタイムスタンプを取得するのに、for で %~ti だと 年/月/日 時:分 まで得られますが
秒 まで取得するにはどのようにすれば良いでしょうか。
952デフォルトの名無しさん:2013/06/24(月) 23:36:07.50
>>951
自己レスです。
forfiles コマンド使って実現できました、お騒がせしました。
953デフォルトの名無しさん:2013/06/29(土) 22:00:26.49
ふと気になったんだけどみんな、" ) "の位置ってどこで書いてるの?

if %hoge% EQU 1 (
echo %hoge%
)←この位置?
)←それともこの位置?
954デフォルトの名無しさん:2013/06/29(土) 22:01:53.93
ごめんスペース消えてた

if %hoge% EQU 1 (
echo %hoge%
)←この位置?
:           )←それともこの位置?
955デフォルトの名無しさん:2013/06/29(土) 22:55:45.75
if %hoge% EQU 1 (echo %hoge%)←この位置
956デフォルトの名無しさん:2013/06/30(日) 15:41:28.73
>>953
>if %hoge% EQU 1 (
> echo %hoge%
>)←この位置?

俺は、こっち。
理由は、if の終わりだから。
957デフォルトの名無しさん:2013/06/30(日) 16:21:54.39
>>955
たしかにそのコードだったらそれで良いんだが…

>>956
無茶苦茶だが"("の中に"("が続く様な場合は下みたいになるのか
今まで"("と同じ位置に")"を書いてたわ

ありがとう

:if %hoge% EQU 1 (
: echo %hoge%
: for /f "delims=" %%a IN (c:\hogehoge.txt) DO (
:  echo %%a
:  )←この位置
:)←この位置
958デフォルトの名無しさん:2013/06/30(日) 17:14:21.45
>>954
> :           )←それともこの位置?

この書き方の人って、elseは次の行に書いてるの?
959デフォルトの名無しさん:2013/06/30(日) 18:06:35.89
>>958
:           ) else (
同じ行に書いてた

"("の真下を見れば")"があって自分的には見易かったんだが…
他の人が見難いなら書き方改めるか
960デフォルトの名無しさん:2013/06/30(日) 21:35:48.84
>>958
)else(
で書いてる
961デフォルトの名無しさん:2013/06/30(日) 21:59:30.33
>>960
その else ( に対する ")" はどうしてるの?
962デフォルトの名無しさん:2013/06/30(日) 22:16:24.80
if ○○○ (
  △△△
) else (
  ×××
)
963デフォルトの名無しさん:2013/06/30(日) 22:22:42.60
>>962
だな
964デフォルトの名無しさん:2013/07/01(月) 01:28:21.26
if ○○○ (
  △△△
  ) else (
  ×××
)
965デフォルトの名無しさん:2013/07/01(月) 02:03:49.84
>>964
無いわー
※個人の感想です
966デフォルトの名無しさん:2013/07/01(月) 07:38:31.44
ちたんだelse
967デフォルトの名無しさん:2013/07/01(月) 08:40:09.15
アイスですね
968デフォルトの名無しさん:2013/07/01(月) 10:06:54.73
>962
これが一般的かと思う
969デフォルトの名無しさん:2013/07/04(木) 11:10:13.66
質問させてください。
batでmsgbox "あいうえお"と書かれたabc.vbsを呼び出したいのですが、
batはvbsをスタートさせるだけで、以降の処理は継続して動かしたいのです。

何個か方法を考え、作ってみたのですがどれも理想通りに行かず状態です。

start "abc.vbs" /d "%~dp0"
↑新規cmd.exeが起動するだけでvbsは実行されない

start abc.vbs /d "%~dp0"
↑理想通り、vbsは起動すると共に以降のbat処理も動くが、ファイル名に空白があった場合は使えない

Cscript "%~dp0abc.vbs" //Nologo
↑vbsは起動するが、msgboxのOKを返してvbsを終了させないとbatの処理は継続されない

よろしくお願い致します。
970デフォルトの名無しさん:2013/07/04(木) 11:38:16.86
start "" "abc.vbs" /d "%~dp0"
971デフォルトの名無しさん:2013/07/04(木) 11:45:37.06
startの""で括られた第一パラメタはウィンドウのタイトルバーに表示するウィンドウタイトルです
なので先頭の"abc.vbs"はタイトルメッセージなのだと受け取られます
試しに、そのbatを
start "bat実行中" xxx.bat
とかで起動してみれば、ウィンドウタイトルの意味も分かると思います

ご質問の回等としては、タイトルを正しく指定すればいいだけです
start "" "abc.vbs" /d "%~dp0"
972969:2013/07/04(木) 18:36:07.65
>>970-971
正常に動きました!!
確かに'start "abc.vbs" /d "%~dp0"'を実行すると、
タイトルにabc.vbsとなったcmd.exeが上がりました…

ありがとうございました。
973デフォルトの名無しさん:2013/07/13(土) 10:21:05.49
コマンドラインからCPU温度を取得する方法無いですかね。
Win32_TemperatureProbeを使った方法だと自分のPCの温度は取れないようで…

そういうCPU温度を手軽に取れるコマンドラインアプリとか誰か知らないですか?
974デフォルトの名無しさん:2013/07/13(土) 21:05:49.45
wmic /?
975デフォルトの名無しさん:2013/07/13(土) 21:28:33.27
MSAcpi_ThermalZoneTemperature
976デフォルトの名無しさん:2013/07/14(日) 19:27:22.47
>>975
それはもっと対応してない
977デフォルトの名無しさん:2013/07/14(日) 20:26:12.96
とれたけど
978デフォルトの名無しさん:2013/07/16(火) 07:33:30.52
C:\Users\hoge> wmic /MSAcpi_ThermalZoneTemperature
グローバル スイッチが無効です。

動かないです
979デフォルトの名無しさん:2013/07/16(火) 10:03:24.36
そこまでアホじゃないが、対応してない環境だったらエラーで落ちる。
980デフォルトの名無しさん:2013/07/16(火) 15:07:56.48
wmic /namespace:\\ROOT\wmi path MSAcpi_ThermalZoneTemperature get CurrentTemperature /value
981デフォルトの名無しさん:2013/07/16(火) 18:45:43.13
エラー:
説明 = サポートされていません
982デフォルトの名無しさん:2013/07/16(火) 20:08:52.74
CurrentTemperature=3272


CurrentTemperature=2732
983デフォルトの名無しさん:2013/07/16(火) 20:24:16.45
984デフォルトの名無しさん:2013/07/17(水) 05:07:07.99
t
985デフォルトの名無しさん:2013/07/17(水) 09:16:41.65
次スレ
986デフォルトの名無しさん:2013/07/17(水) 18:03:55.58
まだか
987デフォルトの名無しさん:2013/07/17(水) 23:00:09.25
「wmic」これを「ダブルミック」と呼んでるけど皆はど〜よ?
988デフォルトの名無しさん:2013/07/17(水) 23:33:15.84
>>982
3272℃???(・_・;)
989デフォルトの名無しさん:2013/07/17(水) 23:44:21.80
うめ
990デフォルトの名無しさん:2013/07/18(木) 09:16:09.53
次スレ
991デフォルトの名無しさん:2013/07/19(金) 00:06:48.49
まだか
992デフォルトの名無しさん:2013/07/19(金) 00:21:26.10
たててくるお!
993デフォルトの名無しさん:2013/07/19(金) 00:25:07.29
だめだったお!
994デフォルトの名無しさん:2013/07/19(金) 07:52:04.87
おぺレ〜てィんぐツすてむ
のっとふぁうソど
ぷりィ〜ずいソさ〜とツすてむでィすく
ひっ卜えにィ〜き〜
995デフォルトの名無しさん:2013/07/19(金) 11:54:55.17
スレ立て名人はいないのか
996デフォルトの名無しさん:2013/07/19(金) 12:46:01.97
建てた。

【.cmd】 バッチファイルスクリプト %10 【.bat】
http://toro.2ch.net/test/read.cgi/tech/1374205515/
997デフォルトの名無しさん:2013/07/19(金) 15:35:04.50
>>996
おつ
998デフォルトの名無しさん:2013/07/19(金) 16:00:11.79
>>996
999デフォルトの名無しさん:2013/07/19(金) 16:00:51.82
九九九
1000デフォルトの名無しさん:2013/07/19(金) 16:01:42.03
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。