【.cmd】 バッチファイルスクリプト %9 【.bat】at TECH
【.cmd】 バッチファイルスクリプト %9 【.bat】 - 暇つぶし2ch500:デフォルトの名無しさん
13/01/04 08:55:30.30
やっと分かったすげー、バッチだけでプログレスバーできるとは

501:デフォルトの名無しさん
13/01/04 12:28:51.75
>>498
aが既にあるのにbをインクリメントする必要なくね?

502:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/01/04 17:47:55.15
>>493
set /p x= < 対象ファイル
if "%x:~0,4%"=="" (echo BOM有) else echo BOM無

504:デフォルトの名無しさん
13/01/04 22:20:24.40
>>501
aはforループのダミーですしおすし

505:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/01/06 23:34:29.16
win764bitで、bluetoothアダプタの無効→有効をバッチファイルでできますか?

スリープ復帰したときbluetoothマウス見失うことが頻発してて
いつも手動で画面右下のアイコンから、bluetoothアダプタの無効→有効してます。

508:デフォルトの名無しさん
13/01/07 00:08:11.46
URLリンク(vok.paburica.com)
の、デバイスの有効・無効をコマンドプロンプトから行いたい
にそれらしい方法はあるな
URLは直接貼れなかった

509:デフォルトの名無しさん
13/01/07 17:04:07.31
devcon.exe

510:デフォルトの名無しさん
13/01/08 21:22:07.64
デブゴン?

511:デフォルトの名無しさん
13/01/09 01:03:07.71
>>507 です

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

ありがとうございます

512:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/01/10 00:40:09.35
shift /?

514:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/01/11 05:04:52.69
>>514
君がしたい動作になるようにWinRARのヘルプのコマンドラインの項をよく読め

516:デフォルトの名無しさん
13/01/11 19:39:07.48
setlocal
【オプションなど】
:LOOP
if "%~1"=="" goto END
【forコマンド処理など】
shift
goto LOOP
:END
exit

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

アーカイバのオプションなんかはよく理解した上で設定しないと、
意図した通りにはならないだろうから要熟読ね。
てか、rar.exeではなくwinrar.exeなのか。

517:デフォルトの名無しさん
13/01/11 22:18:50.38
>>516
ありがとうございます。参考にします。
rar.exeを使うほうが自然ですね、すみません。

518:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/01/14 21:53:08.03
findのエラー出力ではなくdirのエラー出力だから

520:デフォルトの名無しさん
13/01/14 22:30:18.25
>>519
なるほど・・・ありがとうございました。
初歩的なことでした、すみません。

521:デフォルトの名無しさん
13/01/15 02:23:58.35
写真屋のエレメンツでTIF画像を開くために、画像をペイントで1回上書き保存をしなきゃいけないんだけど
その画像が膨大な量あるので、バッチで一括処理したいんですが何かヒントをいただけないでしょうか

522:デフォルトの名無しさん
13/01/15 11:43:51.68
TIFFを他の形式に一括変換するだけじゃないの?
バッチファイルじゃなくそういうソフト使えばいいだけじゃない?

523:デフォルトの名無しさん
13/01/15 21:59:08.70
copy *.tif *.jpg

524:デフォルトの名無しさん
13/01/16 00:21:36.26
ren *.tif *.jpg

525:デフォルトの名無しさん
13/01/16 14:52:31.61
画像変換ならImageMagickのバイナリ拾ってこいよ

526:デフォルトの名無しさん
13/01/16 18:26:03.77
Windows7 x64で利用したいのですが、管理者権限のあるプロンプトから

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

もしくは

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

をするにはどうしたら良いでしょうか?

527:デフォルトの名無しさん
13/01/16 18:51:13.57
どうしようもねえよ

528:デフォルトの名無しさん
13/01/16 21:34:27.29
>>526
runas

529:デフォルトの名無しさん
13/01/17 15:55:07.56
カレントディレクトリにdir 1, dir 2, dir 3ディレクトリがあり

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

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

どうすれば空白文字の入った兄弟ディレクトリにコピーできますか?

530:529
13/01/17 15:57:04.17
追記。実際にはディレクトリは10個もあるので一つ一つパスを記述するのは無しです。

531:デフォルトの名無しさん
13/01/17 16:25:23.61
1つのファイルを複数フォルダへなんていう都合のいいコマンドは無い。
諦めて全部書くか、法則性をもとにループで回せ。

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

みたいにな。
ていうかパスに/使うなんてどこから出てきた?
余所の流儀を安易に突っ込むなよ。

532:526
13/01/17 17:35:01.89
>>528
ありがとうございます、試してみます

533:529
13/01/17 18:40:10.74
>>531
うまくいきました ありがとうです
サブルーチン、if、for、setとかを覚えました
区切り文字気をつけます

534:デフォルトの名無しさん
13/01/18 00:58:00.05
for 文で数値を変えながらsqlを実行してますが
ある変数での処理時間がかかりすぎる場合にタイムアウトして
次の変数になり処理するようにすることはできませんか?

535:デフォルトの名無しさん
13/01/18 01:01:18.56
>>534
localhostにpingでも打ってカウントしれ

536:デフォルトの名無しさん
13/01/18 01:35:24.32
>>535
どんな意味が?

537:デフォルトの名無しさん
13/01/18 06:42:06.30
>>536
お前の人生くらいには

538:デフォルトの名無しさん
13/01/18 06:43:57.60
>>534
コマンド側で割り込みするの気持ち悪いだろ
SQL側でやれ

539:デフォルトの名無しさん
13/01/18 12:46:33.46
cleanmgr /sageset:10
cleanmgr /sagerun:10
としたとき全ドライブでクリーンアップされますが、DVDドライブなども含まれてしまいますか?

540:デフォルトの名無しさん
13/01/18 13:16:41.44
>>533
区切り気を付けるって…

なんか勘違いしてる気がするな。

541:デフォルトの名無しさん
13/01/19 15:13:21.29
バッチファイルにドラッグ&ドロップされたものがファイルかフォルダかを判別する方法はありますか?
ファイルは拡張子が無い場合もあるので「if %~x1%==""」とかでは判別できませんでした。

542:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/01/19 16:23:51.64
c:\users\user\sendtoがファイルになるが?ぼけ

544:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/01/19 16:34:56.71
相変わらず nul の使い道を理解してない情弱が多くて何よりだ

546:デフォルトの名無しさん
13/01/19 16:45:01.87
そういう情弱もな

547:542=544
13/01/19 17:02:25.08
確かにコンソールへのメッセージ表示ををNULデバイスにリダイレクトしても、エラーメッセージの表示までは抑制できない。
それは分かるのだが…

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

IF "%1\."==""  ECHO 【情報】ディレクトリが指定されてます。

548:デフォルトの名無しさん
13/01/19 17:02:59.04
>>541
ファイルであるか否かを判定するのではなく、
ディレクトリであるか否かを判定する。

if exist "%~1\*" echo;folder else echo;file

549:デフォルトの名無しさん
13/01/19 17:04:47.05
カッコが要った。
if exist "%~1\*" ( echo;folder ) else ( echo;file )

550:デフォルトの名無しさん
13/01/19 17:22:55.03
>>541の悩みを一行で解決してくれるとは、さすが情強

551:デフォルトの名無しさん
13/01/19 17:25:43.36
c:\users\user\sendtoがfileになるが?ぼけ

552:デフォルトの名無しさん
13/01/19 17:28:16.62
%~aIを見るのが正解だな

553:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/01/19 17:54:32.51
バッチで簡単にできることをそこまでするかばか

555:デフォルトの名無しさん
13/01/19 17:57:46.98
>>552
set attribute=%~a1
if "%attribute:~0,1%"=="d" (echo;folder) else (echo;file)

と、いうところか。

556:デフォルトの名無しさん
13/01/19 17:58:34.45
そゆこと

557:デフォルトの名無しさん
13/01/19 21:28:35.08
>>555
ジャンクションやディレクトリのシンボリックリンクの属性も、
"d"になるの?

558:デフォルトの名無しさん
13/01/19 23:19:02.52
dにlが付く

559:デフォルトの名無しさん
13/01/20 06:20:53.31
パスにスペースを含むファイルをバッチファイルにドロップした時は%*%でパスを取得できるけど
%~n*%ってやってもファイル名は取得できないね。どうすればいいのだろうか?

560:デフォルトの名無しさん
13/01/20 10:56:15.00
普通に for で回すしかないんじゃないか?

for %%f in (%*) do echo %%~nf

561:559
13/01/20 11:31:33.22
>>560
そのままコピペしたらでけたよ!アリガ㌧!!

562:デフォルトの名無しさん
13/01/20 11:42:51.74
コマンドでファイルの文字コード変換やろうと思っているのですが、

URLリンク(scripting.cocolog-nifty.com)

のページの

set /p x="XX"^<nul

という箇所の「XX」の部分はキーボードからはどのように入力すればよいのでしょうか?

563:デフォルトの名無しさん
13/01/20 12:16:47.45
BOM(0xff 0xfe)か。
そのページからコピペ

564:デフォルトの名無しさん
13/01/20 12:41:02.09
batファイルスクリプトのみで文字と背景の色を変更する事はできませんか?
他の言語で言うcursesライブラリみたいなかんじで

565:デフォルトの名無しさん
13/01/20 14:30:53.47
>564
color /?

566:デフォルトの名無しさん
13/01/20 16:26:03.22
colorは画面全体
文字だけならfindstr

567:デフォルトの名無しさん
13/01/20 16:31:03.06
普通に%~n1でいいけど?

568:デフォルトの名無しさん
13/01/20 18:58:34.90
>>566
日本語でw

569:デフォルトの名無しさん
13/01/20 19:05:49.91
標準入出力に対応したコンソールってないですか?
PowerCmdとConsole2は未対応でした
有料でも構いませんがなるべく無料がいいです

570:デフォルトの名無しさん
13/01/20 21:09:19.49
cmd.exe

571:デフォルトの名無しさん
13/01/20 22:15:03.68
バッチファイルで文字色と背景色を変えて文字列をECHOする。

572:デフォルトの名無しさん
13/01/23 19:16:57.56
"set = *"と"set == *"の違いがよく解らないのですが、=を2つ付ける事に意味はあるのでしょうか?

573:デフォルトの名無しさん
13/01/23 19:35:34.29
どっちも
コマンドの構文が誤っています。
なので違いはない。意味もない。

574:デフォルトの名無しさん
13/01/23 21:23:30.42
set hoge=fuga
set hoge==fuga
この2つの違いとしたら前者はhogeに「fuga」が、後者は「=fuga」が入っている

575:539
13/01/24 20:56:38.30
すいませんこれ実行してもクリーンアップされませんでした
ダイアログが出て全てチェックはしました
なぜでしょうか
cleanmgr /sageset:10
cleanmgr /sagerun:10

576:デフォルトの名無しさん
13/01/25 03:14:53.32
バッチファイル内のset /aで、括弧使って計算をグループ化したらエラーに
マニュアルどおりにやってるはずなのに・・・
と色々ググったりしても解決せず

まさか・・・と思いエスケープしたら機能した
なんなのこの実装・・・
というか/?に書いとけよ・・・

577:デフォルトの名無しさん
13/01/25 03:23:31.15
エスケープなんか要らんけど。

具体的にどんな計算だったか書いてみろ。

578:デフォルトの名無しさん
13/01/25 04:06:41.20
気になるんだったらてめーで勝手に試せばええ

579:デフォルトの名無しさん
13/01/25 09:15:52.76
C:\>set /a (1 + 10) * 3
33
C:\>set /a (1+10)*3
33

エラーとやらにはならんな。

580:デフォルトの名無しさん
13/01/25 11:37:20.43
自分で文法間違ってファビョる奴は始末におえんな

581:デフォルトの名無しさん
13/01/25 14:19:34.10
(set /a (1+10)*3)
*3) の使い方が誤っています。

とか

582:デフォルトの名無しさん
13/01/25 20:23:51.65
入れ子の解析なんて俺ならしないな

583:デフォルトの名無しさん
13/01/25 23:44:41.72
ここレベル低いな
昨日今日始めた奴ばっかかよ

584:デフォルトの名無しさん
13/01/26 00:09:40.11
C:\>(set /a "(1+10)*3")
33
C:\>

585:デフォルトの名無しさん
13/01/26 00:11:42.35
>>583
高レベル(自称)さんちーす

586:デフォルトの名無しさん
13/01/26 00:20:00.74
超FAQに右往左往してる自覚はないんだな

587:デフォルトの名無しさん
13/01/26 00:32:47.78
誰か困ってる人がいたみたいだけど、俺は困らないしねぇ・・・

588:デフォルトの名無しさん
13/01/26 00:59:37.48
まぁお前は単なる冷やかしだけのゴミだけどね

589:デフォルトの名無しさん
13/01/26 01:48:01.36
>>584
へーこんなことできるんだ。

と低レベルな俺w

590:デフォルトの名無しさん
13/01/26 02:53:36.63
>>576-577
どんな間違いしたんだよ。 マヌケも反面教師として役に立つからかけやゴミカスが。

591:デフォルトの名無しさん
13/01/26 03:48:36.35
お前の脳みそ残念すぎ

592:577
13/01/26 13:10:43.53
>>590
なぜ俺を入れる…

593:デフォルトの名無しさん
13/01/26 13:15:21.75
あまりにも初心者的間違いをしでかしたので
恥ずかしくてそれを晒すことも出来ず
他人を貶める事でしか精神の安定を保てないのでしょう。

594:デフォルトの名無しさん
13/01/26 22:29:15.14
cls

595:デフォルトの名無しさん
13/01/27 02:14:30.10
>>593
それ自分のことじゃん
>>581のように答えを出せない馬鹿が、自己解決した奴に絡んで精神の安定を図ってるだけ
自分が初心者以下の能力しか持ってないことを自覚しないと

596:デフォルトの名無しさん
13/01/27 02:27:40.06
echo off

597:デフォルトの名無しさん
13/01/27 09:22:50.87
>>595
恥かきにのこのこ出てくることないのに。
>>581>>576が初心者以下の能力しか持ってない事を示しているわけだが。

598:デフォルトの名無しさん
13/01/27 09:42:55.38
>>595
581をやったの?

うわぁ……

599:デフォルトの名無しさん
13/01/27 23:34:33.33
>>597
お前いい加減にしたらどうよ
恥の上塗りはお前だわ

600:デフォルトの名無しさん
13/01/28 00:12:42.52
goto :EOF

601:デフォルトの名無しさん
13/01/28 01:26:41.80
>>600
ええ加減にせいよ お前ら Fack

602:デフォルトの名無しさん
13/01/28 03:17:13.41
だからなにをしでかしたのか言ってみろよ

あと577は間違いだ。謝罪する。

603:デフォルトの名無しさん
13/01/29 10:41:38.18
usbをパソコンに接続すると自動的に実行するやつってbatで出来ますか?

604:デフォルトの名無しさん
13/01/29 13:17:35.47
何を企んでるやら

605:デフォルトの名無しさん
13/01/29 13:44:48.95
usbにwebサーバを入れてCMS運用です

606:デフォルトの名無しさん
13/01/29 19:37:17.27
autorun.inf usb

607:デフォルトの名無しさん
13/01/30 13:19:29.33
なるほどありがとうございます
それを使ってやってみます

608:デフォルトの名無しさん
13/01/30 15:51:55.40
システムにパスが通ってるはずなのにコマンドが使えません
コマンドプロンプトからコマンドを打つと確かに使えます
batファイルからだと使えません
絶対パスで指定するしかないのですが、batファイルの中でもシステムのパスを見る方法はありませんか?

609:デフォルトの名無しさん
13/01/30 16:15:09.63
パスが通っていれば実行できる。実行できないのはパスが通ってないから。
キミが考えなきゃいけないのはどうして、そのbatの中ではパスが通っていないかという事。

610:デフォルトの名無しさん
13/01/30 16:56:23.42
愚か者は放置で

611:デフォルトの名無しさん
13/01/30 17:03:25.88
cmdファイルなら使えるよ

612:デフォルトの名無しさん
13/01/30 17:10:06.62
また勝手に放置とかいって仕切る奴がいるよ

613:デフォルトの名無しさん
13/01/30 19:11:18.79
batファイルからでも使えるよ

614:デフォルトの名無しさん
13/01/30 19:25:50.69
>batファイルの中でもシステムのパスを見る方法はありませんか?

@echo off
path

615:デフォルトの名無しさん
13/01/30 19:29:08.85
見えました!

616:デフォルトの名無しさん
13/01/30 20:02:54.28
Good Job !

617:デフォルトの名無しさん
13/01/30 20:50:17.99
>>608
64bit System32 SysWOW64 sysnative
この辺りのキーワードが該当するような…

618:デフォルトの名無しさん
13/01/30 21:02:08.61
ハズレ

619:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/01/30 21:24:51.10
ちなみにURLリンク(rubyinstaller.org)のexeファイルからインストールしたんですよ
なぜかbatファイルのみコマンドが効かなくて

621:デフォルトの名無しさん
13/01/31 19:01:09.01
if a==a(
コマンドの構文が違っています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch